在AEM Forms工作流程中使用LDAP
将AEM Forms工作流任务分配给提交者的管理器。
在AEM Workflow中使用自适应表单时,您需要将任务动态分配给表单提交者的管理器。 要完成此用例,我们必须使用Ldap配置AEM。
有关使用LDAP配置AEM所需步骤的说明,请参见 详情请见此处。
出于本文的目的,我将附加使用AdobeLDAP配置AEM时使用的配置文件。 这些文件包含在包中,可使用包管理器导入这些文件。
在下面的屏幕截图中,我们将获取属于特定成本中心的所有用户。 如果要获取LDAP中的所有用户,则不能使用额外的过滤器。
在下面的屏幕截图中,我们将组分配给从LDAP获取到AEM中的用户。 请注意分配给导入用户的表单 — 用户组。 用户必须是此组的成员才能与AEM Forms交互。 我们还将manager属性存储在AEM中的profile/manager节点下。
配置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员工,您可以开箱即用此示例)
- 下载并部署setvalue捆绑包. 这是用于设置管理器的属性的自定义OSGI捆绑包。
- 下载并安装DevelopingWithServiceUserBundle
- 使用包管理器将与本文关联的资源导入AEM.作为此包的一部分,包括LDAP配置文件、工作流和自适应表单。
- 使用适当的LDAP凭据在LDAP中配置AEM。
- 使用您的LDAP凭据登录AEM。
- 打开 timeoffrequestform
- 填写表单并提交。
- 提交者的经理应获取表单以供审阅。