質問
Salesforceとのデータ連携にて、リレーション項目の参照先オブジェクトに対する外部IDの項目の値を指定したいのですが、実現方法はありますか
具体的には以下のような処理を想定しています。
- 取引先オブジェクトに外部IDを設定する
- Salesforceの商品オブジェクトに対して、外部IDを設定している取引先オブジェクトをリレーション項目に指定する
- Salesforceコネクターのレコード挿入処理にて、設定したリレーション項目に対して外部IDの値を指定した入力データを挿入する
◇登録したい入力データ
商品名 | 商品コード | 外部ID |
Product1 | ProductCode1 | OutID1 |
Product2 | ProductCode2 | OutID2 |
Product3 | ProductCode3 | OutID3 |
◇リレーション参照先の取引先オブジェクト
取引先ID | 取引先名 | 外部ID |
AccountID1 | Company1 | OutID1 |
AccountID2 | Company2 | OutID2 |
AccountID3 | Company3 | OutID3 |
◇登録後の商品オブジェクトイメージ
商品ID | 商品名 | 商品コード | 取引先ID(リレーション項目) |
(自動採番) | Product1 | ProductCode1 | AccountID1 |
(自動採番) | Product2 | ProductCode2 | AccountID2 |
(自動採番) | Product3 | ProductCode3 | AccountID3 |
回答
リレーション項目の参照先オブジェクトに対する外部IDの項目の値を指定するような連携ですが、マージ処理を利用する事で実現が可能です。
Salesforceコネクターの仕様としましては、リレーション項目を持つデータとの連携時には項目の値にSalesforce固有のIDを指定する必要があります。
そのため、リレーション項目の参照先オブジェクトに対する外部IDの項目の値をリレーション項目に対して直接指定する事は出来ません。
回避策としましては、事前に参照先オブジェクトのデータを取得していただいた上で外部IDの値を指定した入力データとマージ処理を行っていただき、
外部IDに対応したSalesforce固有のIDをマージデータから指定していただく事でデータ連携を行う事が可能です。
連携先のデータを商品オブジェクト、リレーション項目の参照先を取引先オブジェクトと仮定しまして、マージ処理を利用した実装案の一例を以下にご案内させていただきます。
- 商品オブジェクトに挿入したい、外部IDの値を指定している登録したい入力データを取得する
- リレーション項目の参照先である取引先オブジェクトのデータをSalesforceコネクターから取得する
- ツールパレットの 変換>基本>マージ よりマージMapperアイコンを配置し、登録したい入力データと取引先オブジェクトのデータをデータフローで接続する
- 外部IDを基準として、2つの入力データを[And-Integrate]ロジックでマージする
- マージしたデータからリレーション項目である取引先IDに対して、登録したい入力データの外部IDに対応した取引先IDをマッピングして商品オブジェクトに挿入する
[And-Integrate]ロジックの詳細につきましては、以下のマニュアルをご参照ください。
・2.7.3 Mapperロジックガイド > 2.7.3.1 マージ > 2.7.3.1.4 And-Integrateマージ
コメント
0件のコメント
記事コメントは受け付けていません。