存取信函例項的API apis-to-access-letter-instances
概觀 overview
使用Correspondence Management的「建立通信UI」,您可以在進行中儲存信函例項的草稿,且會提交信函例項。
Correspondence Management提供您API,您可使用此API建立清單介面,以處理已提交的信函例項或草稿。 API清單和已開啟的已提交和已提交代理的信函實例草稿,以便代理可以繼續處理已提交或已提交的信函實例。
擷取信函例項 fetching-letter-instances
通信管理會公開API,以透過LetterInstanceService服務擷取信函例項。
類別或sling.getService(LetterInstanceService)。 類)。
使用getAllLetterInstances using-nbsp-getallletterinstances
下列API會根據查詢物件(已提交和草稿)來尋找信函例項。 如果查詢對象為null,則返回所有字母實例。 此API會傳回 LetterInstanceVO 對象,可用於提取字母實例的附加資訊
語法: List getAllLetterInstances(Query query) throws ICCException;
範例1:擷取SUBMITTED類型的所有信函例項 example-fetch-all-the-letter-instances-of-type-submitted
下列程式碼會傳回已提交信函例項清單。 若要僅取得草稿,請變更 LetterInstanceType.COMPLETE.name()
to 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 example-nbsp-fetch-all-the-letter-instances-submitted-by-a-user-and-letter-instance-type-is-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 using-nbsp-getletterinstance
擷取由指定信函例項id所識別的信函例項。 如果執行個體ID不相符,則會傳回「null」。
語法: public LetterInstanceVO getLetterInstance(String letterInstanceId) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
驗證LetterInstance是否存在 verifying-if-letterinstance-exist
檢查字母實例是否按給定名稱存在
語法: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
開頭字母實例 opening-letter-instances
「信函例項」可為「已提交」或「草稿」類型。 開啟兩個信函例項類型會顯示不同行為:
- 在已提交信函例項中,會開啟代表信函例項的PDF。 保存在伺服器上的已提交信函例項也包含dataXML和已處理的XDP,可用來完成及進一步自訂使用案例,例如建立PDF/A。
- 若為草稿信函例項,建立通信UI會重新載入至與建立草稿期間完全相同的先前狀態
開啟信函草稿例項 opening-draft-letter-instance-nbsp
CCR UI支援cmLetterInstanceId參數,該參數可用於重新載入信函。
https://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
開啟提交的信函實例 opening-submitted-letter-instance
已提交的PDF可使用信函例項Id直接開啟:
https://[hostName]:[portNo]/[contextPath]/[letterInstanceId]