すべての機会を取得カスタムアクション

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • すべての機会を取得アクションは、機会レコードを 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 ステップ画面。

    後処理ステップ

    後処理スクリプトステップでは、アクション入力と 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);
    

    次に、後処理ステップの出力を示します。

    records、error_messages、info_messages、status などの変数が表示されている後処理ステップ内の出力変数画面。

    アクションの出力

    アクションの出力は、クエリステータス、エラーおよび情報メッセージ、機会レコードで構成されます。アクションの出力については、前のスクリーンショットを参照してください。