在AEM Forms工作區中整合第三方應用程式 integrating-third-party-applications-in-aem-forms-workspace

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

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

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

建立通訊管理資產 create-correspondence-management-assets

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

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

其中encodedLetterId是URL編碼的字母識別碼。 在Workbench中定義工作區工作的轉譯流程時,請指定相同的字母ID。

建立任務以在AEM Workspace中呈現和提交信件 create-a-task-to-render-and-submit-a-letter-in-aem-workspace

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

  • cm-agent-users
  • Workspace使用者

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

使用以下步驟來建立任務,以在AEM Workspace中呈現和提交信件:

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

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

  3. 選取CMDemoSample/1.0並按一下右鍵NewProcess。 在名稱欄位中輸入CMRenderer,然後按一下[完成]。

  4. 拖曳「起點」活動選擇器並加以設定:

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

      useacrxasset

    2. 瀏覽資產。 在「選取表單資產」對話方塊中,「字母」索引標籤會列出伺服器上的所有字母。

      字母標籤

    3. 選取適當的字母,然後按一下​ 確定

  5. 按一下管理動作設定檔。 管理動作設定檔對話方塊就會顯示。 請確定已正確選取轉譯程式和提交程式。

  6. 若要使用資料XML檔案開啟信件,請在「準備資料程式」中瀏覽並選取適當的資料檔案。

  7. 按一下「確定」。

  8. 定義起始點輸出和工作附件的變數。 定義的變數包含「起始點輸出」和「工作附件」資料。

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

    自訂包裝函式的範例如下:

    code language-javascript
    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://'[伺服器]:[連線埠]'/lc/content/ws登入AEM表單工作區。

  12. 開啟您已新增的工作CMRenderer。 「通訊管理」信函即會出現。

    cminworkspace

  13. 填寫所需資料並提交信件。 視窗會關閉。 在此程式中,任務會指派給步驟9中工作流程中所指定的使用者。

    note note
    NOTE
    填妥信函中的所有必要變數後,才會啟用提交按鈕。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2