Type Ahead Block 用の Data Mapper Extract を作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- OmniScript で Type Ahead Block がどのように機能するか説明する。
- Type Ahead Block 用の Data Mapper Extract を構築する。
- OmniScript で Data Mapper Extract Action を設定する。
Type Ahead Block の仕組み
入力項目にタイプしている途中で表示された結果のリストから、レコードを選択したことはありませんか? 入力項目に候補を表示するのがタイプアヘッド機能です。OmniScript Designer では、Type Ahead Block 要素を使用してこの UI の動作を設定します。この特殊なブロック要素は、ブロック内のデータ要素やそのデータソースと連携して動作します。
次の Type Ahead Block では、ユーザーが最初の項目に文字を入力したときに、2 つの取引先責任者名が結果として表示されています。
Type Ahead Block 要素で、使用する検索パラメーターを定義します。このデータ要素によってどの情報がデータソースに送られるかが決まります。ユーザーが項目に 1 文字入力するごとに、データソースでパラメーターと一致する値が検索され、一致候補がリスト表示されます。ユーザーはその結果リストから選択します。
Type Ahead Block を使用する場合、検索語が表示されるだけではありません。ブロックに項目を追加すれば、さらなるデータを取得するデータソースを簡単に設定できます。ユーザーがタイプアヘッド項目のリストから選択すると、OmniScript にそのレコードに関連する追加情報が表示されます。つまり、OmniScript を使用しているユーザーが取引先責任者を名前で検索でき、その名前を選択すると、取引先責任者の名前、メールアドレス、電話番号が表示されるということです。
Type Ahead Block 用の Data Mapper Extract を作成する
単元 1 で Data Mapper Extract の構築方法について学習しました。ここでは、Type Ahead Block 用の DataRaptor Extract を作成する方法を説明します。この場合は、Data Mapper Designer の [Extract (抽出)] と [Output (出力)] の 2 つのタブを使用します。
[Extract (抽出)] タブ
では、[Extract (抽出)] タブから始めましょう。
- [Extract (抽出)] タブで、Data Mapper が照会する Salesforce オブジェクトに [Contact (取引先責任者)] を選択します。
- [Extract Output Path (抽出出力パス)] に
ChangeContact
と入力します。これは、Data Mapper が検索する必要のある着信 JSON ノードの名前です。
- オブジェクトから読み込むべきデータを絞り込む検索条件を作成します。この例の検索条件は [AccountID] [=] [Account ID (取引先 ID)] です。
- 検索を拡張するために、[Extract (抽出)] 検索条件のドロップダウンアイコン (1) をクリックし、[AND] を選択して 2 つ目の検索条件 (2) を追加します。
- この検索条件は、[Name (名前)] [LIKE] [LookupKey] と設定します。
- ドロップダウンアイコンをもう一度クリックし、3 つ目の検索条件 (3) として今度は [LIMIT] を追加します。
-
10
と入力します。これでクエリ結果のレコード数が 10 件に制限されます。ユーザーが 1 文字入力するごとにクエリが実行されるため、クエリが広範に及ぶ場合は、結果を 1 文字または 2 文字に制限することを検討します。
[Output (出力)] タブ
[Output (出力)] タブでは、前述のとおり、Extract Step JSON のデータを Output JSON に対応付けます。エンドユーザーがタイプアヘッド項目のリストから名前を選択すると、OmniScript にその取引先責任者の名前とメールアドレスが表示されます。
- 名前については、[Extract JSON Path (抽出 JSON パス)] に
ChangeContact:Name
(1) と入力します。
- [Output JSON Path (出力 JSON パス)] には
ChangeContactNameKey
(2) と入力します。
Data Mapper を構築し終えた後の次のステップは、Data Mapper Extract Action を使用して、その Data Mapper を Type Ahead Block に追加することです。
Type Ahead Block で Data Mapper Extract Action を設定する
OmniScript の Type Ahead Block で Data Mapper Extract Action を設定する場合、2 つの入力パラメーターを指定する必要があります。
-
[Data Source (データソース)] (1) では、情報を検索する場所をシステムに指示します。この例のデータソースは、ContextId と TAChangeContact です。
-
[Filter Value (検索条件値)] (2) は、指定の要素にエンドユーザーが入力した内容に基づいて一致する値を表示します。この例の検索条件値は AccountId と LookupKey です。
Type Ahead Block をシームレスに機能させるには、このブロックの Data Mapper に 2 つの入力パラメーターを追加する必要があります。
- Data Mapper が取引先に関連する取引先責任者のみを検索するようにする場合は、コンテキストを特定の取引先に限定します。取引先責任者を識別する一番の方法は AccountId (1) です。(幸い、これはすでに OmniScript の JSON の中にあります)。
- 検索の実行に何を使用するかを定義する 2 つ目のパラメーターも追加する必要があります。データソースとはエンドユーザーがタイプアヘッド項目に入力するもので、検索条件値は LookupKey (2) です。
この場合のデータソースは Data Mapper で、パラメーターと一致する値が検索されます。DataRaptor で LookupKey がオブジェクトの適切な項目に結び付けられていることを確認します。ここでは、取引先責任者名 (3) を使用します。もう 1 つ重要な点は、Output JSON Path で、Data Mapper が OmniScript に返すキーを JSON でどのように識別するか指定することです。ここでは、ChangeContactNameKey (4) を使用して指定しています。
Data Mapper を設定できたら、Type Ahead Block プロパティを設定して Data Mapper とリンクします。この設定によってすべてが連動します!
- Type Ahead Block の [Properties (プロパティ)] パネルで、Data Mapper の Output JSON Path で定義したものと完全一致するキーの名前を [Type Ahead Key (タイプアヘッドキー)] 項目 (4) に入力します。
- 入力ミスを防ぐために、[Action Debugger (アクションデバッガー)] の [Response (応答)] ノードの JSON の名前をコピーします。これで、問題なく動作するために必要なプロパティを使用して Type Ahead Block を設定できました。
では、この実際の動作を確認してみましょう。
- OmniScript の [Preview (プレビュー)] をクリックして、ContextId に AccountId を入力します。
-
[Change Primary Contact (主取引先責任者を変更)] ラジオボタンを選択します。
- [Start Typing Contact Name (取引先責任者名の入力開始)] 項目に、
e
と入力します。取引先の取引先責任者が表示されていることを確認します。
おつかれさまでした。ところで、主取引先責任者を変更した場合はどうなるのでしょうか? 後続の 2 つの単元では、条件付きの Data Mapper Load を使用して Integration Procedure を構築するという方法で、OmniScript のこの分岐と他の 2 つの分岐の更新済みデータを保存する方法を学習します。
リソース