对于此解决方案,通过四个交互将工作流组件组合起来。该任务是使用与任务管理服务交互的客户端应用程序配置的;该任务的生存期或任务状态得到了配置。作为业务流程的一部分,使用任务管理服务将任务分配到用户组。用户之一认领该任务,任务管理服务应用正确的策略以防止其他用户处理同一个任务。业务流程使用任务管理服务获取任务的状态更新。
现在,让我们来考虑一个顺序工作流示例。顺序工作流代表一个方案,在该方案中,任务必须由一组用户按顺序批准。例如,当购买订单批准系统使用业务流程处理购买订单时, 属于“主管”组的一名雇员要对购买订单进行初步评估。在初始用户批准购买订单之后,由该用户的经理批准它。在经理批准后,该购买订单被转发至计帐和运输部门。该解决方案包含四个交互。与任务管理服务进行交互,以配置任务和设置合适的策略。定义应该处理任务的用户的顺序。启动与任务管理服务交互的任务。第一个用户将认领该任务以开始处理它, 处理完成后, 任务管理服务会将该任务传送到该组中的下一个用户。
平行工作流模式代表如下方案:一个任务必须由不同的用户同时批准。每一个审批者都可以独立于其他人添加备注和附件。例如,招聘流程用于招聘新雇员。每个面试人员都需要投票以支持或反对应聘者。如果有75% 的投票表示支持,则会雇用该应聘者;否则,该应聘者将会落选。此流程使用平行工作流建模,其中每个面试人员都可以独立于其他面试人员进行投票。实现该解决方案需要五个交互。与任务管理服务进行交互,以配置任务和设置合适的策略。定义应该处理任务的用户的顺序。启动与任务管理服务交互的任务。任务管理服务将该任务传送给所有用户。 任务管理服务只有在所有用户都完成任务的处理时才能完成该任务。 使用策略进行任务分配
现在,让我们讨论一下如何使用任务分配的策略,按照该策略,需要遵循特定的规则向用户分配任务。例如,心脏搭桥手术过程被分配给所分手术数量最少的外科医生。此解决方案的实现通过五个交互将工作流组件组合起来。与任务管理服务进行交互,以配置任务和设置合适的策略。作为任务定义的一部分配置分配策略 — 例如,从有空的用户中选择所分配的任务数量最少的一个。 作为业务流程的一部分, 使用任务管理服务将任务分配到用户组。启动与任务管理服务交互的任务。 任务管理服务将针对可以处理该任务的潜在用户执行任务策略,然后依次完成下列操作:选择符合策略条件的用户; 将任务分配给该用户。
在 “使用升级的单用户工作流” 示例中, 可以将任务分配给多个用户, 但是只有一个用户可以处理该任务。如果该任务到期,则该用户的经理必须处理该任务。例如,技术支持服务请求流程使用户可以提交技术支持服务请求票证。 如果收到票证的人没有在指定的时间段内处理该票证,则该票证自动升级给此人的经理。如果在预定义时间段内没有任何人处理该票证,则该票证被自动升级三次,直到它到达公司的CEO那里。如果CEO也没有进行处理, 则该票证到期。
对于此解决方案的实现,通过五个交互将工作流组件组合起来。任务是使用客户端应用程序配置的,这些应用程序与任务管理服务交互;在此步骤中配置了属性,如任务的生存期、 升级策略或任务状态。作为业务流程的一部分, 使用任务管理服务将任务分配到用户组。 一个用户认领该任务,任务管理服务应用正确的策略以防止其他用户执行同一个任务。 如果任务到期,则任务管理服务会应用升级策略,将任务升级到正确的用户。如果该任务再次到期, 则任务管理服务会将其取消。
在“使用委派的单用户工作流”示例中,声称要处理任务的用户可以将该任务重新分配给其他用户。例如,在离开之前,会计主任将他或她的所有未完成的任务交给助理会计。 对于此解决方案的实现,通过四个交互将工作流组件组合起来。任务是使用客户端应用程序配置的,这些应用程序与任务管理服务交互;配置了属性,如任务的生存期、升级策略或任务状态。作为业务流程的一部分, 使用任务管理服务将任务分配到用户组。 一个用户认领该任务,任务管理服务应用正确的策略以防止其他用户执行同一个任务。使用适当的客户端应用程序,用户可以检查能够处理该任务的可能人员的列表。用户将该任务重新分配给上述人员之一, 并重新调整该任务的属性。
对于“任务链模式”示例,一个任务需要根据另一个任务的完成状态而启动。例如,在急救协调流程中,当前面的工作项目完成时,立即开始下一个工作项目。要实现此解决方案, 可以通过四个交互将工作流组件组合起来。任务是使用客户端应用程序配置的,这些应用程序与任务管理服务交互;属性(如任务的生存期或状态)得到了配置。配置了任务链元数据, 指示第二个任务将由第一个任务的完成触发。通过任务管理服务启动任务链,从而使第一个任务启动。 当第一个任务完成时,任务管理服务将使用任务链中的元数据启动第二个任务。
业务流程集成
可以组合使用任务管理、身份管理、跟踪、通知等服务和客户端应用程序来设计工作流解决方案。我们已经探讨了工作流架构中存在的一些最常见的组件以及它们在一系列交互中的实现。可以使用一组人力交互模式对一些最复杂的人力 — 系统交互进行建模,而这些人力交互模式又是使用工作流组件实现的。工作流架构的这些基本组件和模式代表了业务流程集成领域中的关键方面,而且,它们在实现后能够创建强大的工作流解决方案。