レターインスタンスにアクセスするための API apis-to-access-letter-instances
概要 overview
Correspondence Management の Correspondence Create の UI を使用して、進行中のレターインスタンスのドラフトを保存し、送信済みのレターインスタンスを保存できます。
Correspondence Management には、送信済みのレターインスタンスやドラフトを操作するためのリストインターフェイスを構築できる API が用意されています。 この API は、エージェントの送信済みとドラフトのレターインスタンスを一覧表示して開きます。これにより、エージェントはドラフトまたは送信済みのレターインスタンスで作業を続行することができます。
レターインスタンスを取得中 fetching-letter-instances
Correspondence Management は、LetterInstanceService サービスを通じてレターインスタンスを取得する API を公開します。
または JSP の sling.getService(LetterInstanceService.クラス)を使用して取得できます。
getAllLetterInstances の使用 using-nbsp-getallletterinstances
下記の API は、クエリオブジェクトに基づいてレターインスタンスを検索します(送信済みとドラフトの両方)。クエリオブジェクトが null の場合、すべてのレターインスタンスを返します。この API は LetterInstanceVO オブジェクトの一覧を返します。この一覧は、レターインスタンスの追加情報の抽出に使用することができます。
構文: List getAllLetterInstances(Query query) throws ICCException;
例 1:送信済みタイプのすべてのレターインスタンスを取得 example-fetch-all-the-letter-instances-of-type-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:特定のユーザーによって送信されたドラフトタイプのすべてのレターインスタンスを取得する example-nbsp-fetch-all-the-letter-instances-submitted-by-a-user-and-letter-instance-type-is-draft
以下のコードでは、同一のクエリに複数のステートメントが含まれ、特定のユーザーが送信したレターインスタンス(submittedby 属性)や letterInstanceType がドラフトであるなど、異なる条件に基づいて結果がフィルタリングされます。
@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]