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工作流和JEE上的流程管理的比较。 此外,有关部署拓扑,请参阅AEM Forms的架构和部署拓扑。
OSGi上以Forms为中心的工作流扩展了AEM收件箱,并为AEM Workflow编辑器提供了额外的组件(步骤),以添加对以AEM Forms为中心的工作流的支持。 扩展的AEM收件箱具有类似于AEM Forms Workspace的功能。 除了管理以人为中心的工作流(审批、审核等)之外,您还可以使用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为中心的工作流,以向用户或受分配人发送电子邮件通知。 执行以下配置以启用电子邮件通知:
- 前往
https://[server]:[port]/system/console/configMgr
处的AEM配置管理器。 - 打开 天CQ邮件服务 配置。 指定 SMTP服务器主机名、SMTP服务器端口、 和 “发件人”地址 字段的值。 单击 保存。
- 打开 Day CQ Link Externalizer 配置。 在 域 字段中,为本地、作者和发布实例指定实际的主机名/IP地址和端口号。 单击 保存。
- 前往
-
创建工作流暂存。 一个工作流可以有多个阶段。 这些阶段显示在AEM收件箱中并报告工作流的进度。
要定义阶段,请选择 图标以打开工作流模型属性,打开 阶段 选项卡,为工作流模型添加阶段,然后选择 保存并关闭。 例如,抵押贷款申请,创建阶段:贷款请求、贷款请求状态、要签名的文档、以及签名的贷款文档。
-
将 分配任务 步骤浏览器拖放到工作流模型中。 使其成为模型的第一步。
分配任务组件将工作流创建的任务分配给用户或组。 在分配任务时,您可以使用组件为该任务指定自适应表单或非交互式PDF。 自适应表单需要接受用户和非交互式PDF的输入,或者只读自适应表单用于仅审阅工作流。
您还可以使用该步骤控制任务的行为。 例如,创建自动记录文档,将任务分配给特定用户或组,提交数据的路径,要预填充的数据路径以及默认操作。 有关分配任务步骤选项的详细信息,请参阅OSGi上的以Forms为中心的工作流 — 步骤参考文档。
对于抵押贷款应用程序示例,将分配任务步骤配置为使用只读自适应表单并在任务完成后显示PDF文档。 此外,选择以允许审批贷款请求的用户组。 在 操作 选项卡上,禁用 提交 选项。 创建String数据类型的 actionTaken 变量,并将该变量指定为 路由变量。 例如,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 > 管理工作流应用程序,并点按 Create。
- 在“创建工作流应用程序”窗口中,为以下字段提供输入,并点按 创建。 将创建一个新应用程序,该应用程序将在Workflow Applications屏幕中列出。
在OSGi上启动以Forms为中心的工作流 launch
您可以通过以下方式启动或触发以Forms为中心的工作流:
从AEM收件箱提交应用程序 inbox
您创建的工作流应用程序可用作收件箱中的应用程序。 作为workflow-users组成员的用户可以填写并提交触发关联工作流的应用程序。 有关使用AEM收件箱提交应用程序和管理任务的信息,请参阅在AEM收件箱中管理Forms应用程序和任务。
从AEM Forms应用程序提交应用程序 afa
AEM Forms应用程序与AEM Forms服务器同步,并允许您更改帐户中的表单数据、任务、工作流应用程序和保存的信息(草稿/模板)。 有关详细信息,请参阅AEM Forms应用程序和相关文章。
提交自适应表单 af
您可以配置自适应表单的提交操作,以在提交自适应表单时启动工作流。 自适应表单提供 调用AEM Workflow 提交操作以在提交自适应表单时启动工作流。 有关提交操作的详细信息,请参阅配置提交操作。 要通过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为中心的工作流。 在通信管理中,工作流用于交互式通信和信件的后处理。 例如,通过电子邮件发送、打印、传真或归档最终信件。 有关详细步骤,请参阅Post对交互式通信和字母的处理。
其他配置 additional-configurations
配置电子邮件服务 configure-email-service
您可以使用AEM Workflows的“分配任务”和“发送电子邮件”步骤发送电子邮件。 执行以下步骤,指定发送电子邮件所需的电子邮件服务器和其他配置:
- 前往
https://[server]:[port]/system/console/configMgr
处的AEM配置管理器。 - 打开 天CQ邮件服务 配置。 指定 SMTP服务器主机名、SMTP服务器端口、 和 “发件人”地址 字段的值。 单击 保存。
- 打开 Day CQ Link Externalizer 配置。 在 域 字段中,为本地、作者和发布实例指定实际的主机名/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 UserMetaDataPersistenceProvider将变量从工作流元数据映射存储到Azure blob存储。 在类似的行中,您可以使用该示例作为指导,使用[UserMetaDataPersistenceProvider] API将Adobe Experience Manager外部的任何其他数据存储中的工作流变量外部化并管理这些变量。
安装工作流API示例实施
要在托管的Azure Blob存储中存储工作流变量,请执行以下操作:
-
按如下方式安装sample工作流API UserMetaDataPersistenceProvider:
-
使用Maven 3在项目根目录中运行
mvn clean install
命令。 -
要将包和内容包部署到创作,请运行
mvn clean install -PautoInstallPackage
。 -
要仅将捆绑包部署到作者,请运行
mvn clean install -PautoInstallBundle
。
-
-
在
ui.config
内容包中的外部化器OSGi配置文件中初始化以下属性:code language-jql accountKey="" accountName="" endpointSuffix="" containerName="" protocol=""
以下是这些属性的用途(和示例):
-
accountKey 是授权访问的密钥。
-
accountName 是必须存储数据的azure帐户。
-
endpointSuffix,例如
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 收件箱中的工作项属于标记为外部存储的工作流,则不会获取自定义列的值。