创建工作流模型 creating-workflow-models
您可以创建工作流模型,以定义用户启动工作流时执行的一系列步骤。 您还可以定义模型属性,例如工作流是临时工作流还是使用多个资源。
当用户启动工作流时,将启动一个实例;这是相应的运行时模型,在您同步更改时创建。
创建新工作流 creating-a-new-workflow
首次创建工作流模型时,它包含:
- 步骤? 流程开始 ?和? 流程结束。
这些表示工作流的开始和结束。 这些步骤是必需的,无法编辑/删除。 - 名为? 步骤1 ?的示例? 参与者 ?步骤。
此步骤配置为向工作流发起者分配工作项。 编辑或删除此步骤,并根据需要添加步骤。
使用编辑器创建工作流:
- 打开? 工作流模型 ?控制台;通过? 工具、工作流、模型 ?或例如:
- 选择? 创建,然后选择? 创建模型。
- 出现? 添加工作流模型 ?对话框。 在选择? 完成 ?之前,请输入? 标题 ?和? 名称(可选)。
- 新模型在? 工作流模型 ?控制台中列出。
- 选择新工作流,然后使用?编辑 ?打开它以进行配置:
/var/workflow/models
/var/workflow/models/prototypes
编辑工作流 editing-a-workflow
您可以编辑任何现有的工作流模型以:
- 定义步骤及其参数
- 配置工作流属性,包括阶段、工作流是否为临时工作流和/或使用多个资源
编辑?默认和/或旧版(现成)工作流还有一个额外的步骤,以确保在更改之前创建安全副本。
完成工作流更新后,您必须使用? 同步 ?到? 生成运行时模型。 有关详细信息,请参阅同步您的工作流。
同步工作流 — 生成运行时模型 sync-your-workflow-generate-a-runtime-model
Sync (在编辑器工具栏的右侧)生成运行时模型。 运行时模型是用户启动工作流时实际使用的模型。 如果不? 同步 ?您的更改,则更改在运行时将不可用。
当您(或任何其他用户)对工作流进行任何更改时,您必须使用? 同步 ?来生成运行时模型 — 即使单个对话框(例如,用于步骤)具有自己的保存选项。
当更改与运行时(已保存)模型同步时,将改为显示? 已同步。
某些步骤具有必填字段和/或内置验证。 如果不满足这些条件,则在尝试? 同步 ?模型时将显示错误。 例如,当没有为? 参与者 ?步骤定义参与者时:
首次编辑默认或旧版工作流 editing-a-default-or-legacy-workflow-for-the-first-time
打开默认和/或旧模型进行编辑时:
-
步骤浏览器不可用(左侧)。
-
工具栏(右侧)中提供了? 编辑 ?操作。
-
最初,模型及其属性以只读模式显示为:
- 默认工作流位于
/libs
中 - 旧版工作流位于
/etc
中
选择? 编辑 ?将:
- 默认工作流位于
-
将工作流的副本放入
/conf
-
使步骤浏览器可用
-
允许您进行更改
向模型添加步骤 adding-a-step-to-a-model
将步骤添加到模型中以表示要执行的活动 — 每个步骤都会执行特定活动。 标准AEM实例中提供了一组步骤组件。
在编辑模型时,可用的步骤将出现在? 步骤浏览器 ?的各个组中。 例如:
要将步骤添加到工作流模型,请执行以下操作:
-
打开现有的工作流模型进行编辑。 从? 工作流模型 ?控制台中,选择所需的模型,然后选择? 编辑。
-
打开步骤浏览器;使用顶部工具栏最左边的? 切换侧面板。 在此编辑器中,您可以:
- 筛选 ?特定步骤。
- 使用下拉选择器将选择限制为一组特定的步骤。
- 选择“显示描述”图标
-
将相应的步骤拖动到模型中的所需位置。
例如,参与者步骤。
添加到流后,您可以配置步骤。
-
根据需要添加任意数量的步骤或其他更新。
在运行时,步骤将按照它们在模型中出现的顺序执行。 添加步骤组件后,可将其拖动到模型中的其他位置。
您还可以复制、剪切、粘贴、分组或删除现有步骤;与页面编辑器一样。
也可以使用工具栏选项
-
使用? 同步(编辑器工具栏)确认更改以生成运行时模型。
有关详细信息,请参阅同步您的工作流。
配置工作流步骤 configuring-a-workflow-step
您可以? 配置,并使用? 步骤属性 ?对话框自定义工作流步骤的行为。
创建临时工作流 creating-a-transient-workflow
您可以在创建模型或编辑现有模型时创建临时工作流模型:
在触屏鲍滨中提供工作流模型 classic2touchui
如果经典鲍滨中存在工作流模型,但在触屏鲍滨的? 时间轴 ?边栏的选择弹出菜单中缺少该模型,请按照配置使其可用。 以下步骤说明了如何使用名为? 请求激活 ?的工作流模型。
-
确认模型在触屏UI中不可用。 使用
/assets.html/content/dam
路径访问资源。 选择资源。 在左边栏中打开? 时间轴。 单击? 启动工作流,并确认弹出列表中不存在? 激活请求 ?模型。 -
浏览? 工具>常规>标记。 选择? 工作流。
-
选择? 创建>创建标记。 将? Title ?设置为
DAM
,将? Name ?设置为dam
。 选择? 提交。
-
导航到? 工具>工作流>模型。 选择? 激活请求,然后选择? 编辑。
-
选择? 编辑,打开? 页面信息 ?菜单,从中选择? 打开属性,然后转到? 基本 ?选项卡(如果尚未打开)。
-
将
Workflow : DAM
添加到? 标记 ?字段。 使用复选框(勾号)确认选择。 -
使用? 保存并关闭 ?确认添加标记。
-
使用? 同步 ?完成该过程。 现在,该工作流在触屏UI中可用。
为多资源支持配置工作流 configuring-a-workflow-for-multi-resource-support
您可以在创建模型或编辑现有模型时,为多资源支持配置工作流模型:
配置工作流暂存(显示工作流进度) configuring-workflow-stages-that-show-workflow-progress
工作流暂存有助于在处理任务时可视化工作流的进度。
可用的阶段在工作流模型中定义;现有工作流模型可以更新以包括阶段定义。 您可以为工作流模型定义任意数量的阶段。
要为工作流定义? 阶段,请执行以下操作:
-
打开工作流模型进行编辑。
-
从工具栏中选择? 工作流模型属性。 然后打开? 阶段 ?选项卡。
-
添加(和定位)所需的? 阶段。 您可以为工作流模型定义任意数量的阶段。
例如:
-
单击? 保存并关闭 ?以保存属性。
-
为工作流模型中的每个步骤分配一个阶段。 例如:
一个阶段可以分配给多个步骤。 例如:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 步骤 阶段 步骤 1 创建 步骤 2 创建 步骤 3 审查 步骤 4 批准 步骤 5 批准 步骤 6 完成 -
使用? 同步(编辑器工具栏)确认更改以生成运行时模型。
有关详细信息,请参阅同步您的工作流。
在资源包中导出工作流模型 exporting-a-workflow-model-in-a-package
要导出资源包中的工作流模型,请执行以下操作:
-
使用包管理器创建包:
-
通过? 工具、部署、包 ?导航到包管理器。
-
单击? 创建包。
-
指定? 包名称,并根据需要指定任何其他详细信息。
-
单击? 确定。
-
-
单击新包工具栏上的? 编辑。
-
打开? 筛选器 ?选项卡。
-
选择? 添加筛选器 ?并指定工作流模型? 设计 ?的路径:
/conf/global/settings/workflow/models/<*your-model-name*>
单击? 完成。
-
选择? 添加筛选器 ?并指定? 运行时 ?工作流模型的路径:
/var/workflow/models/<*your-model-name*>
单击? 完成。
-
为模型使用的任何自定义脚本添加其他筛选器。
-
单击? 保存 ?以确认您的筛选器定义。
-
从包定义的工具栏中选择? 生成。
-
从包工具栏中选择? 下载。
使用工作流处理表单提交 using-workflows-to-process-form-submissions
您可以配置要由所选工作流处理的表单。 当用户提交表单时,将创建一个新的工作流实例,该实例使用表单提交的数据作为其有效负载。
要配置要与表单一起使用的工作流,请执行以下操作:
-
创建页面并打开它以进行编辑。
-
向页面添加? 表单 ?组件。
-
配置 ?页面中显示的? 表单开始 ?组件。
-
使用? 启动工作流 ?从可用工作流中选择所需的工作流:
-
单击勾号确认新表单配置。
测试工作流 testing-workflows
测试工作流时,好的做法是使用各种有效负载类型(包括与为其开发该工作流的类型不同的类型)。 例如,如果您打算让工作流处理Assets,请通过将页面设置为有效负载来测试该工作流,并确保它不会引发错误。
例如,按如下方式测试新工作流:
-
从控制台启动您的工作流模型。
-
定义? 有效负载 ?并确认。
-
根据需要执行操作,以便工作流继续运行。
-
在工作流运行时监视日志文件。
您还可以将础贰惭配置为在日志文件中显示? DEBUG ?消息。 有关详细信息,请参阅日志记录,当开发完成后,将? 日志级别 ?设置回? 信息。
示例 examples
示例:创建一个(简单)工作流以接受或拒绝发布请求 example-creating-a-simple-workflow-to-accept-or-reject-a-request-for-publication
为了说明创建工作流的一些可能性,以下示例创建了Publish Example
工作流的变体。
-
新工作流将包含:
- 流程开始
Step 1
- 流结束
-
删除
Step 1
(因为对于此示例而言,它是错误的步骤类型):- 单击该步骤并从组件工具栏中选择? 删除。 确认该操作。
-
从步骤浏览器的? 工作流 ?选项中,将? 参与者步骤 ?拖动到工作流上,并将其放置在? 流程开始 ?和? 流程结束 ?之间。
-
要打开“属性”对话框,请执行以下操作:
- 单击参与者步骤,然后从组件工具栏中选择? 配置。
- 双击参与者步骤。
-
在? 常用 ?选项卡中,为? 标题 ?和? 描述 ?输入
Validate Content
。 -
打开? 用户/组 ?选项卡:
- 激活? 通过电子邮件通知用户。
- 为? 用户/组 ?字段选择
Administrator
(admin
)。
note note NOTE 若要发送电子邮件,需要配置邮件服务和用户帐户详细信息。 -
单击勾号确认更新。
您将返回到工作流模型的概述,此处参与者步骤将重命名为
Validate Content
。 -
将? 或厂辫濒颈迟 ?拖动到工作流上,并将其放置在
Validate Content
和? 流结束 ?之间。 -
打开? 或厂辫濒颈迟 ?以进行配置。
-
配置:
-
常用:指定拆分名称。
-
分支1:选择? 默认路由。
-
分支2:确保未选择? 默认路由。
-
-
确认对? 翱搁拆分 ?的更新。
-
将? 参与者步骤 ?拖到左侧分支,打开属性,指定以下值,然后确认更改:
-
标题:
Reject Publish Request
-
用户/组:例如,
projects-administrators
-
通过电子邮件通知用户:激活以通过电子邮件通知用户。
-
-
将? 进程步骤 ?拖到右侧分支中,打开属性,指定以下值,然后确认更改:
-
标题:
Publish Page as Requested
-
进程:选择
Activate Page
。 此进程将所选页面发布到发布服务器实例。
-
-
单击? 同步(编辑器工具栏)以生成运行时模型。
有关详细信息,请参阅同步您的工作流。
您的新工作流模型将如下所示:
-
将此工作流应用于您的页面,以便当用户移动到? 完成 ?的? 验证内容 ?步骤时,他们可以选择是要? 按请求发布页面,还是? 拒绝发布请求。
示例:使用ECMA脚本为翱搁拆分定义规则 defineruleecmascript
翱搁拆分 ?步骤允许您在工作流中引入条件处理路径。
要定义翱搁规则,请按照以下步骤操作:
-
创建两个脚本并将它们保存在存储库中,例如,位于以下位置:
/apps/myapp/workflow/scripts
note note NOTE 脚本必须具有返回布尔值的函数 check()
。 -
编辑工作流并将? 翱搁拆分 ?添加到模型中。
-
编辑? 翱搁拆分 ?的? 分支1 ?的属性:
-
通过将? 值 ?设置为
true
,将此路由定义为? 默认路由。 -
作为? 规则,设置脚本的路径。 例如:
/apps/myapp/workflow/scripts/myscript1.ecma
note note NOTE 您可以根据需要切换分支顺序。 -
-
编辑? 翱搁拆分 ?的? 分支2 ?的属性。
-
作为? 规则,设置其他脚本的路径。 例如:
/apps/myapp/workflow/scripts/myscript2.ecma
-
-
设置每个分支中各个步骤的属性。 确保设置了? 用户/组。
-
单击? 同步(编辑器工具栏)以保留对运行时模型所做的更改。
有关详细信息,请参阅同步您的工作流。
函数颁丑别肠办() function-check
如果节点是位于/content/we-retail/us/en
下的JCR_PATH
,则以下示例脚本返回true
:
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;
}
}
示例:自定义激活请求 example-customized-request-for-activation
您可以自定义任何现成的工作流。 要具有自定义行为,请叠加相应工作流的详细信息。
例如,请求激活。 此工作流用于发布? 站点 ?中的页面,当内容作者没有相应的复制权限时,此工作流将自动触发。 有关详细信息,请参阅自定义页面创作 — 自定义激活请求工作流。