概要

Correspondence Management の通信を作成 UI を使用して、作成中のレターインスタンスのドラフトを保存することができます。また、この UI には送信済みのレターインスタンスが存在します。

Correspondence Management には、送信済みまたはドラフトのレターインスタンスを取り扱うための一覧表示インターフェイスを構築できる API が用意されています。この API は、エージェントの送信済みとドラフトのレターインスタンスを一覧表示して開きます。これにより、エージェントはドラフトまたは送信済みのレターインスタンスで作業を続行することができます。

レターインスタンスの取得

Correspondence Management は API を使用して、LetterInstanceService サービスからレターインスタンスを取得します。

メソッド

詳細

getAllLetterInstances

入力クエリパラメーターに基づいてレターインスタンスを取得します。すべてのレターインスタンスを取得するには、クエリパラメーターをヌルとして渡します。

getLetterInstance

レターインスタンス ID に基づいて指定したレターインスタンスを取得します。

letterInstanceExists

LetterInstance が指定した名前で存在するかどうかをチェックします。 

注意:

LetterInstanceService は OSGI サービスであり、そのインスタンスは JSP で Java のクラス
または sling.getService(LetterInstanceService. クラス)で @Reference を使用して取得することができます。

getAllLetterInstances の使用

下記の API は、クエリオブジェクトに基づいてレターインスタンスを検索します(送信済みとドラフトの両方)。クエリオブジェクトがヌルの場合、すべてのレターインスタンスを返します。この API は LetterInstanceVO オブジェクトの一覧を返します。この一覧は、レターインスタンスの追加情報の抽出に使用できます。

構文リスト getAllLetterInstances(Query query) が ICCException; をスロー

パラメーター 詳細
query query パラメーターは、レターインスタンスの検索またはフィルタリングに使用されます。ここで、クエリはオブジェクトの最上位の属性またはプロパティのみサポートします。クエリは、ステートメントで構成されます。ステートメントのオブジェクトで使用される「attributeName」は、レターインスタンスオブジェクト内のプロパティの名前です。

例 1:送信済みタイプのすべてのレターインスタンスを取得する

以下のコードで送信済みのレターインスタンスの一覧が返されます。ドラフトのみを取得するには、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:特定のユーザーによって送信されたドラフトタイプのすべてのレターインスタンスを取得する

以下のコードでは、同一のクエリに複数のステートメントが含まれ、特定のユーザーが送信したレターインスタンス(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 の使用

特定のレターインスタンス ID で識別されるレターインスタンスを取得します。一致するインスタンス ID がない場合、ヌルを返します。

構文公開 LetterInstanceVO getLetterInstance(String letterInstanceId) が ICCException; をスロー

@Reference
LetterInstanceService letterInstanceService;
String letterInstanceId = "/content/apps/cm/letterInstances/1001/sampleLetterInstance";
LetterInstanceVO letterInstance = letterInstanceService.getLetterInstance(letterInstanceId );

レターインスタンスの有無の確認

レターインスタンスが指定した名前で存在するかどうかを確認します。

構文公開ブール letterInstanceExists(String letterInstanceName) が ICCException; をスロー

パラメーター 詳細
letterInstanceName 有無を確認するレターインスタンスの名前。
@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 はブラウザーのキャッシュの問題を避けるために使用されます。乱数としてタイムスタンプを使用できます。

送信済みのレターインスタンスを開く

送信済み PDF は、次のレターインスタンス ID を使用して直接開くことができます。

http://[hostName]:[portNo]/[contextPath]/[letterInstanceId]

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー