Data Mapper Turbo Extract と Data Mapper Load を作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- OmniStudio Data Mapper Turbo Extract を作成する。
- OmniStudio Data Mapper Load を作成する。
- OmniStudio Data Mapper Load でレコードを作成するか更新するかがどう決まるかを説明する。
次は、シンプルなガイド付きユーザーインタラクションを示しています。ユーザーが取引先の電話番号や Web サイトなど、基本的なカスタマー取引先の詳細を更新します。ユーザーは Edit Account OmniScript のガイドに従ってプロセスを実行すればよいので、複雑な機能がバックグラウンドで実行されていても、ステップ自体は直観的で容易に完了できます。
では、ユーザーには表示されない複雑な機能について考えてみましょう。このインタラクションで使用する項目には、どのようにしてデータが表示されるのでしょうか? 更新されたデータはどのようにして保存されるのでしょうか? この機能は OmniStudio Data Mapper が担っています。取引先オブジェクトからデータを取得するのが OmniStudio Data Mapper Turbo Extract で、更新されたデータを元の取引先オブジェクトに保存するのが OmniStudio Data Mapper Load です。この単元では、この 2 つの OmniStudio Data Mapper を作成する方法を学習します。
準備はいいですか? では始めましょう。
OmniStudio Data Mapper Turbo Extract を作成する
前の単元では、OmniStudio Data Mapper を設定する準備が整ったら、OmniStudio アプリケーションの [OmniStudio Data Mappers] タブからアクセスできる OmniStudio Data Mapper Designer を使用することを学習しました。
OmniStudio Data Mapper Turbo Extract を作成する場合は、OmniStudio Data Mapper Designer の次のタブを使用して、Turbo Extract で実行する処理を指定します。
- [EXTRACT (抽出)] タブ
- [PREVIEW (プレビュー)] タブ
では、これらのタブを詳しく見ていき、タブで実行する必要があるステップの概要を把握しましょう。
[EXTRACT (抽出)] タブ
[EXTRACT (抽出)] タブでは、次を行う必要があります。
- OmniStudio Data Mapper でクエリする Salesforce オブジェクトを指定する。
- オブジェクトから取得されるデータを判断する検索条件を設定する。
- 抽出する項目を指定する。
Edit Account OmniScript の例を使って、上記の設定を行う手順を説明します。
- Edit Account OmniScript では、取引先オブジェクトからデータを抽出する必要があるため、ソースオブジェクトとして [Account (取引先)] を選択します。
- [Extract Output Path (抽出出力パス)] (1) では、出力の最上位の JSON ノードを指定します。これは通常ソースオブジェクトと同じであるため、[Extract Output Path (抽出出力パス)] 項目に
Account
と入力します。
- 読み取り対象のデータを判断する検索条件を作成します。検索条件はソースオブジェクト (2) と比較演算子 (3)、および引用符で囲んだリテラル値か、入力パラメーターか、同じソースオブジェクトの別の項目 (4) という 3 つの項目で構成されます。この例では、Edit Account OmniScript のデータを取得するため、3 つの項目に Id =
AccountId
と入力します。
- [SEARCH FIELDS (項目を検索)] で、右矢印を使用して [Name (名前)]、[Phone (電話)]、[Website (Web サイト)] を選択します。これらが抽出する項目です。
- [SEARCH FIELDS (項目を検索)] (5) ボックスに項目リストを絞り込むための値を入力できます。Id 項目 (6) は常に出力に含まれています。
[PREVIEW (プレビュー)] タブ
[PREVIEW (プレビュー)] タブで OmniStudio Data Mapper の入力と出力をテストします。
[Input Parameters (入力パラメーター)] パネル (1) の [Key (キー)] に AccountId
、[Value (値)] に取引先の RecordId を入力して、キーと値のペアを指定します (RecordId を調べる方法は次に説明します)。OmniStudio Data Mapper Turbo Extract を実行すると、データが正しく抽出されていることを確認するために [Response (応答)] (2) ペインに結果が返されます。
Salesforce 内のすべてのレコードには一意の RecordId があります。取引先の RecordId は、組織で取引先レコードを開き、URL から RecordId をコピーするだけで簡単に取得できます。
これで Salesforce オブジェクトからレコードを取得する方法がわかりました。次は OmniStudio Data Mapper Load を使用して、更新されたデータをオブジェクトに保存する方法を見てみましょう。
OmniStudio Data Mapper Load を作成する
OmniStudio Data Mapper Load を作成する場合は、OmniStudio Data Mapper Designer の次のタブを使用して、OmniStudio Data Mapper Load で実行する処理を指定します。
- [OBJECTS (オブジェクト)] タブ
- [FIELDS (項目)] タブ
- [PREVIEW (プレビュー)] タブ
では、上記のタブを設定して OmniStudio Data Mapper Load を作成する手順を見ていきましょう。
[OBJECTS (オブジェクト)] タブ
[OBJECTS (オブジェクト)] タブでは、更新する Salesforce オブジェクトを指定します。
取引先オブジェクトにデータを書き込むので、[+ Add Object (+ オブジェクトを追加)] (1) をクリックし、[Account (取引先)] (2) を選択します。
[FIELDS (項目)] タブ
[FIELDS (項目)] タブでは、更新する Salesforce オブジェクトに入力データを対応付けます。
[INPUT JSON PATH (入力 JSON パス)] (1) で Salesforce オブジェクトに書き込むデータを含む JSON ノードのキーを指定します。[DOMAIN OBJECT FIELD (ドメインオブジェクト項目)] (2) で更新する Salesforce オブジェクトの項目を指定します。
- JSON を取得します。OmniScript を実行すると、インタラクションに必要なデータが読み込まれる Data JSON が作成されます。これが OmniStudio Data Mapper Load の入力データとして使用する OmniScript JSON です。OmniScript JSON は OmniScript の [Action Debugger (アクションデバッガー)] の [Request Data (要求データ)] ペインに表示されます。
- この JSON を [Input JSON (入力 JSON)] パネル (3) に貼り付けて入力対応付けを作成し、次に [Quick Match (クイックマッチ)] ボタン (4) を使用して入力対応付けをオブジェクトの項目と一致させます。
[PREVIEW (プレビュー)] タブ
[PREVIEW (プレビュー)] タブでは、OmniStudio Data Mapper の出力をテストします。
[Input (入力)] パネル (1) で OmniScript JSON の入力に変更を加えます。たとえば、取引先の電話番号や Web サイトを変更します。[Objects Created (作成されたオブジェクト)] (2) には作成されたオブジェクトが表示され、このオブジェクトは恒久的に保存されます。
作成か更新か: OmniStudio Data Mapper Load での決定方法
OmniStudio Data Mapper Load では、既存のデータの上書き、または新規レコードの作成 (そのデータがまだ存在していない場合) のいずれかの方法で、更新内容が Salesforce 内のレコードに保存されます。レコードを更新または挿入するこのプロセスを「更新/挿入」と呼びます。
OmniStudio Data Mapper の [FIELDS (項目)] の対応付けでは、[Upsert Key (更新/挿入キー)] (1) チェックボックスをオンして、任意の項目を更新/挿入キーとして指定することができます。その場合、Salesforce 内の一意のレコードに一致する必要があります。
データがどのように更新/挿入されるかを制御するには、[Is Required For Upsert (更新/挿入に必須)] チェックボックスをオンにします。このチェックボックスをオンにすると、指定した項目にデータがない場合、レコードは更新/挿入されません。OmniStudio Data Mapper の [FIELDS (項目)] の対応付けでは、任意の項目を [Is Required For Upsert (更新/挿入に必須)] として指定することもできます。その場合、更新/挿入が行われるには、指定した項目にデータが存在していなければなりません。
では、[FIELDS (項目)] タブのこの AccountId の対応付けがどう動作するかを見てみましょう。
OmniStudio Data Mapper Load は、データの保存方法を決定する前に 2 つの条件をチェックします。
- 新しいレコードの [Is Required For Upsert (更新/挿入に必須)] 対象項目すべてにデータが入力されているか。
- 新しいレコードの [Upsert Key (更新/挿入キー)] 対象項目すべてが、Salesforce 内の一意のレコードと一致するか。
2 つの条件を組み合わせると、プロセスは次のようになります。
- OmniStudio Data Mapper Load は Input JSON 内の各オブジェクトの各項目を確認します。
- 項目が [Is Required For Upsert (更新/挿入に必須)] としてマークされている場合、その項目にデータがあるかどうかがチェックされます。
- すべての [Is Required For Upsert (更新/挿入に必須)] 対象項目にデータがなければなりません。データがない場合、そのレコードはスキップされます。
- 項目にデータがある場合、OmniStudio Data Mapper Load はその項目が更新/挿入キーかどうかをチェックし、更新/挿入キーであるすべての項目を比較します。
- 更新/挿入キーのすべてが Salesforce 内の既存のレコードの項目と一致した場合は、重複レコードを作成せずに対象レコードが更新されます。
- 既存のレコードに一致する項目が見つからなかった場合は、新しいレコードが作成されます。
この単元では、OmniStudio Data Mapper について詳しく説明しました。ただし、これは OmniStudio Data Mapper ジャーニーの始まりにすぎません。引き続きこのトレイルの他のモジュールに進み、他の種類の OmniStudio Data Mapper を作成する方法を学習することをお勧めします。