OSGi上以Forms为中心的工作流 forms-centric-workflow-on-osgi
企业从成千上万个表单、各种后端系统以及在线或离线数据源中收集数据。 他们还拥有一组动态的用户来对数据做出决策,其中涉及反复的审核和批准流程。
除了针对内部和外部受众的审查和审批工作流之外,大型组织和企业还有重复性的任务。 例如,将PDF文档转换为另一种格式。 手动完成这些任务会占用很多时间和资源。 企业还有对文档进行数字签名并将表单数据存档以便以后以预定义格式使用的法律要求。
OSGi上以Forms为中心的工作流简介 introduction-to-forms-centric-workflow-on-osgi
您可以使用AEM Workflows快速构建基于自适应表单的工作流。 这些工作流可用于审阅和批准、业务流程流、启动文档服务、与Adobe Sign签名工作流集成以及类似操作。 例如,信用卡申请处理、员工休假审批工作流、将表单另存为PDF文档。 此外,这些工作流还可以在组织内或跨网络防火墙使用。
借助OSGi上以Forms为中心的工作流,您可以在OSGi栈栈上快速构建和部署用于各种任务的工作流,而无需在JEE栈栈上安装完整的流程管理功能。 工作流的开发和管理使用熟悉的AEM Workflow和AEM Inbox功能。 工作流构成了跨多个软件系统、网络、部门甚至组织的真实业务流程自动化的基础。
设置后,这些工作流可以手动触发以完成定义的流程,或在用户提交表单或以编程方式运行 通信管理 书信。 通过这种增强的AEM工作流功能,AEM Forms提供了两种截然不同但相似的功能。 作为部署策略的一部分,您需要决定适合您的部署策略。 查看 比较 OSGi上以Forms为中心的AEM Workflow和JEE上的流程管理。 此外,有关部署拓扑,请参见 AEM Forms的架构和部署拓扑.
OSGi上以Forms为中心的工作流扩展了 AEM收件箱 并为AEM工作流编辑器提供额外的组件(步骤),以添加对以AEM Forms为中心的工作流的支持。 扩展的AEM收件箱具有类似于 AEM Forms工作区. 除了管理以人为中心的工作流(批准、审核等)之外,您还可以使用AEM工作流实现自动化 文档服务 — 相关操作(例如,生成PDF)和电子签名(Adobe Sign)文档。
所有AEM Forms工作流步骤都支持使用变量。 变量使工作流步骤能够在运行时跨步骤保留和传递元数据。 您可以创建不同类型的变量以存储不同类型的数据。 您还可以创建变量集合(数组),用于存储相关同类型数据的多个实例。 通常,当您需要根据其持有的值做出决策时,或者需要存储稍后在流程中需要的信息时,可以使用变量或变量集合。 有关在这些以Forms为中心的工作流组件(步骤)中使用变量的更多信息,请参阅 OSGi上以Forms为中心的工作流 — 步骤参考. 有关创建和管理变量的信息,请参阅 AEM工作流中的变量.
下图描述了在OSGi上创建、运行和监控以Forms为中心的工作流的端到端过程。
开始之前 before-you-start
- 工作流是真实业务过程的一种表现形式。 让您的实际业务流程和业务流程参与者的列表做好准备。 此外,在开始创建工作流之前,应准备好宣传材料(自适应表单、PDF文档等)。
- 一个工作流可以有多个阶段。 这些阶段显示在AEM收件箱中,并帮助报告工作流的进度。 将业务流程划分为逻辑阶段。
- 您可以配置AEM Workflows的分配任务步骤,以向用户或受分配人发送电子邮件通知。 所以, 启用电子邮件通知.
- 工作流还可以使用Adobe签名进行数字签名。 如果您计划在工作流中使用Adobe Sign,则 为AEM Forms配置Adobe Sign 将其用在工作流中之前。
创建工作流模型 create-a-workflow-model
工作流模型由业务流程的逻辑和流程组成。 它由一系列步骤组成。 这些步骤是AEM组件。 您可以使用参数和脚本扩展工作流步骤,以根据需要提供更多功能和控制。 除了开箱即用的AEM步骤之外,AEM Forms还提供了一些步骤。 有关AEM和AEM Forms步骤的详细列表,请参阅 AEM工作流步骤参考 和 OSGi上以Forms为中心的工作流 — 步骤参考.
AEM提供了一个直观的用户界面,用于使用提供的工作流步骤创建工作流模型。 有关创建工作流模型的分步说明,请参阅 创建工作流模型. 以下示例提供了为审批和审阅工作流创建工作流模型的分步说明:
为审批和审核工作流创建模型 create-a-model-for-an-approval-and-review-workflow
审批和审核工作流适用于需要人工干预才能做出决定的任务。 以下示例为前台银行代理填写的抵押贷款申请创建工作流模型。 填写申请后,将发送该申请以供审批。 随后,经批准的申请将通过Adobe Sign发送给申请人电子签名。
该示例以如下附加的软件包形式提供。 使用包管理器导入并安装示例。 您还可以执行以下步骤来手动创建应用程序的工作流模型:
此示例创建一个工作流模型,用于创建一个由前台银行代理填写的抵押贷款申请。 填写完毕后,将发送申请以供审批。 稍后,将批准的申请发送给客户,以使用Adobe Sign进行电子签名。 您可以使用包管理器导入并安装示例。
-
打开工作流模型控制台。 默认URL为
https://[server]:[port]/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models
-
选择 创建,则 创建模型. 此时将显示“添加工作流模型”对话框。
-
输入 标题 和 名称 (可选)。 例如,抵押贷款申请。 选择 完成。
-
选择新创建的工作流模型并选择 编辑. 现在,您可以添加工作流步骤来构建业务逻辑。 首次创建工作流模型时,它包含:
- 步骤:流程开始和流程结束。 这些步骤表示工作流的开始和结束。 这些步骤是必需的,无法编辑或删除。
- 名为步骤1的参与者步骤示例。 此步骤配置为将工作项分配给管理员用户。 删除此步骤。
-
启用电子邮件通知。 您可以在OSGi上配置以Forms为中心的工作流,以向用户或受分配人发送电子邮件通知。 执行以下配置以启用电子邮件通知:
- 转到AEM配置管理器,网址为
https://[server]:[port]/system/console/configMgr
. - 打开 Day CQ邮件服务 配置。 指定值 SMTP服务器主机名, SMTP服务器端口, 和 “发件人”地址 字段。 单击 保存。
- 打开 Day CQ链接外部化器 配置。 在 域 字段,为本地、作者和发布实例指定实际主机名/IP地址和端口号。 单击 保存。
- 转到AEM配置管理器,网址为
-
创建工作流暂存。 一个工作流可以有多个阶段。 这些阶段显示在AEM收件箱中并报告工作流的进度。
要定义阶段,请选择 图标要打开工作流模型属性,请打开 暂存 选项卡,为工作流模型添加阶段,然后选择 保存并关闭. 例如,抵押贷款申请,创建阶段:贷款请求、贷款请求状态、要签名的文档、以及签名的贷款文档。
-
拖放 分配任务 步骤浏览器到工作流模型。 使其成为模型的第一步。
分配任务组件将工作流创建的任务分配给用户或组。 在分配任务时,您可以使用组件为该任务指定自适应表单或非交互式PDF。 自适应表单需要接受用户和非交互式PDF的输入,或者只读自适应表单用于仅审阅工作流。
您还可以使用该步骤控制任务的行为。 例如,创建自动记录文档,将任务分配给特定用户或组,提交数据的路径,要预填充的数据路径以及默认操作。 有关分配任务步骤的选项的详细信息,请参阅 OSGi上以Forms为中心的工作流 — 步骤参考 文档。
对于抵押贷款应用程序示例,将分配任务步骤配置为使用只读自适应表单并在任务完成后显示PDF文档。 此外,选择以允许审批贷款请求的用户组。 在 操作 选项卡,禁用 提交 选项。 创建 actionTaked 变量,并将变量指定为 路由变量. 例如,actionTaken。 另外,添加批准路由和拒绝路由。 路由在AEM收件箱中显示为单独的操作(按钮)。 工作流会根据用户点击的操作(按钮)选择分支。
您可以为配置的分配任务步骤的所有字段(例如,抵押应用程序)的完整值集导入示例包(可在部分开头下载)。
-
将OR拆分组件从步骤浏览器拖放到工作流模型中。 OR拆分在工作流中创建拆分,之后只有一个分支处于活动状态。 此步骤允许您将条件处理路径引入工作流。 您可以根据需要向每个分支添加工作流步骤。
您可以使用规则定义、ECMA脚本或外部脚本为分支定义路由表达式。
使用表达式编辑器为Branch 1和Branch 2创建路由选择表达式。 这些路由表达式有助于根据AEM收件箱中的用户操作选择分支。
分支1的路由表达式
用户点击时 批准 在AEM收件箱中,分支1处于激活状态。
分支2的路由表达式
用户点击时 拒绝 在AEM收件箱中,分支2处于激活状态。
有关使用变量创建路由表达式的信息,请参见 AEM Forms工作流中的变量.
-
添加其他工作流步骤以构建业务逻辑。
对于抵押示例,将生成记录文档、两个分配任务步骤和一个签名文档步骤添加到模型的分支1,如下图所示。 一个分配任务步骤是显示和发送 将签署给申请人的贷款文件 另一个分配任务组件是 显示已签署文档. 另外,添加一个任务组件到分支2。 当用户点按AEM收件箱中的拒绝时,它会激活。
对于配置的分配任务步骤、记录文档步骤和签名文档步骤的所有字段的完整值集(例如,抵押应用程序),导入示例包,可在本节开头下载。
工作流模型已准备就绪。 您可以通过各种方法启动工作流。 有关详细信息,请参阅 在OSGi上启动以Forms为中心的工作流.
创建以Forms为中心的工作流应用程序 create-a-forms-centric-workflow-application
应用程序是与工作流关联的自适应表单。 通过收件箱提交应用程序时,它会启动关联的工作流。 要使Forms工作流可用作AEM收件箱和AEM Forms应用程序中的应用程序,请执行以下操作,以创建工作流应用程序:
- 在您的AEM创作实例上,转到 > Forms > 管理工作流应用程序 并点按 创建.
- 在创建工作流应用程序窗口中,为以下字段提供输入,然后点按 创建. 将创建一个新应用程序,该应用程序将在Workflow Applications屏幕中列出。
在OSGi上启动以Forms为中心的工作流 launch
您可以通过以下方式启动或触发以Forms为中心的工作流:
从AEM收件箱提交应用程序 inbox
您创建的工作流应用程序可用作收件箱中的应用程序。 作为workflow-users组成员的用户可以填写并提交触发关联工作流的应用程序。 有关使用AEM收件箱提交应用程序和管理任务的信息,请参阅 在AEM收件箱中管理Forms应用程序和任务.
从AEM Forms应用程序提交应用程序 afa
AEM Forms应用程序与AEM Forms服务器同步,并允许您更改帐户中的表单数据、任务、工作流应用程序和保存的信息(草稿/模板)。 有关更多信息,请参阅 AEM Forms应用程序 及相关文章。
提交自适应表单 af
您可以配置自适应表单的提交操作,以在提交自适应表单时启动工作流。 自适应表单提供 调用AEM工作流 提交操作可在提交自适应表单时启动工作流。 有关提交操作的详细信息,请参阅 配置提交操作. 要通过AEM Forms应用程序提交自适应表单,请在自适应表单属性中启用“与AEM Forms应用程序同步” 。
您可以配置自适应表单,以从AEM Forms应用程序中同步、提交和触发工作流。 有关详细信息,请参阅 使用表单.
使用观察文件夹 watched
管理员(fd-administrators组的成员)可以配置网络文件夹,以便当用户在该文件夹中放置文件(如PDF文件)时运行预配置的工作流。 工作流完成后,它可以将结果文件保存到指定的输出文件夹中。 此类文件夹称为 观察文件夹. 执行以下过程配置watched文件夹以启动工作流:
- 在您的AEM创作实例上,转到 > Forms > 配置Watched文件夹. 将显示已配置的观察文件夹的列表。
- 选择 新建. 此时将显示字段列表。 为以下字段指定一个值,为工作流配置Watched文件夹:
-
选择 高级. 指定以下字段的值,然后点击 创建. Watched文件夹配置为启动工作流。 现在,每当将文件放入Watched文件夹的输入目录中时,都会触发指定的工作流。
table 0-row-2 1-row-2 字段 描述 有效负荷映射器过滤器 创建watched文件夹时,会在crx-repository中创建文件夹结构。 文件夹结构可用作工作流的有效负荷。 您可以编写脚本来映射AEM Workflow,以接受来自观察文件夹结构的输入。 现成的实施可用,并列在有效负荷映射器过滤器中。 如果您没有自定义实施,请选择默认实施。 “高级”选项卡包含更多字段。 这些字段中的大多数都包含默认值。 要了解所有字段,请参见 创建或配置观察文件夹 文章。
提交交互式通信或信件 letter
您可以在提交交互式通信或信件时,在OSGi上关联并执行以Forms为中心的工作流。 在通信管理中,工作流用于交互式通信和信件的后处理。 例如,通过电子邮件发送、打印、传真或归档最终信件。 有关详细步骤,请参阅 交互式通信和信件的后处理.
其他配置 additional-configurations
配置电子邮件服务 configure-email-service
您可以使用AEM Workflows的“分配任务”和“发送电子邮件”步骤发送电子邮件。 执行以下步骤,指定发送电子邮件所需的电子邮件服务器和其他配置:
- 转到AEM配置管理器,网址为
https://[server]:[port]/system/console/configMgr
. - 打开 Day CQ邮件服务 配置。 指定值 SMTP服务器主机名, SMTP服务器端口, 和 “发件人”地址 字段。 单击 保存。
- 打开 Day CQ链接外部化器 配置。 在 域 字段,为本地、作者和发布实例指定实际主机名/IP地址和端口号。 单击 保存。
清除工作流实例 purge-workflow-instances
最大限度地减少工作流实例的数量可以提高工作流引擎的性能,因此您可以定期从存储库中清除已完成或正在运行的工作流实例。 有关详细信息,请参阅 定期清除工作流实例 清除工作流实例。
将敏感数据参数化为工作流变量并存储在外部数据存储中 externalize-wf-variables
从自适应表单提交到的任何数据 Experience Manager 工作流可以包含企业最终用户的PII(个人身份信息)或SPD(敏感个人数据)。 但是,并不强制要将您的数据存储在 Adobe Experience Manager JCR存储库. 通过将信息参数化,您可以将最终用户数据存储外部化到您的托管数据存储(例如Azure blob存储)中 工作流变量.
在 Adobe Experience Manager 在Forms工作流中,通过工作流变量执行一系列工作流步骤来处理和传递数据。 这些变量是存储在工作流实例元数据节点中的命名属性或键值对;例如, /var/workflow/instances/<serverid>/<datebucket>/<uniquenameof model>_<id>/data/metaData
. 这些工作流变量可以外部化到JCR以外的单独存储库,然后由处理 Adobe Experience Manager 工作流。 Adobe Experience Manager 提供API UserMetaDataPersistenceProvider
将工作流变量存储在托管外部存储中。 详细了解在中将工作流变量用于客户拥有的数据存储 Adobe Experience Manager,请参见 管理外部数据存储的工作流变量.
Adobe 提供了以下内容 示例 使用API将变量从工作流元数据映射到Azure blob存储 UserMetaDataPersistenceProvider. 在类似的行中,您可以使用示例作为使用指南 [UserMetaDataPersistenceProvider] 用于将任何其他数据存储中的工作流变量外部化的API Adobe Experience Manager 并管理相同的流程。
安装工作流API示例实施
要在托管的Azure Blob存储中存储工作流变量,请执行以下操作:
-
安装 示例 工作流API UserMetaDataPersistenceProvider 如下所示:
-
在项目的根目录中运行
mvn clean install
Maven 3命令。 -
要将包和内容包部署到创作,请运行
mvn clean install -PautoInstallPackage
. -
要仅将捆绑包部署到作者,请运行
mvn clean install -PautoInstallBundle
.
-
-
初始化外部化器OSGi配置文件中的以下属性
ui.config
内容包:code language-jql accountKey="" accountName="" endpointSuffix="" containerName="" protocol=""
以下是这些属性的用途(和示例):
-
帐户密钥 是授权访问的密钥。
-
帐户名称 是必须存储数据的azure帐户。
-
端点后缀 例如,
core.windows.net
. -
containername 是帐户中需要存储数据的容器。 此示例假定容器存在。
-
协议 例如,
https
或http
.
- 在中配置工作流模型 Adobe Experience Manager. 要了解如何为外部存储配置工作流模型,请参阅 配置工作流模型.
在中配置工作流模型 Adobe Experience Manager 用于外部数据存储 configure-aem-wf-model
要为外部数据存储配置AEM Workflow模型:
-
导航到 工具 > 工作流 > 模型.
-
选择模型名称并选择 编辑.
-
选择页面信息图标并选择 打开属性.
-
选择 将工作流数据存储外部化.
-
选择 保存并关闭 以保存属性。
外部数据存储的AEM工作流准则 guidelines-workflows-external-data-storage
以下是使用时的准则 Adobe Experience Manager 工作流并将数据存储到外部数据存储(例如,Microsoft Azure Storage Server):
-
在工作流模型步骤中定义输入和输出数据文件及附件时,使用变量来存储数据。 不选择 相对于有效负荷 和 在绝对路径上可用 选项。 此 相对于有效负荷 和 在绝对路径上可用 选项不会自动显示一次 配置 Adobe Experience Manager 用于外部数据存储的工作流模型.
-
向AEM Workflow提交自适应表单时,使用变量存储数据文件和附件。 不选择 相对于有效负荷 选项在将自适应表单提交到 Adobe Experience Manager 工作流。 此 相对于有效负荷 选项不会自动显示一次 配置 Adobe Experience Manager 用于外部数据存储的工作流模型.
-
不使用自定义 Adobe Experience Manager 工作流模型中用于将数据存储到的工作流步骤 CRX DE 存储库。
-
当您 配置 Adobe Experience Manager 用于外部数据存储的工作流模型,不创建自定义列 Adobe Experience Manager 收件箱 因为如果工作项位于页面上,则不会获取自定义列的 Adobe Experience Manager 收件箱 属于标记为外部存储的工作流。