2月のバージョンアップにて追加された新機能「SalesforceConnect機能」はすでに紹介させていただきましたが、今回はSalesforceアダプタの新機能の中から「選択リスト値」の操作に関わる機能について書きたいと思います。
Salesforce上でのマスタデータの扱い方
基幹システムの「商品マスタ」をSalesforceへ連携し、「売上データ」の「商品」として参照させたいという場合、Salesforce上での表現方法として以下の2種類のやり方が考えられます。
- マスタデータをオブジェクトとして保持し参照する方法(オブジェクト方式)
マスターデータ用にカスタムオブジェクトを作成して外部システムからデータを連携するという方法です。
別のオブジェクト「売上データ」にて参照項目「商品」を作成し、「商品マスタ」データを参照するというイメージとなります。
この例の場合、「売上データ」を閲覧している際、「商品」の情報を確認するには、参照項目のリンクから辿って「商品マスタ」の詳細を確認する流れが想定されます。
「商品マスタ」の用途として、利用したい情報が多いのであれば、オブジェクトとして扱う方が管理がし易いというメリットがあります。 - マスタデータを選択リスト項目の選択値として保持する方法(選択リスト方式)
マスターデータをオブジェクトとして保持するのではなく、選択リスト値として保持する方法です。
「商品マスタ」のSalesforce上での用途として、利用したい情報が少なくオブジェクトにするまでもないのであれば、選択リストとして扱う方が効果的かもしれません。
例えば「コード」と「名称」だけ表示できればいいのであれば、「売上データ」に選択リストとして値を保持することで要件を満たせそうです。
基幹システム側の「商品マスタ」が変更された場合どのように反映するのかを考えてみると、前者の場合、マスタデータ連携の処理を自動化することでSalesforce上でのマスタメンテナンスが不要となります。
後者の場合、選択リストのマスタ値を変更する必要がありますが、通常、選択リスト値を変更するにはSalesforceのシステム管理者権限のユーザーが「設定」から該当項目の設定変更を行う必要があり、マスタデータの更新頻度によっては設定作業の手間がかかってしまうという課題点があります。
前置きが長くなりましたが、そういった課題は、Salesforce Metadataアダプタの「選択リスト値」を操作する機能で解決できます!!
「選択リスト値」を操作する機能
それでは、「選択リスト値」を操作する機能に、どのようなものがあるかご紹介させていただきます。
Salesforce Metadataアダプタには、以下の機能が備わっております。
機能名 | 説明 |
読み取り(選択リスト値) | 選択リスト値を読み取ります。 |
追加(選択リスト値) | 入力データを元に選択リスト値の追加処理を行います。 |
更新(選択リスト値) | 入力データを元に選択リスト値の更新処理を行います。 |
更新(選択リスト制御項目値) | 入力データを元に選択リスト制御項目値の更新処理を行います。 |
削除(選択リスト値) | 入力データを元に選択リスト値の削除処理を行います。 |
並び替え(選択リスト値) | 入力データを元に選択リスト値の並び替え処理を行います。 並び替える順番は、入力データに渡す選択リストの値の順番で指定します。 |
更新(選択リスト値 トランスレーション) | 入力データを元に選択リスト値の翻訳処理を行います。 |
読み取り(レコードタイプ選択リスト値) | レコードタイプの選択可能な選択リスト値を読み取ります。 |
更新(レコードタイプ選択リスト値) | 入力データを元にレコードタイプの選択可能な選択リスト値の更新処理を行います。 |
これらの機能を用いることで、、選択値の読み出し、選択値の追加・更新・削除・並び替え、項目連動関係やレコードタイプによる連動の変更などが可能となります。
マスタデータの変更を自動反映してみる!!
前項で紹介した機能を実際に利用して、連携処理を作成してみたいと思います。
連携に使用するデータは分かり易くするために以下のデータで試してみたいと思います。
「商品マスタ」
商品コード,商品名
01,りんご
02,みかん
03,バナナ
「選択リスト マスタ値」
商品マスタに新規レコード「04,ぶどう」が追加された際に、選択リストのマスタ値に反映する処理を作ってみました。
「商品マスタ」の追加レコードはCSVファイルで連携される想定で作成しており、それをもとに「売上データ」の「商品」という選択リスト値を追加する流れとなります。
商品コードでの紐づけのためや表示時に分かり易くするため、選択リスト値の追加の際、「商品コード:商品名」という値になるように文字列を連結加工して受け渡しております。
こちらを実行すると、以下のように選択リスト値が追加されたことが分かります。
新機能「更新(選択リスト値 トランスレーション)」
選択リストのマスタ値を操作する機能については、今回のバージョンアップ前でも利用可能でしたが、今回のバージョンアップでは、トランスレーションワークベンチを有効にされている際の翻訳値を更新する機能が追加されました。
トランスレーションワークベンチを使った選択リストの設定を以下のように設定してみます。
「商品マスタ」
商品コード,商品名,商品名(英語)
01,りんご,Apple
02,みかん,Orange
03,バナナ,Banana
04,ぶどう,Grape
「選択リスト マスタ値」
「選択リスト 翻訳値(日本語)」
「選択リスト 翻訳値(英語)」
この設定で、商品マスタの「02,みかん,Orange」レコードの商品名が「ミカン」に変更された際に、選択リストの翻訳値に反映する必要がありますが、この場合には「更新(選択リスト値 トランスレーション)」を利用します。
スクリプトイメージはこのような感じとなります。
「商品マスタ」の変更レコードはCSVファイルで連携される想定で作成しており、それをもとに「売上データ」の「商品」という選択リスト値の「日本語」の翻訳値を更新する流れとなります。
こちらを実行すると、以下のように選択リストの翻訳値が変更されたことが分かります。
売上データの選択リスト項目としては、内部的に商品コードのみを保持しており、画面表示上では翻訳値を表示することができるため、売上データを連携する場合は効率化が図れますね。
まとめ
Salesforceの国際化対応(トランスレーションワークベンチ)を採用されるケースが最近では増えてきており、今回の新機能のように翻訳値を更新したいなどのニーズがでてきております。
Salesforceアダプタのバージョンアップでは、「カスタム表示ラベル」の値を取得する機能も追加しており、こちらも国際化対応を踏まえ、翻訳値を取得できるような仕立てとなっておりますので、ぜひご活用いただければ幸いです。
また、今回ご紹介した機能につきましては、実際のお客様からのご要望をもとに機能追加を行っております。
今後も有用な機能を追加できればと思いますので、ご要望等ございましたら当社までご相談ください。