在AEM Forms工作流程中使用LDAP

将AEM Forms工作流任务分配给提交者的管理器。

在AEM Workflow中使用自适应表单时,您需要将任务动态分配给表单提交者的管理器。 要完成此用例,我们必须使用Ldap配置AEM。

有关使用LDAP配置AEM所需步骤的说明,请参见 详情请见此处。

出于本文的目的,我将附加使用AdobeLDAP配置AEM时使用的配置文件。 这些文件包含在包中,可使用包管理器导入这些文件。

在下面的屏幕截图中,我们将获取属于特定成本中心的所有用户。 如果要获取LDAP中的所有用户,则不能使用额外的过滤器。

LDAP配置

在下面的屏幕截图中,我们将组分配给从LDAP获取到AEM中的用户。 请注意分配给导入用户的表单 — 用户组。 用户必须是此组的成员才能与AEM Forms交互。 我们还将manager属性存储在AEM中的profile/manager节点下。

Synchandler

配置LDAP并将用户导入AEM后,我们可以创建工作流以将任务分配给提交者的管理器。 为此,我们开发了一个简单的一步式审批工作流。

工作流中的第一个步骤将initialstep的值设置为“否”。 自适应表单中的业务规则将禁用“提交者详细信息”面板,并根据初始步骤值显示“批准者”面板。

第二步将任务分配给提交者的管理器。 我们使用自定义代码获取提交者的经理。

分配任务

public String getParticipant(WorkItem workItem, WorkflowSession wfSession, MetaDataMap arg2) throws WorkflowException{
resourceResolver = wfSession.adaptTo(ResourceResolver.class);
UserManager userManager = resourceResolver.adaptTo(UserManager.class);
Authorizable workflowInitiator = userManager.getAuthorizable(workItem.getWorkflow().getInitiator());
.
.
String managerPorperty = workflowInitiator.getProperty("profile/manager")[0].getString();
.
.

}

代码片段负责获取管理器id并将任务分配给管理器。

我们掌握启动工作流程的人员。 然后,我们获取manager属性的值。

根据Manager属性在LDAP中的存储方式,您可能需要执行一些字符串操作才能获取Manager ID。

请阅读本文以实施您自己的 参与者选择器。

在您的系统上对此进行测试(对于Adobe员工,您可以开箱即用此示例)

NOTE
此用于提取管理器名称的自定义代码已针对AdobeLDAP进行了测试。 如果您要针对其他LDAP执行此代码,则必须修改或编写自己的getParticipant实施才能获取经理的名称。
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e