Skip to main content

DataRaptor Turbo Extract と DataRaptor Load を作成する

学習の目的

この単元を完了すると、次のことができるようになります。

  • DataRaptor Turbo Extract を作成する。
  • DataRaptor Load を作成する。
  • DataRaptor Load でレコードを作成するか更新するかがどう決まるかを説明する。

次は、シンプルなガイド付きユーザーインタラクションを示しています。ユーザーが取引先の電話番号や Web サイトなど、基本的なカスタマー取引先の詳細を更新します。ユーザーは Edit Account OmniScript のガイドに従ってプロセスを実行すればよいので、複雑な機能がバックグラウンドで実行されていても、ステップ自体は直観的で容易に完了できます。 

[Name (名前)]、[Phone (電話)]、[Website (Web サイト)] 項目が表示されている Edit Account OmniScript

では、ユーザーには表示されない複雑な機能について考えてみましょう。このインタラクションで使用する項目には、どのようにしてデータが表示されるのでしょうか? 更新されたデータはどのようにして保存されるのでしょうか? この機能は DataRaptor が担っています。取引先オブジェクトからデータを取得するのが DataRaptor Turbo Extract で、更新されたデータを元の取引先オブジェクトに保存するのが DataRaptor Load です。この単元では、この 2 つの DataRaptor を作成する方法を学習します。

準備はいいですか? では始めましょう。

DataRaptor Turbo Extract を作成する

前の単元では、DataRaptor を設定する準備が整ったら、OmniStudio アプリケーションの [OmniStudio DataRaptors] タブからアクセスできる OmniStudio DataRaptor Designer を使用することを学習しました。 

DataRaptor Turbo Extract を作成する場合は、DataRaptor Designer の次のタブを使用して、Turbo Extract で実行する処理を指定します。 

  • [EXTRACT (抽出)] タブ
  • [PREVIEW (プレビュー)] タブ

では、これらのタブを詳しく見ていき、タブで実行する必要があるステップの概要を把握しましょう。 

[EXTRACT (抽出)] タブ

[EXTRACT (抽出)] タブでは、次を行う必要があります。

  • DataRaptor でクエリする Salesforce オブジェクト (sObject) を指定する。
  • オブジェクトから取得されるデータを判断する検索条件を設定する。
  • 抽出する項目を指定する。

Edit Account OmniScript の例を使って、上記の設定を行う手順を説明します。 

  1. Edit Account OmniScript では、取引先オブジェクトからデータを抽出する必要があるため、ソースオブジェクトとして [Account (取引先)] を選択します。取引先オブジェクトからデータを抽出するように設定された [EXTRACT (抽出)] タブ
  2. [Extract Output Path (抽出出力パス)] (1) では、出力の最上位の JSON ノードを指定します。これは通常ソースオブジェクトと同じであるため、[Extract Output Path (抽出出力パス)] 項目に Account と入力します。
  3. 読み取り対象のデータを判断する検索条件を作成します。検索条件はソースオブジェクト (2) と比較演算子 (3)、および引用符で囲んだリテラル値か、入力パラメーターか、同じソースオブジェクトの別の項目 (4) という 3 つの項目で構成されます。この例では、Edit Account OmniScript のデータを取得するため、3 つの項目に Id = AccountId と入力します。
  4. [SEARCH FIELDS (項目を検索)] で、右矢印を使用して [Name (名前)][Phone (電話)][Website (Web サイト)] を選択します。これらが抽出する項目です。
  5. [SEARCH FIELDS (項目を検索)] (5) ボックスに項目リストを絞り込むための値を入力できます。Id 項目 (6) は常に出力に含まれています。

[PREVIEW (プレビュー)] タブ

[PREVIEW (プレビュー)] タブで DataRaptor の入力と出力をテストします。 

[PREVIEW (プレビュー)] タブの設定

[Input Parameters (入力パラメーター)] パネル (1) の [Key (キー)] に AccountId、[Value (値)] に取引先の RecordId を入力して、キーと値のペアを指定します (RecordId を調べる方法は次に説明します)。DataRaptor Turbo Extract を実行すると、データが正しく抽出されていることを確認するために [Response (応答)] (2) ペインに結果が返されます。

Salesforce 内のすべてのレコードには一意の RecordId があります。取引先の RecordId は、組織で取引先レコードを開き、URL から RecordId をコピーするだけで簡単に取得できます。 

URL に表示されている取引先の RecordId。

これで Salesforce オブジェクトからレコードを取得する方法がわかりました。次は DataRaptor Load を使用して、更新されたデータをオブジェクトに保存する方法を見てみましょう。

DataRaptor Load を作成する

DataRaptor Load を作成する場合は、DataRaptor Designer の次のタブを使用して、DataRaptor Load で実行する処理を指定します。

  • [OBJECTS (オブジェクト)] タブ
  • [FIELDS (項目)] タブ
  • [PREVIEW (プレビュー)] タブ

では、上記のタブを設定して DataRaptor Load を作成する手順を見ていきましょう。

[OBJECTS (オブジェクト)] タブ

[OBJECTS (オブジェクト)] タブでは、更新する Salesforce オブジェクトを指定します。 

[OBJECTS (オブジェクト)] タブで Salesforce オブジェクトを選択します。

取引先オブジェクトにデータを書き込むので、[+ Add Object (+ オブジェクトを追加)] (1) をクリックし、[Account (取引先)] (2) を選択します。

[FIELDS (項目)] タブ

[FIELDS (項目)] タブでは、更新する Salesforce オブジェクトに入力データを対応付けます。

[INPUT JSON PATH (入力 JSON パス)] (1) で Salesforce オブジェクトに書き込むデータを含む JSON ノードのキーを指定します。[DOMAIN OBJECT FIELD (ドメインオブジェクト項目)] (2) で更新する Salesforce オブジェクトの項目を指定します。 

  1. JSON を取得します。OmniScript を実行すると、インタラクションに必要なデータが読み込まれる Data JSON が作成されます。これが DataRaptor Load の入力データとして使用する OmniScript JSON です。OmniScript JSON は OmniScript の [Action Debugger (アクションデバッガー)] の [Request Data (要求データ)] ペイン (1) に表示されます。
  2. この JSON を [Input JSON (入力 JSON)] パネル (3) に貼り付けて入力対応付けを作成し、次に [Quick Match (クイックマッチ)] ボタン (4) を使用して入力対応付けをオブジェクトの項目と一致させます。

[PREVIEW (プレビュー)] タブ

[PREVIEW (プレビュー)] タブでは、DataRaptor の出力をテストします。 

[Input (入力)] パネル (1) で OmniScript JSON の入力に変更を加えます。たとえば、取引先の電話番号や Web サイトを変更します。[Objects Created (作成されたオブジェクト)] (2) には作成されたオブジェクトが表示され、このオブジェクトは恒久的に保存されます。

作成か更新か: DataRaptor Load での決定方法

DataRaptor Load では、既存のデータの上書き、または新規レコードの作成 (そのデータがまだ存在していない場合) のいずれかの方法で、更新内容が Salesforce 内のレコードに保存されます。レコードを更新または挿入するこのプロセスを「更新/挿入」と呼びます。 

DataRaptor の [FIELDS (項目)] の対応付けでは、[Upsert Key (更新/挿入キー) (1) チェックボックスをオンして、任意の項目を更新/挿入キーとして指定することができます。その場合、Salesforce 内の一意のレコードに一致する必要があります。 

データがどのように更新/挿入されるかを制御するには、[Is Required For Upsert (更新/挿入に必須)] チェックボックスをオンにします。このチェックボックスをオンにすると、指定した項目にデータがない場合、レコードは更新/挿入されません。DataRaptor の [FIELDS (項目)] の対応付けでは、任意の項目を [Is Required For Upsert (更新/挿入に必須)] として指定することもできます。その場合、更新/挿入が行われるには、指定した項目にデータが存在していなければなりません。

では、[FIELDS (項目)] タブのこの AccountId の対応付けがどう動作するかを見てみましょう。

DataRaptor Load は、データの保存方法を決定する前に 2 つの条件をチェックします。 

  1. 新しいレコードの [Is Required For Upsert (更新/挿入に必須)] 対象項目すべてにデータが入力されているか。
  2. 新しいレコードの [Upsert Key (更新/挿入キー)] 対象項目すべてが、Salesforce 内の一意のレコードと一致するか。

2 つの条件を組み合わせると、プロセスは次のようになります。

  1. DataRaptor Load は Input JSON 内の各オブジェクトの各項目を確認します。
    1. 項目が [Is Required For Upsert (更新/挿入に必須)] としてマークされている場合、その項目にデータがあるかどうかがチェックされます。
    2. すべての [Is Required For Upsert (更新/挿入に必須)] 対象項目にデータがなければなりません。データがない場合、そのレコードはスキップされます。
  2. 項目にデータがある場合、DataRaptor Load はその項目が更新/挿入キーかどうかをチェックし、更新/挿入キーであるすべての項目を比較します。
    1. 更新/挿入キーのすべてが Salesforce 内の既存のレコードの項目と一致した場合は、重複レコードを作成せずに対象レコードが更新されます。
    2. 既存のレコードに一致する項目が見つからなかった場合は、新しいレコードが作成されます。

この単元では、DataRaptor について詳しく説明しました。ただし、これは DataRaptor ジャーニーの始まりにすぎません。引き続きこのトレイルの他のモジュールに進み、他の種類の DataRaptor を作成する方法を学習することをお勧めします。 

メモ

DataRaptor 名前付け規則は lowerCamelCase 形式である必要があります。

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる