動的にフィルタリングされたカード表示を作成する
レコードを表示するインタラクティブなカードレイアウトを作成し、表示されているカードを名前でフィルタリングするドロップダウンを追加し、各カードが選択されたときに別の UI ビルダー ページで全レコードを開くように構成します。
始める前に
必要なロール:ui_builder_admin
このタスクについて
この例では、カスタムレイアウトでレコード情報を表示できるように、データをコンポーネントにバインドする方法を示します。たとえば、レコードを従来のリストビューではなく、選択可能なカードとして表示できます。この手順では、データはインシデントテーブルから取得されます。
- ドロップダウン:表示されているカードを発信者名でフィルタリングします。
- カードベースコンテナ:個々のカードコンテンツを保持し、クリックインタラクションを有効にします。
- 見出し:レコード番号を表示します。
- ラベル値:発信者名を静的ラベル付きで表示します (「Caller:「」)。
- 定型テキスト:レコードの簡単な説明が表示されます。
- ハイライト表示される値:レコードの優先度レベルを、スクリプトを介して適用された色のスタイルとともに表示します。
| コンポーネント | ドキュメントリンク |
|---|---|
| カードベースコンテナ | |
| ドロップダウン | |
| 見出し | |
| ハイライト表示される値 | |
| ラベル値 | |
| 定型テキスト |
手順
データリソースにリンクされたリピーターを追加し、各レコードを表示するカードコンテナを作成します。
- 移動先 すべて > Now Experience フレームワーク > UI ビルダー.
-
作業するエクスペリエンスを開くか、または選択してエクスペリエンスを作成します 作成 > エクスペリエンス.
エクスペリエンスの作成の詳細については、「UI ビルダー でユーザーがアプリケーションをどのように操作するかを構成する」を参照してください。
-
ページを最初から作成します。
ページを作成する方法の詳細については、「UI ビルダーでのページの作成」を参照してください。
-
インシデントテーブルからレコードをプルするデータリソースを作成します。
データリソースは、テーブルとレコードのデータをページに公開します。この例では、インシデントテーブルからレコードをプルするデータリソースを追加し、コンポーネントを使用して表示できるようにします。詳細については、「ページへのデータリソースの追加と構成」を参照してください。
- [データとスクリプト] ドロワーの [データリソース] で、 [+ データリソースを追加] を選択します。
- [ 複数のレコードを検索] を選択し、[ 追加] を選択します。
- look_up_multiple_records_1 ID を選択して [データリソースの詳細] フォームを開きます。
-
[ データリソースラベル ] フィールドのテキストを 「インシデントルックアップ」に置き換えます。
[ データリソース ID ] フィールドに自動入力されます。
- [Apply (適用)] を選択します。
-
[ インシデントを編集] ルックアップ ダイアログで、次のフィールドに入力します。
フィールド アクション テーブル インシデントと入力し、リストから選択します。 フィールドを返す - [+ 追加] を選択します。
- 「Caller」と入力し、選択して [選択済み] 列に追加し、検索ボックスをオフにします。
- [ 優先度] と [簡単な説明] について上記の手順を繰り返します。
- [Apply (適用)] を選択します。
結果の最大数 「25」を入力します。 - 右上の [X ] を選択してダイアログを閉じます。
- [Save (保存)] を選択します。
-
コンポーネントを保持する単一列レイアウトを追加します。
- コンテンツツリーの [本文] で、[ + コンテンツを追加] を選択します。
- [ 単一列] を選択し、[ + 追加] を選択します。
-
コンテンツツリーで 列 1 を選択した状態で、構成パネルの [レイアウト ] に移動し、[ 方向] を [行] に設定します。
-
データバインディングを使用して、ページにリピーターを追加して構成します。
データバインディングは、データリソースによって公開されるデータをコンポーネントに関連付けるプロセスです。この例では、 インシデントルックアップ データリソースの結果をリピーターコンポーネントのデータ アレイ プロパティにバインドします。詳細については、「データコンポーネントを接続する」を参照してください。
- コンテンツツリーの 列 1 で、[ + コンテンツを追加] を選択します。
- 「 リピーター」と入力し、ツールボックスで選択して 、[追加] を選択します。
- [ キャンセル ] を選択してプリセットウィンドウを閉じます。
-
[リピーター 1] を選択した状態で、構成パネルで [データアレイ] フィールドにカーソルを合わせ、[データをバインド] アイコン
を選択します。
- [ データをデータ配列にバインド (Bind data to Data array )] ダイアログの [ データ型 (Data types)] で、[ データリソース] を選択します。
-
[インシデント] ルックアップピルを選択し、結果ピルをダブルクリックまたはドラッグして、上の領域に移動します。
図 : 2. データをデータアレイにバインド - [ 適用] を選択してバインディングを確定します。
-
構成パネルで、[ スタイル ] タブを選択し、[ スタイルを有効にする] を選択して、フィールドに入力します。
フィールド 値 タイプ Grid (グリッド) 列 4 ギャップ S - [Save (保存)] を選択します。
-
カード表示を作成します。
- コンテンツツリーの [リピーター 1] で、[ + コンテンツを追加] を選択します。
- 「カードベースコンテナ」と入力し、コンポーネントを選択して、[+ 追加] を選択します。
- 構成パネルで、[ 構成 ] タブを選択し、[ インタラクション] を [クリック] に設定します。
- 構成パネルで、[ スタイル ] タブを選択し、[ 幅 ] を 300px に設定します。
-
[ 高さ] を 200px に設定します。
各カードにコンポーネントを追加し、適切なフィールドをバインドしてレコードの詳細を表示するように構成します。
-
コンポーネントをカードベースコンテナに追加します。
- コンテンツツリーの [ カードベースコンテナ 1] で、[ + コンテンツを追加] を選択します。
-
以下のコンポーネントを以下の順序で追加し、構成パネルでそれぞれを編集します。
ヒント:すべてのコンポーネントをカードベースコンテナでネストしたままにするには、最初のコンポーネントを追加してから、後続の各コンポーネントの構成アイコン
から [後に追加] を使用します。
プリセットウィンドウが表示された場合は、[ キャンセル ] を選択して閉じます。
- 見出し:初期設定は不要
- ラベル値:[構成] タブの [ラベル] フィールドに「Caller」と入力します。
- 定型テキスト:[構成] タブで、HTML タグを [段落] に設定します
- ハイライト表示される値: [スタイル ] タブで、[ 幅 ] を 100px に設定します
- [Save (保存)] を選択します。
-
インシデントレコードのデータを、前のステップで追加したコンポーネントにバインドします。
コンポーネント フィールド パス 見出し ラベル displayValue >数値>値ラベル値 値 displayValue > caller_id >値定型テキスト テキスト displayValue > short_description >値ハイライト表示される値 ラベル 優先度> displayValue >値- コンテンツツリーで、テーブルにリストされているコンポーネントを選択します。
-
構成パネルの [構成] タブで、指定したフィールドにカーソルを合わせ、[データをバインド] アイコン
を選択します。
-
データバインディングモーダルで、次の操作を行います。
- 左側の [データ型] で [リピーター] を選択します。
- 右側の [ピルビュー] で、各ピルを順番に選択して、テーブルにリストされているパスに従います (たとえば、[見出し] の場合は、 value、[ number]、[ displayValue]、[displayValue] の順に選択します)。
- 最後のピル (displayValue) に到達したら、ダブルクリックまたはドラッグして上の領域に移動し、[ 適用] を選択します。
-
テーブルの各行に対してこのプロセスを繰り返します。
- [Save (保存)] を選択します。
-
スクリプトを使用して、各レコードの優先度の色を定義します。
- コンテンツツリーで、[ ハイライト表示される値 1] を選択します。
-
構成パネルの [構成] タブで、[ 色 ] にカーソルを合わせ、[データをバインド] アイコン
を選択します。
-
右上の [ スクリプトを使用 ] アイコン
を選択します。
-
既存のコードを次のように置き換えます。
function getPriorityColor(record) { let priority = record.api.item.value.priority.value; switch (priority) { case '1': return 'critical'; case '2': return 'high'; case '3': return 'moderate'; case '4': return 'low'; case '5': return 'gray'; default: return 'gray'; } } - [Apply (適用)] を選択します。
ハイライト表示された値の色がレコードの優先度に応じて変化することを確認します。
ドロップダウンイベントを構成して、クライアントステータスパラメーターを更新し、データリソースを更新してカード表示をフィルタリングします。
-
ユーザーの選択を追跡するためのクライアントステータスパラメーターを作成します。
クライアントステータスパラメーターは、コンポーネントがイベントをトリガーするときに変更できます。詳細については、「クライアントステータスパラメーター」を参照してください。
- [ データとスクリプト] ドロワーの [クライアントステータスパラメーター] の横にある [ + ] アイコンを選択します。
-
[ クライアントステータスパラメーターの編集 (Edit client state parameters )] ダイアログで、次のフィールドに入力します。
- 名前: selected_caller
- タイプ: 文字列
- 初期値:空
- [Apply (適用)] を選択します。
-
データリソースを編集して、クライアントステータスパラメーターを条件値として使用します。
- [データとスクリプト] ドロワーで、インシデントルックアップデータリソースを選択します。
-
[条件を編集 (Edit conditions)] を選択します。
- [ 条件] ダイアログの最初のフィールドに「 Caller」 と入力し、リストから選択します。
- 2 番目のフィールドはそのままにします。
-
3 番目のフィールドにカーソルを合わせ、[データをバインド] アイコン
を選択します。
-
データバインディングモーダルで、[ クライアントステータス] を選択し、
selected_callerピルをダブルクリックまたはドラッグして上の領域に移動します。 - [ 適用] を選択してバインディングを確定します。
-
[ 適用] を選択して条件を保存します。
- 右上の [X ] を選択して、 インシデントルックアップ ダイアログを閉じます。
-
ユーザーテーブルからユーザーをクエリするための 2 番目のデータリソースを作成します。
- [ データとスクリプト] ドロワーで [ +] を選択し、[ データリソース] を選択します。
- [ 複数のレコードを検索] を選択し、[ 追加] を選択します。
-
look_up_multiple_records_1 ID を選択して [データリソースの詳細] フォームを開きます。
-
[ データリソースラベル ] フィールドのテキストを sys_user_lookupに置き換えます。
[ データリソース ID ] フィールドに自動入力されます。
- [Apply (適用)] を選択します。
-
[ sys_user_lookupを編集 ] ダイアログで、次のフィールドに入力します。
フィールド アクション テーブル ユーザー (sys_user) と入力し、リストから選択します。 フィールドを返す - [+ 追加] を選択します。
- 「名前」を入力し、リストから選択して [選択済み] 列に追加します。
- [Apply (適用)] を選択します。
順番 名前を入力し、リストから選択します。 結果の最大数 「250」と入力します。 - 右上の [X ] を選択してダイアログを閉じます。
- [Save (保存)] を選択します。
このデータリソースは、ユーザーテーブルからユーザーを検索します。次のステップで、このデータを参照してドロップダウンに入力します。 -
ドロップダウンコンポーネントを追加して構成します。
-
コンテンツツリーで、[ 列レイアウト 1 ] にカーソルを合わせ、[ 構成] アイコン
を選択します。
- [Add before (前に追加)] を選択します。
- ドロップダウン を検索し、ツールボックスから選択して 、[追加] を選択します。
-
構成パネルで、指定されたタブに移動し、次のフィールドを構成します。
タブ アクション 構成 [プレースホルダー] テキストフィールドで、次のように入力します。 発信者を選択します。 構成 [ バリアント] フィールドで、次の操作を行います。 [ プライマリ] を選択します。 構成 [リストアイテム] フィールドで、次の操作を行います。 - フィールドにカーソルを合わせ、[データをバインド] アイコン
を選択します。
- データバインディングモーダルで、[ スクリプトを使用 ] アイコン
を選択します。
- 既存のコードを次のように置き換えます。ヒント:コードの書式設定アイコン
を選択すると、コードが読みやすくなります。
function evaluateProperty({ api, helpers }) { const userArray = api.data.sys_user_lookup.results; let outputArray = []; for (let i = 0; i < userArray.length; i++) { const obj = { 'id': `${userArray[i]._row_data.uniqueValue}`, 'label': `${userArray[i].name.displayValue}` }; outputArray.push(obj); } return outputArray; } - [Apply (適用)] を選択します。
スタイル 幅: 200 を入力します。 スタイル パディング: 「 パディング」を選択してから、リストから 「M 」を選択します。 - フィールドにカーソルを合わせ、[データをバインド] アイコン
-
コンテンツツリーで、[ 列レイアウト 1 ] にカーソルを合わせ、[ 構成] アイコン
-
作成したクライアントステータスパラメーターを変更できるように、ドロップダウンをイベントで構成します。
- コンテンツツリーで ドロップダウン 1 を選択した状態で、構成パネルの [イベント ] タブを選択し、[ イベントマッピングの追加] を選択します。
- [ 選択したアイテムが変更されました] イベントを選択し、[ 続行] を選択します。
- [ クライアントステータスパラメーターの設定 ] ハンドラーを選択し、[ 続行] を選択します。
-
次のプロパティを設定します。
フィールド アクション クライアントステータスパラメーター名 リストから selected_caller を選択します。 イベントをトリガーした後に使用する値 - フィールドにカーソルを合わせ、[データをバインド] アイコン
を選択します。
- [ピルビュー] で、値ピルをダブルクリックまたはドラッグして、上の領域に移動します。
- [ 適用] を選択してバインディングを確定します。
- [Add (追加)] を選択します。
- フィールドにカーソルを合わせ、[データをバインド] アイコン
- 構成パネルの [イベント] タブで、前の手順で追加したイベントの下にある [ ハンドラーの追加 ] を選択します。
-
[Incident lookup (1)] を見つけて REFRESH ハンドラーを選択し、[Continue (続行)] を選択します。
- [Add (追加)] を選択します。
- [Save (保存)] を選択します。
ドロップダウンを設定した後、発信者を選択すると、selected_callerクライアントステータスパラメーターが更新され、データリソースが更新されてその発信者のレコードが表示されます。
各カードを選択すると、リピーターデータのsys_idを使用してレコードページが開くように構成します。
-
エクスペリエンスにレコードを開く別のページを作成します。
- 左上のエクスペリエンスの名前 (「デモエクスペリエンス」など) を選択して、エクスペリエンスビューに戻ります。
- [ページ] の横にある [+] を選択し、[新しいページの作成] を選択します。
- [ 標準レコード テンプレート] にカーソルを合わせ、[ テンプレートを使用] を選択します。
- ページに 「インシデントレコードページ」 という名前を付け、[ 続行] を選択します。
- [ よさそうですね]を選択し、[ 作成]を選択します。
- 左上のエクスペリエンスの名前を選択し、エクスペリエンスビューからページを選択して、元のページに戻ります。
-
カードにイベントを追加して、カードを選択すると作成したページでそのレコードが開くようにします。
- コンテンツツリーで [カードベースコンテナ 1 ] を選択します。
- 構成パネルで、[ イベント] タブを選択し、[ イベントマッピングの追加] を選択します。
- カードクリックイベントを選択し、[続行] を選択します。
- [ ページを開く] または [URL] ハンドラーを選択し、[ 続行] を選択します。
- 現在のエクスペリエンスのページを選択します。
- [ インシデントレコードページ] を選択します。
-
フォームのフィールドに入力します。
フィールド アクション テーブル インシデントを入力する sysId - [sysId] フィールドにカーソルを合わせ、[データをバインド] アイコン
を選択します。
- 左側の [データ型 ] を見つけて、[ リピーター] を選択します。
- ピルビューで、[値]、[_row_data] の順に選択し、[uniqueValue] をダブルクリックします。
- [Apply (適用)] を選択します。
- [sysId] フィールドにカーソルを合わせ、[データをバインド] アイコン
-
[ 選択] を選択します。
- [ 新しいタブで開く ] プロパティを有効にするには、チェックボックスをオンにします。
- [Add (追加)] を選択します。
- [Save (保存)] を選択します。
-
ページをプレビューしてテストします。
- [プレビュー] を選択します。
-
ドロップダウンで、「Fred Luddy」、「Carol Coughlin」、「Bow Ruggeri」などのユーザーを選択して、カードをフィルタリングします。
注:一部のユーザーは関連するインシデントレコードを持っていないため、それらのユーザーを選択してもカードは表示されません。
- カードを選択すると、新しいタブに全レコードが表示されます。