Correspondence Management の「通信を作成」UI を使用して、作成中のレターインスタンスのドラフトを保存することができます。また、この UI には送信済みのレターインスタンスが存在します。
Correspondence Management には、送信済みまたはドラフトのレターインスタンスを取り扱うための一覧表示インターフェイスを構築できる API が用意されています。この API は、エージェントの送信済みとドラフトのレターインスタンスを一覧表示して開きます。これにより、エージェントはドラフトまたは送信済みのレターインスタンスで作業を続行することができます。
Correspondence Management は API を使用して、LetterInstanceService サービスからレターインスタンスを取得します。
メソッド | 説明 |
---|---|
getAllLetterInstances | 入力クエリパラメーターに基づいてレターインスタンスを取得します。すべてのレターインスタンスを取得するには、クエリパラメーターをヌルとして渡します。 |
getLetterInstance | レターインスタンス ID に基づいて指定したレターインスタンスを取得します。 |
letterInstanceExists | LetterInstance が指定した名前で存在するかどうかをチェックします。 |
LetterInstanceService は OSGI サービスであり、そのインスタンスは Java クラスの @Reference を使用して、
または JSP の sling.getService(LetterInstanceService.クラス)を使用して取得できます。
下記の API は、クエリオブジェクトに基づいてレターインスタンスを検索します(送信済みとドラフトの両方)。クエリオブジェクトが null の場合、すべてのレターインスタンスを返します。この API は LetterInstanceVO オブジェクトの一覧を返します。この一覧は、レターインスタンスの追加情報の抽出に使用することができます。
構文: List getAllLetterInstances(Query query) throws ICCException;
パラメーター | 説明 |
query | query パラメーターは、レターインスタンスの検索またはフィルタリングに使用されます。ここで、クエリはオブジェクトの最上位の属性またはプロパティのみサポートします。クエリは、ステートメントで構成されます。ステートメントのオブジェクトで使用される「attributeName」は、レターインスタンスオブジェクト内のプロパティの名前です。 |
以下のコードで送信済みのレターインスタンスの一覧が返されます。ドラフトのみを取得するには、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);
以下のコードでは、同一のクエリに複数のステートメントが含まれ、特定のユーザーが送信したレターインスタンス(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);
特定のレターインスタンス 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 );
レターインスタンスが指定した名前で存在するかどうかを確認します。
構文: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
パラメーター | 説明 |
---|---|
letterInstanceName | 有無を確認するレターインスタンスの名前。 |
@Reference
LetterInstanceService letterInstanceService;
String letterInstanceName = "sampleLetterInstance";
Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
レターインスタンスには、送信済みタイプまたはドラフトタイプがあります。両タイプのレターインスタンスを開くと、それぞれ異なる動作を示します。
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]