搭配AEM Forms工作流程使用LDAP

指派AEM Forms工作流程任務給提交者的管理員。

在AEM工作流程中使用最適化表單時,您會想要動態地將任務指派給表單提交者的管理員。 為了完成此使用案例,我們必須使用Ldap設定AEM。

使用LDAP設定AEM所需的步驟在此處詳細說明。

出於本文的目的,我附加了使用Adobe Ldap設定AEM時使用的設定檔案。 這些檔案包含在封裝中,可使用封裝管理員匯入這些檔案。

在下方熒幕擷圖中,我們擷取屬於特定成本中心的所有使用者。 如果您想要擷取LDAP中的所有使用者,則不可使用額外的篩選器。

LDAP組態

在下方熒幕擷圖中,我們將群組指派給從LDAP擷取到AEM的使用者。 請注意指派給匯入使用者的表單 — 使用者群組。 使用者必須是此群組的成員,才能與AEM Forms互動。 我們也會將管理員屬性儲存在AEM中的設定檔/管理員節點下。

同步處理程式

設定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,並將工作指派給管理員。

我們掌握啟動工作流程的人員。 然後我們取得管理員屬性的值。

視管理員屬性儲存在LDAP中的方式而定,您可能需要進行一些字串操作才能取得管理員ID。

請參閱本文章以實作您自己的ParticipantChooser 。

在您的系統上測試此專案(對於Adobe員工,您可以立即使用此範例)

NOTE
這個用於擷取管理員名稱的自訂程式碼已針對AdobeLDAP進行測試。 如果您要針對不同的LDAP執行此程式碼,您必須修改或撰寫您自己的getParticipant實作,才能取得管理員名稱。
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e