Automation 什么是工作流系统?

Automation 什么是工作流系统?,automation,workflow,Automation,Workflow,如何将工作流系统与自动化某些工作的普通应用程序区分开来?系统是否有任何特定功能必须归类为工作流系统?工作流系统管理具有关联状态的对象(通常是逻辑或实际的电子文档替换)。系统中对象的状态是(或)中的节点 状态转换将对象从一个状态移动到另一个状态。转换可以由人员、自动事件、计时器、日历等触发。通常,转换表示现实世界中流程中的步骤 这是非常抽象的,所以考虑一个例子:bug跟踪软件。一个bug报告可能是在未经验证的情况下开始的,因此在QA测试人员的队列中。QA测试人员将验证报告,确保步骤清晰,根据严重性

如何将工作流系统与自动化某些工作的普通应用程序区分开来?系统是否有任何特定功能必须归类为工作流系统?

工作流系统管理具有关联状态的对象(通常是逻辑或实际的电子文档替换)。系统中对象的状态是(或)中的节点

状态转换将对象从一个状态移动到另一个状态。转换可以由人员、自动事件、计时器、日历等触发。通常,转换表示现实世界中流程中的步骤

<>这是非常抽象的,所以考虑一个例子:bug跟踪软件。一个bug报告可能是在未经验证的情况下开始的,因此在QA测试人员的队列中。QA测试人员将验证报告,确保步骤清晰,根据严重性等对报告进行分级,并将其分配给开发人员或开发组。然后,它就在开发人员的队列中,由开发人员最终修复或决定不修复该bug,并将其发送回QA进行验证。如果对bug存在争议,它可能会进入一种状态,在这种状态下,它会在管理堆栈中冒泡

上面的一个简单实现是对与每个对象关联的状态使用枚举,并使每个人的收件箱成为具有特定枚举值状态的对象的查询


这是它的要点,但事情可能会变得更复杂,比如分离新对象,对非人类事件(如计时、内部或外部(即第三方)服务等)做出反应。

我认为没有精确的定义。以下是一些松散的标准:

  • 协调多人(但不是群件)的工作
  • 在复杂的组织环境中
  • 通常作为托管业务流程的一部分(如BPM)

如果用户在业务过程中被引导而不需要引用业务流程的任何外部文档,那么我将考虑应用工作流系统。 扩展Barry的bug tracking示例,我会说您的bug tracking应用程序是一个工作流应用程序,例如,如果有一个名为“Close”的按钮,当按下该按钮时,会将bug转换为关闭状态,可能允许用户输入关闭注释,记录时间戳和用户名,然后发送通知电子邮件

如果用户必须从下拉列表中选择新状态,然后自己发送通知电子邮件,则它不是工作流系统。

业务流程的自动化, 全部或部分,在此期间 文件、信息或任务是 从一名参与者*传递到 另一个行动,根据一套 程序规则的执行

在我看来,就软件而言,工作流有两种类型。静态(或内置)工作流和动态(可编程)工作流。许多文档管理、bug跟踪甚至博客软件都内置了使用简单状态转换的工作流

当人们说“工作流”时,我想他们通常是指那些可以将业务逻辑编程到某些现有软件中的工作流,比如如果库存不足,那么自动调用sysco

有关工作流功能的实际示例,请参见。

a推动用户通过一个流程,该流程跨越系统中的多个功能,并且可能跨越工作流中的多个参与者。工作流引擎知道流程的状态,并将其存储在自己的存储中,该存储可能是主应用程序数据库的一部分,也可能不是

使用或,包括普通的旧脚本语言。独立的工作流管理器可用于跨多个应用程序管理工作流。许多(但不是全部)支持作为工作流的标准描述语言。如果您的应用程序被设置为工作流系统,则工作流系统可以控制应用程序功能来执行此操作。工作流引擎的另一个功能是,它应该可以中止工作流,并在运行时撤消任何状态更改

有一个关于工作流系统的文档集合,以及一个模式库

工作流系统的应用程序示例:

  • 保险索赔管理。基本上是他们的祖父。通常,该流程将制定规则,包括谁可以授权多少、谁可以处理不同类别业务的索赔、需要提供哪些文件并链接以提供审计跟踪、发布和跟踪付款问题以及授权损失调整工作。典型的索赔工作流程将跟踪索赔,从通知到准备金和付款授权,再到付款发放,附带安排损失调整工作的流程(可能通过第三方),保留付款权限直到完成,以及发放和支付损失调整费用。实际上,这些过程可能变得相当复杂

  • 复杂产品(如计算机系统)的订购、报价和配置管理

  • 一个不寻常的例子是一家药品制造商开发的跟踪新药品审批流程的系统。这还包括一个专家系统,该系统将监管框架编码在其中,可以选择一条通过监管环的最短路径。这使他们的平均研发周期从9年降至5.5年


+1:对主题的描述非常好。我建议的唯一可能的改进是链接到状态机的定义。实际上,几乎所有支持IT的工作流都可以建模为某种状态机,例如Petri网。群件(比如LotusNotes)确实可以用来创建工作流应用程序,所以我不会排除它。(实际上,它是群件的主要应用。)
*participant = resource (human or machine)