アプリケーション・コンポーザでリンク・リクエストを処理するための事前定義済データ品質ルールの構成
リンク用のGroovyスクリプトの構成は、スクリプトを開発およびテストするための標準統合サンドボックス・フレームワークを使用して、アプリケーション・コンポーザで実行されます。
この構成を他のタイプのアプリケーション・コンポーザ構成アクティビティと組み合せるのではなく、リンク用に個別の専用サンドボックスを作成することをお薦めします。 このアプローチにより、リンク構成の設計とデプロイメントに最大の柔軟性が得られます。
この例では、リンク・リクエストのメイン・レコードを選択するメイン・リンク・レコード・ルールの設定を作成する方法を学習します:
- 顧客プロファイル品質スコアが最も高いレコードをメイン・レコードとして選択する必要があります。
- 複数のレコードが最高の顧客プロファイル品質スコアに関連付けられている場合は、最後に更新されたレコードをタイブレーカとして使用します。
- リンク・リクエストのいずれのレコードにも顧客プロファイル品質スコアが割り当てられていない場合は、アップストリーム・プロセスによってメインとして指定されていたレコードをすべて取得します。
アプリケーション・コンポーザ・サンドボックスを作成する手順は、次のとおりです。
- をクリックします。
- 「サンドボックスの作成」をクリックします。
- 名前を指定し、すべてのツールから「アプリケーション・コンポーザ」を選択します。 また、公開可能オプションの「はい」を選択します。
- 「作成して入る」をクリックして入力します
- 「アプリケーション・コンポーザ」アイコンをクリックします。
- 「共通設定」に移動し、「データ品質ルール」をクリックします。
- AccountSetMainLinkテンプレートをクリックします。
- 「データ品質ルールの編集」ページのサンプル・コード・セクションで指定されたコードをコピーしてペーストします。
- 「保存してクローズ」をクリックします。
コードをデプロイします。 トピックを見る: リンク・リクエスト構成をデプロイします。
サンプル・スクリプトの動作
スクリプトは、リンク・リクエストで選択したすべてのパーティを返すgetRows()入力ファンクションをコールすることから始まります。
スクリプトは、各レコードの顧客プロファイル品質スコア値を検査するために、解決リクエストのレコードをループ処理します。 各レコードの値は、これまでに見つかった最大値と比較され、現在の行の値がそれまでに見つかった最大値よりも大きい場合、その行は昇格してリンク・セットのマスター・レコードになります。
最後に、スクリプトはselectMaster()出力関数をコールしてメイン・レコードを指定します。 スクリプトで前に最上位優先度または第2優先度のレコードが識別された場合、そのレコードはselectMaster()関数に提供されます。 優先度レコードが識別されなかった場合、アップストリーム・プロセスによって指定されたデフォルトのマスター・レコードは、解決リクエストのマスター・レコードとして保持されます。
サンプル・スクリプト:
try {
def requestRows = getRows();
def rowMaster = false;
def rowDefaultMaster = getMaster();
def iHighestAccountScore = 0;
for (row in requestRows)
{
if (nvl(row.getAttribute("ProfileQualityScore"), 0) > iHighestAccountScore) {
rowMaster = row;
iHighestAccountScore = row.getAttribute("ProfileQualityScore");
}
}
if (rowMaster) {
selectMaster(rowMaster);
} else {
selectMaster(rowDefaultMaster);
}
} catch (Exception e) {
def sMsg = "Exception in Account Set Master: " + e.getMessage();
println(sMsg);
}