Salesforce は顧客関係管理 (CRM) プラットフォームとして知られており、販売、サービス、マーケティング向けのクラウドベースのアプリケーションを提供します。この記事は、Salesforce API と、Salesforce と Rails アプリケーションの間でデータを同期する方法についてより明確に理解することを目的としています。 Salesforce API を Rails アプリケーションと統合するには、次の手順に従う必要があります。
Rails gem「restforce」を使用する – https://github.com/ejholmes/restforce
インストール
gem 'restforce'、'~> 2.5.3' を Gemfile に追加します。 'bundle install' または 'gem installrestforce' を実行します。
構成
application.yml で、次の環境変数を設定します。SALESFORCE_USERNAME: 「ユーザー名」 SALESFORCE_PASSWORD: 「パスワード」 SALESFORCE_SECURITY_TOKEN: 「セキュリティトークン」 SALESFORCE_CLIENT_ID: 「クライアントID」 SALESFORCE_CLIENT_SECRET: 「クライアントシークレット」 SALESFORCE_HOST: 「ホストドメイン名」 SALESFORCE_API_VERSION=”38.0″「sf = Restforce.new」を実行して Salesforce に接続してみます。
Salesforce へのクエリ
Salesforce には、Account、Certification_c、Learner などの複数のオブジェクトを持つことができます。これらのオブジェクトにアクセスするには、次のクエリを適用できます。- クエリ
- クエリ_すべて
- 選択する
- 検索
- 作成する
- 探す
- アップデート
- 破壊する
1. クエリ
例 1:accounts = sf.query(“アカウントから ID、Something__c を選択”)例 2: WHERE 句を使用した時間ベースのクエリ # 最終同期時刻
last_synced_at = (Time.now.utc – 1.hour).strftime(“%Y-%m-%dT%H:%M:%SZ”)#現在のシステム時間
current_time = Time.now.utc.strftime(“%Y-%m-%dT%H:%M:%SZ”)
sf.query(“select Id, Something__c from Account WHERE LastModifiedDate >= #{last_synced_at} AND LastModifiedDate <= #{current_time}”)
2.クエリーオール
query_all を使用すると、Salesforce がデフォルトの「query」メソッドに非表示にするクエリの結果を含めることができます。これらには、論理的に削除されたレコードとアーカイブされたレコード (例: タスクおよびイベント レコード。通常は 1 年経過すると自動的にアーカイブされます) も含まれます。accounts = sf.query_all(“isDeleted = true のアカウントから ID、Something__c を選択”)
3.選択
select を使用すると、単一のオブジェクトからフィールドの特定のリストをフェッチできます。 external_id ルックアップが必要ですが、多くの場合、任意のクエリよりもはるかに高速です。sf.select('アカウント', '001D000000INjVe', [“ID”], 'Some_External_Id_Field__c')
4. 検索
# 「bar」をすべて検索します。sf.search('FIND {bar}')
5.作成する
# 新しい証明書を追加_csf.create('Certification_c', Certification_type_c: 'CSR 対面')
6. 見つける
# ID で証明書を検索するsf.find('証明書_c', '001D000000INjVe')
7.アップデート
# 「Certification_c」を「Id」「0016000000MRatd」で更新します。sf.update('Certification_c'、ID: '0016000000MRatd'、Certification_type_c: 'CSR Vertual')
8.破壊する
# ID による証明書の破棄sf.destroy('証明書_c', '001D000000INjVe')
APIの制限
Salesforce には、1 日/1 時間あたりの API 呼び出しの制限があります。したがって、API 呼び出しの合計と利用可能な呼び出しを簡単に確認できます。制限 = sf.limits 制限[“DailyApiRequests”]
出力 = {「最大」=>15000、「残り」=>14746}Restforce API 接続エラーからのレスキュー
def self.connect_to_salesforce sf = nil begin sf = Restforce.newrescue Exception => e error_message = "restforce gem を使用して Salesforce に接続できませんでした!"終わりの終わり
最新のアップデートを購読する
関連記事