创建工作流模型

注意

有关经典UI的使用,请参阅AEM 6.3文档以获取参考。

创建工作流模型以定义用户启动工作流时执行的一系列步骤。 您还可以定义模型属性,例如工作流是临时的还是使用多个资源。

用户启动工作流时,会启动实例;这是相应的运行时模型,在您Sync更改时创建。

创建新工作流

首次创建新的工作流模型时,该模型包含:

  • 步骤​流开始​和​流结束
    它们表示工作流的开始和结束。 这些步骤是必需的,无法编辑/删除。
  • 名为​步骤1​的​参与者​步骤示例。
    此步骤配置为将工作项分配给工作流启动器。 编辑或删除此步骤,并根据需要添加步骤。

要使用编辑器创建新工作流,请执行以下操作:

  1. 打开​工作流模型​控制台;通过​工具工作流模型​或例如:https://localhost:4502/aem/workflow
  2. 选择​创建,然后选择​创建模型
  3. 出现​添加工作流模型​对话框。 在选择​Done​之前,输入​标题​和​名称(可选)。
  4. 新模型列在​工作流模型​控制台中。
  5. 选择新的工作流,然后使用​Edit​将其打开以进行配置:
    wf-01
注意

如果以编程方式创建模型(使用crx包),则还可以在中创建子文件夹:

/var/workflow/models

例如,/var/workflow/models/prototypes

然后,可以使用此文件夹管理对该文件夹🔗中模型的访问。

编辑工作流

您可以编辑任何现有的工作流模型,以:

编辑​默认和/或旧版(现成)工作流还有一个额外的步骤,以确保在进行更改之前执行安全副本

当工作流的更新完成时,必须使用​Sync​到​Generate a Runtime Model。 有关详细信息,请参阅同步工作流

同步工作流 — 生成运行时模型

同步 (位于编辑器工具栏的右侧)会生成一个 运行时模型。运行时模型是用户启动工作流时实际使用的模型。 如果您没有​同步​您的更改,则这些更改在运行时将不可用。

当您(或任何其他用户)对工作流进行任何更改时,必须使用​Sync​来生成运行时模型 — 即使当单个对话框(例如,步骤)具有其自己的保存选项时也是如此。

当更改与运行时(已保存)模型同步时,将改为显示​Synched

某些步骤包含必填字段和/或内置验证。 当这些条件不满足时,当您尝试​同步​模型时,将显示一个错误。 例如,当​参与者​步骤未定义参与者时:

wf-21

首次编辑默认或旧版工作流

当您打开默认和/或旧版模型进行编辑时:

  • “步骤”浏览器不可用(左侧)。
  • 工具栏(右侧)中提供了​Edit​操作。
  • 最初,模型及其属性以只读模式显示为:
    • 默认工作流位于/libs
    • 旧版工作流位于/etc
      选择
      ​编辑:
  • 将工作流的副本导入/conf
  • 使步骤浏览器可用
  • 允许您进行更改
注意

有关更多信息,请参阅工作流模型的位置

wf-22

向模型添加步骤

您需要向模型中添加步骤以表示要执行的活动 — 每个步骤都会执行特定活动。 标准AEM实例中提供了一系列步骤组件。

编辑模型时,可用步骤会显示在​步骤浏览器​的各组中。 例如:

wf-10

注意

有关随AEM一起安装的主要步骤组件的信息,请参阅工作流步骤参考

要向工作流模型添加步骤,请执行以下操作:

  1. 打开现有的工作流模型进行编辑。 从​工作流模型​控制台中,选择所需的模型,然后选择​编辑

  2. 打开步骤浏览器;使用顶部工具栏最左侧的​切换侧面板。 在此对话框中,您可以:

    • ​过滤器以了解特定步骤。
    • 使用下拉选择器将选择限制为一组特定步骤。
    • 选择“显示描述”图标wf-stepinfo-icon以显示有关相应步骤的更多详细信息。

    wf-02

  3. 将相应的步骤拖动到模型中的所需位置。

    例如,参与者步骤

    添加到流程后,您可以配置步骤

    wf-03

  4. 根据需要添加任意数量的步骤或其他更新。

    在运行时,会按步骤在模型中的显示顺序执行步骤。 添加步骤元件后,可将其拖动到模型中的其他位置。

    您还可以复制、剪切、粘贴、分组或删除现有步骤;与页面编辑器一样。

    也可以使用工具栏选项折叠/展开拆分步骤:wf-collapseexpand-toolbar-icon

  5. 使用​Sync(编辑器工具栏)确认更改以生成运行时模型。

    有关详细信息,请参阅同步工作流

配置工作流步骤

您可以使用​步骤属性​对话框,配置​并自定义工作流步骤的行为。

  1. 要打开步骤的​步骤属性​对话框,请执行以下任一操作:

    • 单击/点按工作流模型中的* *步骤,然后从组件工具栏中选择​配置

    • 双击该步骤。

    注意

    有关随AEM一起安装的主要步骤组件的信息,请参阅工作流步骤参考

  2. 根据需要配置​步骤属性;可用的属性取决于步骤类型,还可能有多个可用选项卡。 例如,默认的​参与者步骤​在新工作流中以Step 1形式存在:

    wf-11

  3. 使用勾号确认您的更新。

  4. 使用​Sync(编辑器工具栏)确认更改以生成运行时模型。

    有关详细信息,请参阅同步工作流

创建临时工作流

创建新模型或编辑现有模型时,可以创建Transient工作流模型:

  1. 打开工作流模型以进行编辑

  2. 从工具栏中选择​工作流模型属性

  3. 在对话框中激活​临时工作流(或根据需要取消激活):

    wf-07

  4. 使用​保存并关闭​确认更改;后跟​同步(编辑器工具栏)以生成运行时模型。

    有关详细信息,请参阅同步工作流

注意

transient模式AEM中运行工作流时,不会存储任何工作流历史记录。 因此,时间轴不显示与该工作流相关的任何信息。

在触屏UI中使工作流模型可用

如果经典UI中存在工作流模型,但在触屏UI的​时间轴​边栏的选择弹出菜单中缺少该模型,请按照配置使其可用。 以下步骤说明了如何使用名为​请求激活​的工作流模型。

  1. 确认模型在触屏优化UI中不可用。 使用/assets.html/content/dam路径访问资产。 选择资产。 在左边栏中打开​时间轴。 单击​启动工作流,并确认弹出列表中不存在​激活请求​模型。

  2. 在​工具>常规>标记​中导航。 选择​工作流

  3. 选择​创建>创建标记。 将​标题​设置为DAM,将​名称​设置为dam。 选择​提交
    在工作流模型中创建标记

  4. 导航到​工具>工作流>模型。 选择​请求激活,然后选择​编辑

  5. 选择​编辑,打开​页面信息​菜单,然后从此处选择​打开属性​并转到​基本​选项卡(如果尚未打开)。

  6. Workflow : DAM添加到​标记​字段。 使用勾号(勾号)确认选择。

  7. 使用​保存并关闭​确认添加标记。
    编辑模型的页面属性

  8. 使用​Sync​完成该过程。 现在,触屏UI中提供了工作流。

为多资源支持配置工作流

创建新模型或编辑现有模型时,可以为多资源支持配置工作流模型:

  1. 打开工作流模型以进行编辑

  2. 从工具栏中选择​工作流模型属性

  3. 在对话框中,激活​多资源支持(或根据需要取消激活):

    wf-08

  4. 使用​保存并关闭​确认更改;后跟​同步(编辑器工具栏)以生成运行时模型。

    有关详细信息,请参阅同步工作流

配置工作流阶段(显示工作流进度)

工作 流阶段有助于在处理任务时可视化工作流的进度。

注意

如果在​页面属性​中定义了工作流阶段,但没有将其用于任何工作流步骤,则进度栏将不显示任何进度(无论当前的工作流步骤如何)。

可用阶段在工作流模型中进行定义;可以更新现有的工作流模型以包含阶段定义。 您可以为工作流模型定义任意数量的阶段。

为工作流定义​阶段:

  1. 打开工作流模型进行编辑。

  2. 从工具栏中选择​工作流模型属性。 然后打开​阶段​选项卡。

  3. 添加(和放置)所需的​阶段。 您可以为工作流模型定义任意数量的阶段。

    例如:

    wf-08-1

  4. 单击​保存并关闭​以保存属性。

  5. 为工作流模型中的每个步骤分配一个阶段。 例如:

    wf-09

    可以将阶段分配到多个步骤。 例如:

    步骤 暂存
    步骤 1 创建
    步骤 2 创建
    步骤 3 审核
    步骤 4 批准
    步骤 5 批准
    步骤 6 完成
  6. 使用​Sync(编辑器工具栏)确认更改以生成运行时模型。

    有关详细信息,请参阅同步工作流

在包中导出工作流模型

要在包中导出工作流模型,请执行以下操作:

  1. 使用包管理器创建新包:

    1. 通过​ToolsDeploymentPackages​导航到包管理器。

    2. 单击​创建包

    3. 根据需要指定​包名称​和任何其他详细信息。

    4. 单击​确定

  2. 单击新资源包工具栏上的​编辑

  3. 打开​Filters​选项卡。

  4. 选择​添加过滤器​并指定工作流模型​design​的路径:

    /conf/global/settings/workflow/models/<*your-model-name*>

    单击​完成

  5. 选择​添加过滤器​并指定​运行时​工作流模型的路径:

    /var/workflow/models/<*your-model-name*>

    单击​完成

  6. 为模型使用的任何自定义脚本添加其他过滤器。

  7. 单击​Save​以确认您的过滤器定义。

  8. 从包定义的工具栏中选择​Build

  9. 从包工具栏中选择​Download

使用工作流处理表单提交

您可以配置表单以供选定工作流处理。 用户提交表单时,将创建一个新的工作流实例,并将表单提交的数据作为其有效负载。

要配置要与表单一起使用的工作流,请执行以下操作:

  1. 创建新页面并将其打开进行编辑。

  2. 将​Form​组件添加到页面中。

  3. ​配置 面中显示的表单启动组件。

  4. 使用​启动工作流​从可用工作流中选择所需的工作流:

    wf-12

  5. 使用勾号确认新表单配置。

测试工作流

在测试工作流以使用各种负载类型时,这是一种良好的做法;包括与其开发对象不同的类型。 例如,如果您打算将工作流与资产进行处理,请通过将页面设置为有效负载来测试该工作流,并确保该工作流不会引发错误。

例如,按如下方式测试新工作流:

  1. 从控制台启 动工作流模型。

  2. 定义​负载​并确认。

  3. 根据需要采取相应操作,以便继续工作流。

  4. 在工作流运行时监控日志文件。

您还可以将AEM配置为在日志文件中显示​DEBUG​消息。 请参阅日志记录以了解更多信息,并在开发完成后,将​日志级别​设置回​信息

示例

示例:创建用于接受或拒绝发布请求的(简单)工作流

为了说明创建工作流的一些可能性,以下示例创建了Publish Example工作流的变体。

  1. 创建新的工作流模型

    新工作流将包含:

    • 流程开始
    • Step 1
    • 流程结束
  2. 删除Step 1(因为此示例的步骤类型错误):

    • 单击该步骤,然后从组件工具栏中选择​删除。 确认该操作。
  3. 从步骤浏览器的​工作流​选择中,将​参与者步骤​拖动到工作流上,并将其放在​流开始​和​流结束​之间。

  4. 要打开属性对话框,请执行以下操作之一:

    • 单击参与者步骤,然后从组件工具栏中选择​配置
    • 双击参与者步骤。
  5. 在​Common​选项卡中,为​Title​和​Description​输入Validate Content

  6. 打开​User/Group​选项卡:

    • 激活​通过电子邮件​通知用户。
    • 为​用户/组​字段选择Administrator(admin)。
    注意

    对于要发送的电子邮件,邮件服务和用户帐户详细信息需要配置

  7. 使用勾号确认更新。

    您将返回到工作流模型的概述,此处的参与者步骤将重命名为Validate Content

  8. 将​Or Split​拖动到工作流上,并将其放在Validate Content和​流结束​之间。

  9. 打开​Or Split​进行配置。

  10. 配置:

    • 常见:指定拆分名称。

    • 分支1:选择 默认路由

    • 分支2:确保 未选 择默认路由。

  11. 确认对​OR Split​的更新。

  12. 将​参与者步骤​拖到左侧分支中,打开属性,指定以下值,然后确认更改:

    • 标题: Reject Publish Request

    • 用户/群组:例如, projects-administrators

    • 通过电子邮件通知用户:激活以通过电子邮件通知用户。

  13. 将​处理步骤​拖到右侧分支中,打开属性,指定以下值,然后确认更改:

    • 标题: Publish Page as Requested

    • 流程:选择 Activate Page。此过程会将选定的页面发布到发布者实例。

  14. 单击​Sync(编辑器工具栏)以生成运行时模型。

    有关详细信息,请参阅同步工作流

    您的新工作流模型将如下所示:

    wf-13

  15. 将此工作流应用于您的页面,以便当用户移动到​完成 验证内容​步骤时,他们可以选择是要​按请求发布页面,还是​拒绝发布请求

    chlimage_1-72

示例:使用ECMA脚本定义OR拆分规则

或拆 分步骤允许您将条件处理路径引入工作流。

要定义OR规则,请按如下步骤继续操作:

  1. 创建两个脚本并将其保存在存储库中,例如:

    /apps/myapp/workflow/scripts

    注意

    脚本必须具有返回布尔值的函数check()

  2. 编辑工作流,并将​OR Split​添加到模型中。

  3. 编辑​OR Split​的​Branch 1​的属性:

    • 通过将​Value​设置为true,将其定义为​默认路由

    • 作为​Rule,设置脚本的路径。 例如:

      /apps/myapp/workflow/scripts/myscript1.ecma

    注意

    您可以根据需要切换分支顺序。

  4. 编辑​OR Split​的​Branch 2​的属性。

    • 作为​Rule,将路径设置为其他脚本。 例如:

      /apps/myapp/workflow/scripts/myscript2.ecma

  5. 设置每个分支中各个步骤的属性。 确保设置了​User/Group

  6. 单击​Sync(编辑器工具栏)可将更改保留到运行时模型。

    有关详细信息,请参阅同步工作流

函数检查()

注意

请参阅使用ECMAScript

如果节点位于/content/we-retail/us/en下,则以下示例脚本会返回true:JCR_PATH

function check() {
    if (workflowData.getPayloadType() == "JCR_PATH") {
      var path = workflowData.getPayload().toString();
      var node = jcrSession.getItem(path);

      if (node.getPath().indexOf("/content/we-retail/us/en") >= 0) {
       return true;
      } else {
       return false;
      }
     } else {
      return false;
     }
}

示例:自定义的激活请求

您可以自定义任何现成的工作流。 要实现自定义行为,请叠加相应工作流的详细信息。

例如,Request for Activation。 此工作流用于发布​Sites​中的页面,并在内容作者没有相应的复制权限时自动触发。 有关更多详细信息,请参阅自定义页面创作 — 自定义激活工作流请求

在此页面上