工作流程继承
为了进行一致处理并迅速完成在一组相关流程之间创建工作流程定义,您可以创建将从先前定义的其他工作流程定义中继承工作流程图、数据字段、附件、工作流程组定义以及其他属性的工作流程定义。
这就意味着您可以在类层次结构的较高层次的工作流程定义中定义常见特征,然后将这些特征自动传递给后续派生的工作流程定义。
所有工作流程定义的基类都是由 FileNet® P8 提供的 WorkObjectEx。从 WorkObjectEx 中,工作流程定义将继承系统数据字段、“终止”子图和“故障”子图。
当您根据另一个工作流程定义来创建新的工作流程定义时,新的工作流程将从其基本工作流程中继承下列各项:
继承的工作流程属性 | 描述 |
---|---|
工作流程图 | 在新的工作流程中,所继承的主图会被一个仅具有“启动”步骤的空白主图自动覆盖。可以通过删除当前工作流程中的主图来重新激活继承的主图。 |
子图 | 继承的子图是只读的。可以通过覆盖继承的子图来对它进行修改。 |
数据字段、附件和工作流程组定义 | 无法删除继承的字段、附件和工作流程组,但是可以更改初始值和描述。 |
工作流程截止期限和提示 | 从基本工作流程来初始化工作流程截止期限和提示,但是可以更改。 |
里程碑 | 可以更改继承的里程碑级别和消息。 |
事件日志和登记簿 | 在传输工作流程之前,可以更改所继承的对于事件日志和登记簿的指定。 |
条件标识 | 从基本工作流程来初始化值,但是可以更改。 |
伙伴链接和 XML 模式 | 无法更改继承的伙伴链接或模式。 |
XML 数据字段 | 可以更改继承的 XML 数据字段的值和描述。 |
入局 Web Service 附件文件夹 | 可以更改将在其中存储入局 Web Service 附件的文件夹。 |
规则集名称 | 对于继承的规则集,可以更改异步设置。 |
电子邮件通知首选项 | 从基本工作流程来初始化值,但是可以更改。 |
所继承的项(主图、子图、数据字段、附件和工作流程组等等)在工作流程定义中是只读的。但是,可以重新定义所继承的项,从而将它覆盖。例如,可以使用“工具”菜单上的“创建图”来覆盖现有图。如果您随后删除了用来覆盖的图,那么将重新激活所继承的图。
下图说明了如何继承项以及可以在层次结构的某个层次如何替换项。
已打算将 Workflow-A 作为将来的工作流程定义的基础。已将 submap-a1 和 submap-a2 设计为要在从此工作流程定义派生的所有工作流程定义中使用的通用功能,并且 field-a1 和 field-a2 用于这些子图。
Workflow-M 使用 Workflow-A 作为它的基本工作流程,并且继承图和数据字段。Workflow-M 使用它自己的主图 (main-M),添加 submap-m1 和 field-m1,并将 submap-a1 替换为它自己版本的该子图。
Workflow-N 也使用 Workflow-A 作为它的基本工作流程。Workflow-N 使用它自己的主图 (main-N),并且添加它自己的子图和字段。它使用从 Workflow-A 继承的原始 submap-a1。
Workflow-R 使用 Workflow-M 作为它的基本工作流程,并且继承 Workflow-M 中的图和字段。在 Workflow-R 中,删除了缺省主图 (main-R),所继承的 main-M 是主图。submap-m1 被替换为新版本,field-r1 是一个新字段。
如果在 Workflow-R 中禁用了工作流程继承功能,那么不再能够访问所继承的图和字段,但是引用将保留在工作流程定义中。所继承的主图 main-M 被替换为 main-R。submap-m1 覆盖了所继承的 submap-m1,因此将保留此子图。在 Workflow-R 中创建了 field-r1。
- 如果您在将从另一个工作流程中继承图、字段和其他属性的工作流程中禁用工作流程继承功能,那么会将此工作流程的基本图复位为 WorkObjectEx,并且从先前的基本工作流程继承并且未被覆盖的所有项都将不再可用。如果引用了这些项(例如,由子图步骤引用),那么将发生验证错误。
如果您随后重新启用继承功能,那么所继承的项(子图和字段等等)将变得可访问,尽管主图(在此示例中为 main-R)将继续覆盖所继承的图,并且 F_Trackers 将继续覆盖所继承的 F_Trackers(如果有)。如果您想要使用所继承的主图和 F_Trackers,那么您可以删除用来覆盖的主图和 F_Trackers。
- 如果 Workflow-R 的基本工作流程从 Workflow-M 切换为 Workflow-N,那么 main-N 将成为工作流程主图。因为 submap-m1 将覆盖所继承的 submap-m1,所以将保留此子图。
- 在 Workflow-R 中,main-A 以及 submap-a1 的原始形式并未继承到 Workflow-R 中 - 仅继承了 Workflow-M 中处于活动状态的项。
- 因为 main-M 是只读的,所以 Workflow-R 未添加可从主图 (main-M) 中访问的子图;但是,修改了 submap-m1 以获得期望的功能。如果工作流程作者删除已修改的 submap-m1,那么会重新激活从 Workflow-M 继承的 submap-m1,并且无法将它删除。
- 创建了所派生的工作流程之后,所派生的工作流程定义中继承的项将反映其基本工作流程中的属性。如果更改了基本工作流程并且已将它传输工作流程系统数据库,那么所派生的任何工作流程定义将保持不变,直到您打开所派生的工作流程定义并重新传输它为止。