开发和扩展工作流

AEM提供多种工具和资源,用于创建工作流模型、开发工作流步骤以及与工作流进行有序交互。

工作流使您能够自动处理AEM环境中管理资源和发布内容的流程。 工作流由一系列步骤组成,每个步骤都实现离散任务。 您可以使用逻辑和运行时数据来决定进程何时可以继续,并从多个可能的步骤中选择下一步。

例如,用于创建和发布网页的业务流程包括不同参与者的批准和注销任务。 这些过程可以使用AEM工作流建模并应用于特定内容。

以下主要方面介绍,而以下页面则介绍更多详细信息:

注意

有关:

模型

WorkflowModel表示工作流的定义(模型)。 它由WorkflowNodesWorkflowTransitions组成。 过渡连接节点并定义​flow。 “模型”始终具有开始节点和结束节点。

运行时模型

工作流模型版本化。 运行工作流实例时,它将使用(并保留)工作流的运行时模型(在启动工作流时可用)。

当在工作流模型编辑器](/docs/experience-manager-65/developing/extending-aem/extending-workflows/workflows-models.html?lang=zh-Hans#sync-your-workflow-generate-a-runtime-model)中触发​Sync​时,生成运行时模型[。

在启动特定实例​后,对所发生的工作流模型和/或所生成的运行时模型所做的编辑将不会应用于该实例。

注意

所执行的步骤由运行时模型定义;在工作流模型编辑器中触发​Sync​操作时生成。

如果在此时间点之后更改了工作流模型(未触发​Sync),则运行时实例将不反映这些更改。 只有更新后生成的运行时模型才会反映这些更改。 这些例外是基础ECMA脚本,它们只保留一次,因此会对这些脚本进行更改。

步骤

每个步骤都可实现离散任务。 工作流步骤有不同类型:

  • 参加者(用户/组):这些步骤将生成一个工作项并将其分配给用户或用户组。 用户必须完成工作项才能推进工作流。
  • 进程(脚本、Java方法调用):这些步骤由系统自动执行。 ECMA脚本或Java类实现该步骤。 可以开发服务来监听特殊的工作流事件并根据业务逻辑执行任务。
  • 容器(子工作流):此类型的步骤开始另一个工作流模型。
  • 或拆分/加入:使用逻辑确定下一步在工作流中执行的步骤。
  • 和拆分/加入:允许同时执行多个步骤。

所有步骤都共享以下通用属性:AutoadvanceTimeout警报(脚本编写)。

过渡

WorkflowTransition表示WorkflowModel的两个WorkflowNodes之间的过渡。

  • 它定义两个连续步骤之间的链接。
  • 可以应用规则。

工作项

WorkItem是通过WorkflowModelWorkflow实例传递的单元。 它包含实例所操作的WorkflowData以及对描述基础工作流步骤的WorkflowNode的引用。

  • 它用于识别任务,并放入相应的收件箱中。
  • 一个工作流实例可以同时具有一个或多个WorkItems(取决于工作流模型)。
  • WorkItem引用工作流实例。
  • 在存储库中,WorkItem存储在工作流实例的下方。

有效负荷

引用必须通过工作流进行高级的资源。

有效负荷实现引用存储库中的资源(按路径、UUID或URL)或序列化的java对象。 在存储库中引用资源非常灵活,并且与sling结合起来非常有效;例如,引用的节点可以呈现为表单。

生命周期

在启动新工作流时(通过选择相应的工作流模型并定义有效负荷)创建,在处理结束节点时结束。

可以对工作流实例执行以下操作:

  • 终止
  • 暂停
  • 继续
  • 重新启动

已完成和终止的实例已存档。

收件箱

每个用户帐户都有其自己的工作流收件箱,分配的WorkItems可在该收件箱中访问。

WorkItems将直接分配给用户帐户或分配给它们所属的组。

工作流类型

工作流模型控制台中指明了各种类型的工作流:

wf-upgraded-03

  • 默认

    这些是标准AEM实例中附带的现成工作流。

  • 自定义工作流(控制台中没有指示器)

    这些是已创建为新工作流的工作流,或者来自已覆盖有自定义项的现成。

  • 旧版

    工作流在AEM的先前版本中创建。 这些组件可以在升级过程中保留,也可以作为上一版本的工作流包导出,然后导入到新版本中。

临时工作流

标准工作流在执行时保存运行时(历史记录)信息。 您还可以将工作流模型定义为​Tranient​以避免此类历史记录被保留。 这用于性能调整,因为它节省/避免了用于保持信息的时间/资源。

临时工作流可用于以下任何工作流:

  • 经常运行。
  • 不需要工作流历史记录。

引入了临时工作流来加载大量资产,其中资产信息很重要,但工作流运行时历史记录不重要。

注意

有关更多详细信息,请参阅创建临时工作流

注意

当工作流模型被标记为“临时”时,仍有一些情况会保留运行时信息:

  • 负载类型(例如,视频)需要外部步骤进行处理;在这种情况下,需要运行时历史记录才能进行状态确认。
  • 工作流输入​AND Split;在这种情况下,需要运行时历史记录才能进行状态确认。
  • 当临时工作流进入参与者步骤时,它将模式(在运行时)更改为非临时工作流;当任务被传递给某个人时,历史需要被保留
注意

在临时工作流中,您不应使用​跳转步骤

这是因为​跳转步骤​在goto点创建sling作业以继续工作流。 这会破坏使工作流处于临时状态的目的,并在日志文件中生成错误。

要在临时工作流中做出决策,可以使用​OR Split

注意

有关临时工作流如何影响资产性能的更多信息,请参阅资产最佳实践

多资源支持

为工作流模型激活​多资源支持​意味着即使选择多个资源,也会启动单个工作流实例;这些将作为包附。

如果未为工作流模型激活​多资源支持​并且选择了多个资源,则将为每个资源启动单个工作流实例。

注意

有关更多详细信息,请参阅配置多资源支持的工作流

工作流阶段

工作流阶段可在处理任务时帮助可视化工作流的进度。 它们可用于概述工作流在处理过程中的程度,如运行工作流时,用户可以视图​Stage​描述的进度(与单个步骤相对)。

由于各个步骤名称可以是特定的和技术性的,因此可以定义阶段名称以提供工作流进度的概念视图。

例如,对于具有六个步骤和四个阶段的工作流:

  1. 您可以配置工作流阶段(显示工作流进度),然后为工作流中的每个步骤分配相应的阶段:

    • 可以创建多个舞台名称。
    • 然后,单个阶段名称将分配给每个步骤(可以将阶段名称分配给一个或多个步骤)。
    步骤名称 阶段(分配给步骤)
    步骤 1 创建
    步骤 2 创建
    步骤 3 审核
    步骤 4 批准
    步骤 5 完成
    步骤 6 完成
  2. 运行工作流时,用户可以根据阶段名称(而非步骤名称)视图进度。 工作流进度将显示在收件箱中列出的工作项](/docs/experience-manager-65/sites-authoring/workflows-participating.html?lang=zh-Hans#opening-a-workflow-item-to-view-details-and-take-actions)的任务详细信息窗口的[工作流信息选项卡中。

工作流和Forms

通常,工作流用于处理AEM中的表单提交。 这可以与标准AEM实例中提供的核心组件构成组件,或与AEM Forms解决方案一起实现。

创建新表单时,表单提交可轻松与工作流模型关联;例如,将内容存储在存储库的特定位置,或向用户通知表单提交及其内容。

工作流语和翻译

工作流也是转换过程的一个完整部分。

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now