訪問字母實例的API

概覽

使用「通信管理」的「建立通信」UI,您可以在進行中保存信件實例的草稿,並且有提交的信件實例。

Commense Management提供API,您可使用這些API建立清單介面,以處理已提交的信函例項或草稿。 API列出並開啟座席的已提交和草稿字母實例,以便座席可以繼續處理草稿或已提交的字母實例。

正在讀取字母實例

Correponse Management會使API透過LetterInstanceService服務擷取字母例項。

方法 說明
getAllLetterInstances 根據輸入查詢參數讀取字母實例。 若要擷取所有字母例項,請將查詢參數傳遞為null。
getLetterInstance 根據字母實例Id讀取指定的字母實例。
letterInstanceExists 檢查給定名稱是否存在LetterInstance。
注意

LetterInstanceService是OSGI服務,其實例可在Java中使用@Reference來擷取
Class或sling.getService(LetterInstanceService)。 類)。

使用getAllLetterInstances

下列API會根據查詢物件(已提交和草稿)來尋找字母例項。 如果查詢對象為空,則返回所有字母實例。 此API返回LetterInstanceVO對象的清單,該清單可用於提取字母實例的其他資訊

語法: List getAllLetterInstances(Query query) throws ICCException;

參數 說明
查詢 查詢參數用於查找/篩選Letter實例。 此處查詢僅支援對象的頂級屬性/屬性。 Query由語句組成,Statement對象中使用的"attributeName"應為Letter實例對象中屬性的名稱。

範例1:獲取所有類型為SUBMITTED的字母實例

下列程式碼會傳回已提交字母例項的清單。 若要只取得草稿,請將LetterInstanceType.COMPLETE.name()變更為LetterInstanceType.DRAFT.name().

@Reference
LetterInstanceService letterInstanceService;
Query query = new Query();

List<LetterInstanceVO> submittedLetterInstances = new ArrayList<LetterInstanceVO>();

Statement statementForInstanceType = new Statement();
statementForInstanceType.setAttributeName("letterInstanceType");
statementForInstanceType.setOperator(Operator.EQUALS);
statementForInstanceType.setAttributeValue(LetterInstanceType.COMPLETE.name());
query.addStatement(statementForInstanceType);
submittedLetterInstances = letterInstanceService.getAllLetterInstances(query);

範例2:擷取使用者提交的所有字母例項,字母例項類型為DRAFT

以下代碼在同一查詢中包含多個語句,以便根據用戶提交的字母實例(屬性提交者)等不同標準來過濾結果,並且letterInstanceType的類型為DRAFT。

@Reference
LetterInstanceService letterInstanceService;

String submittedBy = "tglodman";
Query query = new Query();

List<LetterInstanceVO> submittedLetterInstances = new ArrayList<LetterInstanceVO>();

Statement statementForInstanceType = new Statement();
statementForInstanceType.setAttributeName("letterInstanceType");
statementForInstanceType.setOperator(Operator.EQUALS);
statementForInstanceType.setAttributeValue(LetterInstanceType.COMPLETE.name());
query.addStatement(statementForInstanceType);

Statement statementForSubmittedBy = new Statement();
statementForSubmittedBy .setAttributeName("submittedby");
statementForSubmittedBy .setOperator(Operator.EQUALS);
statementForSubmittedBy .setAttributeValue(submittedBy);
query.addStatement(statementForSubmittedBy );
submittedLetterInstances = letterInstanceService.getAllLetterInstances(query);

使用getLetterInstance

提取由給定字母實例id標識的字母實例。 如果實例ID不匹配,則返回''。

語法: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;

@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );

驗證LetterInstance是否存在

檢查給定名稱是否存在字母實例

語法: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;

參數 說明
letterInstanceName 要檢查的字母實例的名稱是否存在。
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );

開啟字母實例

Letter Instance可以是「已提交」或「草稿」類型。 開啟兩個字母實例類型會顯示不同的行為:

  • 如果是「已提交的字母實例」,則會開啟表示字母實例的PDF。 保存在伺服器上的已提交信件例項也包含dataXML和已處理的XDP,可用來完成並進一步自訂使用案例,例如建立PDF/A。
  • 如果是「草稿」字母實例,建立對應UI會重新載入至先前的狀態,就像建立草稿時一樣

開啟草稿字母實例 

CCR UI支援cmLetterInstanceId參數,該參數可用於重新載入字母。

https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]

注意

重裝通信時,您不必指定cmLetterId或cmLetterName/State/Version,因為提交的資料已經包含重新載入的通信的所有詳細資訊。 RandomNo用於避免瀏覽器快取問題,您可以使用時間戳記作為隨機數。

正在開啟已提交的字母實例

已提交的PDF可使用字母執行個體Id直接開啟:

https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now