Salesforce 取引先の一括取得

Salesforce の取引先の ID、Name をそれぞれデータ項目に格納し、通信ログを文字型データ項目に格納します。

2016-10-17 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/salesforce-getaccounts/

Configs
  • A: OAuth2通信許可設定名 (←[OAuth 2.0 設定]) *
  • B: サブドメインをセットしてください (https://{subdomain}.salesforce.com/) *
  • C: 選択肢IDの一覧が格納される文字列型データを選択してください (更新) *
  • D: 選択肢ラベルの一覧が格納される文字列型データを選択してください (更新) *
  • X: 通信ログが格納される文字列型データを選択してください (更新)>
Script
// OAuth2 config
// Authorization Endpoint URL: https://login.salesforce.com/services/oauth2/authorize
// Token Endpoint URL: https://login.salesforce.com/services/oauth2/token
// Scope: 
// Consumer Key: (Get by Salesforce Connected App screen)
// Consumer Secret: (Get by Salesforce Connected App screen)

//// == 工程コンフィグの参照 / Config Retrieving ==
var oauth2 = configs.get( "conf_OAuth2" );
var subDomain = configs.get( "conf_SubDomain" );
var dataIdC = configs.get( "conf_DataIdC" ); // (returns Number)
var dataIdD = configs.get( "conf_DataIdD" ); // (returns Number)
var dataIdX = configs.get( "conf_DataIdX" ) + ""; // (returns Number)

//// == ワークフローデータの参照 / Data Retrieving ==


//// == 演算 / Calculating ==
var accessLog = "";
var responseJson = "";
var token = httpClient.getOAuth2Token( oauth2 );

var choiseIds = "";
var choiseLabels = "";

try{
  var uri = "https://";
  uri += subDomain;
  uri += ".salesforce.com/services/data/v37.0/query/";

  var response = httpClient.begin()
    .bearer(token)
    .queryParam("q", "SELECT Id, Name from Account")
    .get(uri);
  accessLog += "---GET request--- " + response.getStatusCode() + "\n";
  responseJson = response.getResponseAsString();
  if( response.getStatusCode() == 200 ){
    var jsonObj = JSON.parse( responseJson );
    for( var i = 0; i < jsonObj.records.length; i++ ){
      choiseIds += jsonObj.records[i].Id + "\n";
      choiseLabels += jsonObj.records[i].Name + "\n";
    }
  }
}catch(e){
  accessLog += e.message + "\n";
}
// for Debug
// accessLog += responseJson + "\n";

//// == ワークフローデータへの代入 / Data Updating ==
retVal.put( dataIdC, choiseIds );
retVal.put( dataIdD, choiseLabels );
if( dataIdX !== "" ){
  retVal.put( dataIdX, accessLog );
}

Download

  • Salesforce-getAccounts.xml
    • スクリプトエンジンとして「Rhino(廃止予定)」が指定されているため、アプリにインストールしても設定エラーとなります
    • 利用するには、スクリプトエンジンの変更、およびそれに伴うスクリプト修正が必要です
    • 修正版は準備中です

Capture

%d人のブロガーが「いいね」をつけました。