はじめに
見積DBの内容をSalesforceに反映するなど、自社が持っているデータとSalesforceに入っているデータを連携したいというケースは多いと思います。Salesforceとのデータ連携にはいくつか方法がありますが、本記事ではETL製品のPentahoを使って ローコード・ノーコード でSalesforceとデータ連携する方法を説明します。
対象読者
- ローコード・ノーコードでSalesforceとデータ連携を実現したい方
シナリオ
本記事では次の3つの簡単なシナリオで説明します。
シナリオ1. Salesforceにレコードを新規に追加する
セミナーの参加者リストが入ったExcelファイルをリードとしてSalesforceに登録します。このとき不要な行の削除や表現の統一などを行います。
シナリオ2. Salesforceのレコードを更新する
見積DBの内容をSalesforceに反映します。このとき金額の単位を変換して反映します。
シナリオ3. Salesforceからレコードを取り出す
商談レコードを取り出し、確度のランク付けをしてExcelファイルに出力します
事前準備
- Salesforceのユーザー名
- パスワード と セキュリティトークン
- 接続URL
使用製品
- Pentaho 10.2
1. Salesforceにレコードを新規に追加する
Pentahoでは以下のような定義でできます。Salesforceにレコードを追加するには[Salesforce insert]部品を使用します。
[Excel入力]、[フィルター]、[文字列置換]は以下のURLで使い方を説明していますのでご参照ください。
部品 | 使用目的 | 参照先 |
---|---|---|
Excel入力 | Excelファイルからセミナー参加者を読み取ります | 2. Excelファイル入力 |
フィルター | 会社名が入っているデータのみ残します。 | 8. フィルタリング |
文字列置換 | "(株)"を"株式会社"に変換します | 5. データ変換 - 文字列処理 |
1-1. [Salesforce insert]の設定内容
[Salesforce insert]の設定は以下のようになります。
項目 | 設定内容 | 備考 |
---|---|---|
SalesforceサービスURL | SOAPで接続するURLを指定してください。 | Pentaho 10.2はバージョン60をサポートしています |
ユーザー名 | 接続するユーザー名 | |
パスワード | "パスワード" + "セキュリティトークン"を指定してください。 | 例えばパスワードが"AAA"でセキュリティトークンが"BBB"の場合、"AAABBB"を指定してください |
モジュール | 追加するSalesforceオブジェクトを指定してください | |
フィールド | Excelファイルから読み取った列とSalesforceの項目をマッピングします | [マッピング編集]ボタンをクリックするとマッピング用のダイアログが表示され、効率的にマッピングできます |
1-2. 実行結果
この定義を実行すると以下のようにレコードがSalesforceに追加されます。
また、追加後、PentahoではSalesforceのIdを取得できますので、このIdをDBなどに格納することでSalesforceと他システムとも連携しやすくなります。
2. Salesforceのレコードを更新する
Pentahoでは以下のような定義でできます。Salesforceのレコードを更新するには[Salesforce update]部品を使用します。
[テーブル入力]、[計算]は以下のURLで使い方を説明していますのでご参照ください。
部品 | 使用目的 | 参照先 |
---|---|---|
テーブル入力 | 見積DBからデータを取り出します | 3-1. DBテーブル入力 SQLによる読み込み |
計算 | 見積DBには1000円単位で入力されているため、Salesforceに入力するために1000倍にしています。Salesforceに入力する金額のフィールド(列)は"sf_amount"としています。 | 3. データ変換 - 単純計算 |
2-1. [Salesforce update]の設定内容
[Salesforce update]の設定は以下のようになります。
設定内容は[Salesforce insert]と同じです。
2-2. 実行結果
この定義を実行すると以下のようにレコードの金額が更新されます。
(実行前)
3. Salesforceからレコードを取り出す
Pentahoでは以下のような定義でできます。Salesforceからのレコードを取り出すには[Salesforce input]部品を使用します。
[数値範囲]、[Microsoft Excel writer]は以下のURLで使い方を説明していますのでご参照ください。
部品 | 使用目的 | 参照先 |
---|---|---|
数値範囲 | 確度の数値に応じてランクをA, B, Cに分けます | 3. 数値によるグルーピング |
Microsoft Excel writer | Excelファイルに出力します | 2-1. Excelファイル出力 新規ファイル書き出し |
3-1. [Salesforce input]の設定内容
[Salesforce input]の設定は以下のようになります。
[接続]タブ
項目 | 設定内容 | 備考 |
---|---|---|
SalesforceサービスURL | SOAPで接続するURLを指定してください。 | Pentaho 10.2はバージョン60をサポートしています |
ユーザー名 | 接続するユーザー名 | |
パスワード | "パスワード" + "セキュリティトークン"を指定してください。 | 例えばパスワードが"AAA"でセキュリティトークンが"BBB"の場合、"AAABBB"を指定してください |
オブジェクト | 追加するSalesforceオブジェクトを指定してください | |
選択クエリー | 抽出条件を記載します | [クエリ指定]を有効にすると、SOQLで記述できます |
[全般]タブ
[フィールド]タブ
取得する項目を設定します。[フィールドの取得]をクリックすると全項目を設定可能です。
3-2. 実行結果
この定義を実行すると以下のように確度ランクを追加したレコードが出力されます。
補足
プロキシ環境下では以下のJavaプロパティを指定することでSalesforceにアクセスできるようです。
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
PentahoのSalesforce連携部品
PentahoのSalesforce連携部品は本記事でご紹介したものの他に以下があります。
- Salesforce Delete
- Salesforce Upsert
- Salesforce bulk operation
Salesforce Delete, Salesforce Upsertはご紹介した部品と同じような使い方です。
Salesforce bulk operationはSalesforce Bulk API 2.0に対応した部品です。機会があればご紹介します。
その他
製品の改良により予告なく記載されている仕様が変更になることがあります。
他社商品名、商標等の引用に関する表示
- Salesforceは、salesforce.com,Inc.の商標です。
- MicrosoftおよびExcelは、マイクロソフトグループの企業の商標です。
- Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
- Pentahoは、Hitachi Vantara LLCの商標または登録商標です。
- HITACHIは,株式会社 日立製作所の商標または登録商標です。
- その他記載の会社名,製品名などは,それぞれの会社の商標もしくは登録商標です。