すべての機会を取得カスタムアクション
すべての機会を取得アクションは、機会レコードを Salesforce アプリケーションから取得します。このアクションは、リモートの機会テーブルを表示するときに呼び出されます。
アクションの入力
すべての機会を取得アクションは、クエリーによって返される最大レコード数を特定する単一の整数パラメータを受け取ります。REST ベースのアクションはページネーションに対応できないため、サードパーティアプリケーションから返されるレコードの数を制限することが重要です。リモートテーブルに 1,000 を超えるレコードを配置することはお勧めしません。デフォルトのレコード数は 500 件です。
前処理ステップ
前処理スクリプトステップでは、アクション入力自体を受け取ります。
前処理スクリプトは、許可された最大レコード数によって制限されるすべての機会の SELECT クエリーを作成します。このクエリーは、Salesforce オブジェクトクエリー言語 (SOQL) に基づきます。
(function execute(inputs, outputs) {
outputs.query = "query/?q=SELECT+Name,Id,AccountId,CloseDate,Amount,” +
“StageName,Probability,Type+FROM+Opportunity”;
outputs.query = outputs.query +
“+LIMIT+” + inputs.max_number_of_opportunity_records;
})(inputs, outputs);
興味のある機会レコードのフィールドを指定する必要があります。この例では、名前、ID、アカウント ID、クローズ日、金額、ステージ名、可能性のフィールドを使用しています。利用可能なフィールドの完全なリストを表示するには、機会フィールドを取得アクションを使用します。
また、ORDERED BY キーワードと ASC または DESC ソート方向を追加して、クエリー検索の順序を制御できます。たとえば、LIMIT を指定する行の前に、次の行をスクリプトに追加することができます。これにより、クエリはクローズ日が最新の最初の 500 件のレコードを返すようになります。
outputs.query = outputs.query + “+ORDERED+BY+CloseDate+DESC”;前処理の出力はクエリーです。
REST ステップ
REST ステップは、Salesforce スポークの REST ベースのアクションの標準的な REST ステップです。変更を加える必要はありません。適切な接続エイリアスをポイントしていることを確認してください。
後処理ステップ
後処理スクリプトステップでは、アクション入力と REST ステップを入力として受け取ります。
後処理スクリプトは、クエリー応答のエラーを確認し、必要に応じてエラーメッセージを設定し、応答本文から機会データを抽出し、レコード数の制限が原因で Salesforce からすべてのデータが取得されなかったことを示す情報メッセージを作成します。
(function execute(inputs, outputs) {
try{
var response = JSON.parse(inputs.res_body);
} catch(e) {
outputs = errorHandler(inputs, outputs);
}
function createOutputJson(inputs, outputs) {
try{
outputs.records = { data: response.records };
outputs.status = "Success";
if ( outputs.records.data.length ==
inputs.max_number_of_opportunity_records ) {
outputs.info_message = "Opportunity retrieve operation was “ +
“limited to" +
inputs.max_number_of_opportunity_records +
" records.";
}
} catch(e) {
outputs = errorHandler(inputs, outputs);
}
return outputs;
}
function errorHandler(inputs, outputs) {
outputs.status = "Error";
outputs.error_message = "Unknown Error. “ +
“Please check error log for more information";
if(inputs.res_body.contains("message"))
outputs.error_message = response[0].message;
return outputs;
}
if(inputs.status_code == "200")
outputs = createOutputJson(inputs, outputs);
else
outputs = errorHandler(inputs, outputs);
})(inputs, outputs);
次に、後処理ステップの出力を示します。
アクションの出力
アクションの出力は、クエリステータス、エラーおよび情報メッセージ、機会レコードで構成されます。アクションの出力については、前のスクリーンショットを参照してください。