Correspondence Management の「通信を作成」UI を使用して、作成中のレターインスタンスのドラフトを保存することができます。また、この UI には送信済みのレターインスタンスが存在します。
Correspondence Management には、送信済みまたはドラフトのレターインスタンスを取り扱うための一覧表示インターフェイスを構築できる API が用意されています。この API は、エージェントの送信済みとドラフトのレターインスタンスを一覧表示して開きます。これにより、エージェントはドラフトまたは送信済みのレターインスタンスで作業を続行することができます。
メソッド |
詳細 |
getAllLetterInstances |
入力クエリパラメーターに基づいてレターインスタンスを取得します。すべてのレターインスタンスを取得するには、クエリパラメーターをヌルとして渡します。 |
getLetterInstance |
レターインスタンス ID に基づいて指定したレターインスタンスを取得します。 |
letterInstanceExists |
LetterInstance が指定した名前で存在するかどうかをチェックします。 |
注意:
LetterInstanceService は OSGI サービスであり、そのインスタンスは JSP で Java のクラス
または sling.getService(LetterInstanceService.クラス)で @Reference を使用して取得することができます
下記の API は、クエリオブジェクトに基づいてレターインスタンスを検索します(送信済みとドラフトの両方)。クエリオブジェクトがヌルの場合、すべてのレターインスタンスを返します。この API は LetterInstanceVO オブジェクトの一覧を返します。この一覧は、レターインスタンスの追加情報の抽出に使用できます。
パラメーター | 詳細 |
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);
@Reference LetterInstanceService letterInstanceService; String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance"; LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );
レターインスタンスが指定した名前で存在するかどうかを確認します。
構文: public Boolean letterInstanceExists(String letterInstanceName) throws ICCException;
@Reference LetterInstanceService letterInstanceService; String letterInstanceName = "sampleLetterInstance"; Boolean result = letterInstanceService.letterInstanceExists(letterInstanceName );
レターインスタンスには、送信済みタイプまたはドラフトタイプがあります。両タイプのレターインスタンスを開くと、それぞれ異なる動作を示します。
- 送信済みのレターインスタンスの場合、レターインスタンスを示す PDF が開きます。サーバー上に残存する送信済みのレターインスタンスにも dataXML と処理された XDP が含まれ、それらを PDF/A の作成のようなケースの実行やカスタマイズに使用することができます。
- ドラフトのレターインスタンスの場合、「通信を作成」UI が正確に前回のドラフトが作成された時点の状態に再読み込みされます。
CCR UI は、再読み込みされたレターに使用できる cmLetterInstanceId パラメーターをサポートしています。
http://[hostName]:[portNo]/[contextPath]//aem/forms/createcorrespondence.html?random=[randomNo]&cmLetterInstanceId=[letterInstanceId]
注意:
通信の再読み込み時に cmLetterId または cmLetterName/State/Version を指定する必要はありません。再読み込みされた通信に関するすべての詳細は、送信済みデータに既に含まれています。RandomNo はブラウザーのキャッシュの問題を避けるために使用されます。乱数としてタイムスタンプを使用できます。