在AEM Forms工作區中整合協力廠商應用程式

AEM Forms工作區支援管理表單和檔案的任務指派和完成活動。 這些表單和檔案可以是XDP Forms、Flex®表單,或已以XDP、PDF、HTML或Flex格式轉譯的指南(已淘汰)。

這些功能已進一步增強。 AEM Forms現在支援與支援類似AEM Forms工作區功能的協力廠商應用程式共同作業。 此功能的一個常見部分是任務分配和後續批准的工作流。 AEM Forms為AEM Forms企業使用者提供單一統一體驗,讓受支援應用程式的所有這類任務指派或核准都能透過AEM Forms工作區處理。

例如,我們將通信管理視為與AEM Forms工作區整合的候選範例。 通信管理的概念是「信函」,可轉譯並允許動作。

建立通信管理資產

首先,建立在AEM Forms工作區中轉譯的範例通信管理範本。 如需詳細資訊,請參閱 建立信函範本.

在其URL存取通信管理範本,以驗證通信管理範本是否可成功轉譯。 URL的模式類似於 https://'[server]:[port]'/lc/content/cm/createcorrespondence.html?cmLetterId=encodedLetterId&cmUseTestData=1&cmPreview=0;

where encodedLetterId 是URL編碼的字母Id。 在Workbench中定義工作區任務的演算程式時,請指定相同的信函ID。

建立要在AEM Workspace中轉譯及提交信函的工作

執行這些步驟之前,請確定您是下列群組的成員:

  • cm-agent-users
  • 工作區使用者

如需詳細資訊,請參閱 新增和設定使用者.

使用下列步驟建立要在AEM Workspace中轉譯及提交信函的任務:

  1. 啟動Workbench。 以管理員身分登入localhost 。

  2. 按一下「檔案」>「新建」>「應用程式」。 在「應用程式名稱」欄位中,輸入 CMDemoSample 然後按一下「完成」。

  3. 選擇 CMDemoSample/1.0 並按一下滑鼠右鍵 NewProcess. 在名稱欄位中,輸入 CMRenderer 然後按一下「完成」。

  4. 拖曳Start Point活動選擇器並加以設定:

    1. 在簡報資料中,選取使用CRX資產。

      useacrxasset

    2. 瀏覽資產。 在「選擇表單資產」對話框中,「信函」頁簽列出伺服器上的所有信函。

      字母標籤

    3. 選取適當的信函,然後按一下 確定.

  5. 按一下管理動作設定檔。 此時將顯示管理操作配置檔案對話框。 確保正確選擇「渲染流程」和「提交流程」。

  6. 要使用資料XML檔案開啟信函,請瀏覽並在準備資料處理中選擇適當的資料檔案。

  7. 按一下「確定」。

  8. 定義起始點輸出和任務附件的變數。 定義的變數將包含起始點輸出和任務附件資料。

  9. (可選)若要在工作流程中新增其他使用者,請拖曳活動選擇器、進行設定,然後指派給使用者。 撰寫自訂包裝函式(如下所示)或下載並安裝DSC(如下所示)以擷取信函範本、起始點輸出和工作附件。

    自訂包裝函式範例如下:

    public LetterInstanceInfo getLetterInstanceInfo(Document dataXML) throws Exception {
    try {
    if(dataXML == null)
    throw new Exception("dataXML is missing");
    
    CoreService coreService = getRemoteCoreService();
    if (coreService == null)
    throw new Exception("Unable to retrive service. Please verify connection details.");
    Map<String, Object> result = coreService.getLetterInstanceInfo(IOUtils.toString(dataXML.getInputStream(), "UTF-8"));
    LetterInstanceInfo letterInstanceInfo = new LetterInstanceInfo();
    
    List<Document> attachmentDocs = new ArrayList<Document>();
    List<byte[]> attachments = (List<byte[]>)result.get(CoreService.ATTACHMENT_KEY);
    if (attachments != null){
    for (byte[] attachment : attachments)
    { attachmentDocs.add(new Document(attachment)); }
    
    }
    letterInstanceInfo.setLetterAttachments(attachmentDocs);
    
    byte[] updateLayout = (byte[])result.get(CoreService.LAYOUT_TEMPLATE_KEY);
    if (updateLayout != null)
    { letterInstanceInfo.setLetterTemplate(new Document(updateLayout)); }
    
    else
    { throw new Exception("template bytes missing while getting Letter instance Info."); }
    
    return letterInstanceInfo;
    } catch (Exception e)
    { throw new Exception(e); }
    
    }
    

    取得檔案
    下載DSC:上方附加的DSCSample.zip檔案提供範例DSC。 下載並解壓縮DSCSample.zip檔案。 使用DSC服務前,您需先加以設定。 如需詳細資訊,請參閱 配置DSC服務.

    在「定義活動」對話方塊中,選取適當的活動,例如getLetterInstanceInfo,然後按一下 確定.

  10. 部署應用程式。 如果系統提示簽入並儲存資產。

  11. 前往https://'登入AEM Forms工作區[伺服器]:[埠]「/lc/content/ws」。

  12. 開啟您添加的任務,CMRenderer。 通信管理信函隨即出現。

    cminworkspace

  13. 填寫所需資料並提交信函。 窗口關閉。 在此過程中,任務將分配給步驟9中在工作流中指定的用戶。

    注意

    填入信函中所有必要的變數後,「提交」按鈕才會啟用。

本頁內容