pentaho data integration を使ってSalesforceのデータを抽出したり更新したりする話3(Insert)


★ExcelのデータをSalesforceへ登録してみる。

まずは登録したいデータを用意します。
今回は取引先のデータを下記のように用意。

2015-08-28_pentaho19.jpg


データ変換で「入力」から「Excel入力」を、出力から「Salesforce挿入」をもってきてつなげます。

2015-08-28_pentaho20.jpg


Excel入力についてです。
ファイルタブの「スプレッドシートタイプ(エンジン)」はExcel形式に合わせます。
「ファイルとディレクトリ」に読み込むファイルを指定したあと、「追加」ボタンを押します。
ファイル名のリストにパスが移動します。

2015-08-28_pentaho21.jpg


シートタブでは、使用するシートを選択します。

2015-08-28_pentaho22.jpg

フィールドタブでは、使用する項目を選択することになるのですが、『途中の列は不要だから・・・』と記述を抜かすとデータがずれるので、全列記述したほうがよいです。
そのため、フィールドの取得で一括で拾います。

2015-08-28_pentaho23.jpg


Salesforce入力について。
SalesforcreサービスURL、ユーザ名、パスワードはSelectのときと同様です。
SalesforceサービスURLはデフォルトのものに対し、
本番・開発環境の場合⇒"www"を"login"に変更します。
sandboxの場合⇒"www"を"test"に変更します。
ユーザ名、パスワードは使用しているものを。IP制限によっては、パスワードの後ろにセキュリティトークンも入れる必要があります。

バッチサイズもデータローダの設定と似てますね。200にしておくと無難かと思います。
モジュールは登録対象を。今回は取引先を登録したいのでAccountにします。
SalesforceIDフィールドには、デフォルトのIdのままでよろしいかと。

そして、項目のマッピングですね。
データローダだとSDL作成に該当するところです。
マッピング編集をクリックし、Excel列と、データローダの項目を関連付けさせていきます。

2015-08-28_pentaho24.jpg

こんな感じになります。

2015-08-28_pentaho25.jpg

実行してみると、無事Salesforceに登録されました。

2015-08-28_pentaho26.jpg


★登録成功・失敗のエラーログを出してみる。
出力⇒Microsoft Excel Writer
を2つ用意し、Salesforce挿入から2本つなげます。

線をつなげようとすると、どのようにするか問われるので、ひとつを「Main output of step」、もうひとつを「Error handling of step」とします。

2015-08-28_pentaho27.jpg


2本目を引くときは、ダイアログが出てきますので、「コピー」を選択します。

2015-08-28_pentaho28.jpg


エラーの線の×点印をダブルクリックします。
2015-08-28_pentaho32.jpg

エラーコードや、エラー詳細が格納されるフィールド名を記述します。
エラー詳細はフィールド名を入れておいたほうが、エラー発生時に調査しやすくなると思います。
2015-08-28_pentaho29.jpg

そして、成功・エラーのそれぞれのExcelのファイル名やフィールド項目を設定します。
もちろん、Selectのときと同様、フィールドについては全取得しておくといいかと思います。

2015-08-28_pentaho30.jpg

2015-08-28_pentaho31.jpg


実行してみると、成功、失敗の情報がExcelに出力されます。
今回は成功のみなので、Success側のExcelを見てみると。

2015-08-28_pentaho33.jpg

登録したSalesforceIDが付加され、データローダのSuccessログっぽい感じになりますね。


★参照関係の項目に外部IDで値を設定する。
データローダだと、insert処理の場合は参照関係の項目に対し外部IDで値を設定することはできなかったと思いますが、pentahoのinsertの場合はできるのですね。
フィールドの項目定義にて
「参照先のオブジェクトAPI参照名:外部IDのAPI参照名/リレーション名」
で、外部IDにチェックを入れればできます。

例として、
ホゲオブジェクト(HogeObject__c)に外部ID(HogeExternalID__c)という項目を外部IDで定義してみました。
取引先のカスタム項目にホゲ(Hoge__c)と参照項目を定義。
2015-08-28_pentaho34.jpg

2015-08-28_pentaho35.jpg

ホゲオブジェクトのレコードを1件追加し、外部IDをhoge1としてみました。
2015-08-28_pentaho36.jpg

そしてExcelデータには、ホゲ列を追加して、hoge1と記述。
2015-08-28_pentaho37.jpg

最後にpentahoのフィールド定義を先ほど書いた書き方にしたがって
HogeObject__c:HogeExternalID__c/Hoge__c
とし、「外部IDを使用」にはYを入れます。

2015-08-28_pentaho38.jpg

このようにして実行してみますと、参照項目を外部IDを使って設定できるinsertができたことがわかります。
2015-08-28_pentaho39.jpg


★参照関係の項目にSalesforceIDで値を設定する
外部IDではなく、SalesforceIDを使う場合。
項目のマッピングする場合、カスタム項目だと「__r」となっているので、「__c」と後ほど変換する必要があります。
標準の項目だとIdを後ほど付加する形ですね。

ExcelにSalesforceIDを入力して。
2015-08-28_pentaho40.jpg

マッピングをHoge__cとする。
外部IDは使用しないので"N"です。

2015-08-28_pentaho41.jpg

これで、SalesforceIDを使って参照項目を結ぶことができます。
関連記事


--------------------------------------------------------------------------------------

コメントの投稿

非公開コメント

このブログについて
  • 全記事一覧(時間順)
  • このブログについて
  • 私のプロフィール
  • 当ブログで扱っている動画について
  • 記事違いなコメントのお返事

  • カテゴリー
    twitter
    カレンダー
    09 | 2017/10 | 11
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30 31 - - - -
    Amazon
    でたらめな当ブログにぴったりな商品を自動で表示するみたいです。



    月別アーカイブ
    プロフィール

    たづみ

    Author:たづみ
    ・1981年生まれの男
    ・もう少し詳細なプロフィールはこちらで

    最新コメント
    アクセスランキング
    [ジャンルランキング]
    日記
    831位
    アクセスランキングを見る>>

    [サブジャンルランキング]
    会社員・OL
    176位
    アクセスランキングを見る>>