在AEM Forms工作流中设置JSON数据元素的值

在AEM工作流中将自适应表单路由到不同的用户时,将要求根据审核表单的人员来隐藏或禁用某些字段或面板。 为了满足这些用例,我们通常会设置一个隐藏字段值。 可以根据此隐藏字段的值业务规则进行创作,以隐藏/禁用相应的面板或字段。

在json数据中设置元素的值

在AEM Forms OSGi中 — 我们必须编写自定义OSGi包才能设置JSON数据元素的值。 此包将作为本教程的一部分提供。

我们使用AEM工作流中的流程步骤。 我们将“在Json中设置元素值”OSGi包与此流程步骤相关联。

我们需要将两个参数传递到设置值包。 第一个参数是需要设置其值的元素的路径。 第二个参数是需要设置的值。

例如,在上面的屏幕截图中,我们将intialStep元素的值设置为“N”

afData.afUnboundData.data.initialStep,N

在本例中,我们有一个简单的结束请求表单。 此表单的发起者填写其姓名和结束日期。 提交后,此表单将转至“经理”进行审核。 管理器打开表单时,第一个面板上的字段会被禁用。 这是因为我们已将JSON数据中初始步骤元素的值设置为N。

根据初始步骤字段值,我们会显示“审批者”面板,“经理”可在该面板中批准或拒绝请求。

请查看针对“初始步骤”设置的规则。 根据initialStep字段的值,我们使用表单数据模型获取用户详细信息,并填充相应的字段并隐藏/禁用相应的面板。

要在本地系统上部署资产,请执行以下操作:

  • 下载和部署DevelopingWithServiceUserBundle

  • 下载并部署setvalue包。这是自定义OSGI包,允许您在提交的json数据中设置元素的值。

  • 下载并解压缩zip文件的内容

    • 将浏览器指向包管理器
      • 导入并安装SetValueOfElementInJSONDataWorkflow.zip。此包具有与表单关联的示例工作流模型和表单数据模型。
  • 将您的浏览器指向Forms和Documents

  • 单击创建 |文件上传

  • 上传TimeOffRequestForm.zip文件
    此表单是使用AEM Forms 6.4构建的。请确保您使用的是AEM Forms 6.4或更高版本

  • 打开form

  • 填写开始和结束日期并提交表单。

  • 转到"Inbox"

  • 打开与任务关联的表单。

  • 请注意,第一个面板中的字段处于禁用状态。

  • 请注意,现在显示了批准或拒绝请求的面板。

注意

由于我们使用用户配置文件预填充自适应表单,因此请确保管理员用户配置文件信息。 请至少确保已设置FirstName、LastName和Email字段值。
您可以通过启用com.aemforms.setvalue.core.SetValueInJson 的日志记录器来启用调试日志记录,此处为

注意

当前,用于设置JSON数据中数据元素值的OSGi包支持一次设置一个元素值的功能。 如果要设置多个元素值,则需要多次使用流程步骤。

确保将自适应表单提交选项中的数据文件路径设置为“Data.xml”。 这是因为流程步骤中的代码在有效负荷文件夹下查找名为Data.xml的文件。

在此页面上