使用「通信管理」的「建立通信」UI,您可以在進行中保存信件實例的草稿,並且有提交的信件實例。
Commense Management提供API,您可使用這些API建立清單介面,以處理已提交的信函例項或草稿。 API列出並開啟座席的已提交和草稿字母實例,以便座席可以繼續處理草稿或已提交的字母實例。
Correponse Management會使API透過LetterInstanceService服務擷取字母例項。
方法 | 說明 |
---|---|
getAllLetterInstances | 根據輸入查詢參數讀取字母實例。 若要擷取所有字母例項,請將查詢參數傳遞為null。 |
getLetterInstance | 根據字母實例Id讀取指定的字母實例。 |
letterInstanceExists | 檢查給定名稱是否存在LetterInstance。 |
LetterInstanceService是OSGI服務,其實例可在Java中使用@Reference來擷取
Class或sling.getService(LetterInstanceService)。 類)。
下列API會根據查詢物件(已提交和草稿)來尋找字母例項。 如果查詢對象為空,則返回所有字母實例。 此API返回LetterInstanceVO對象的清單,該清單可用於提取字母實例的其他資訊
語法: List getAllLetterInstances(Query query) throws ICCException;
參數 | 說明 |
查詢 | 查詢參數用於查找/篩選Letter實例。 此處查詢僅支援對象的頂級屬性/屬性。 Query由語句組成,Statement對象中使用的"attributeName"應為Letter實例對象中屬性的名稱。 |
下列程式碼會傳回已提交字母例項的清單。 若要只取得草稿,請將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);
以下代碼在同一查詢中包含多個語句,以便根據用戶提交的字母實例(屬性提交者)等不同標準來過濾結果,並且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);
提取由給定字母實例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 );
檢查給定名稱是否存在字母實例
語法: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
參數 | 說明 |
---|---|
letterInstanceName | 要檢查的字母實例的名稱是否存在。 |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
Letter Instance可以是「已提交」或「草稿」類型。 開啟兩個字母實例類型會顯示不同的行為:
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]