ケースコメントを表示して送信する
この単元を完了すると、次のことができるようになります。
- FlexCard に Datatable 要素を構成する。
- FlexCard からのコールバックロジックを元の OmniScript にリンクする。
Vijay はついに、ユーザーがケースコメントを表示したり、作成したりする Case Management (ケース管理)OmniScript の 2 ページ目に取り組む準備が整いました。Vijay はまず、このステップの要件を確認します。
カスタマーサービスエージェントとして、ケースを選択したら、2 ページ目に移動し、次の操作を実行できるようにしたいと考えています。
- 既存のケースコメントを表形式で表示する。
- 新規コメントを送信すると、ただちに既存のコメントのテーブルに表示される。
Vijay はすでに、Case Management (ケース管理) OmniScript に 2 番目の Manage Case Comments (ケースコメントを管理) ステップを追加しています。このステップでは、次のタスクを完了する必要があります。
- OmniScript デザイナーを使用して次の操作を行います。
- ケースコメント用の Text Area コンポーネントを追加します。
- DataRaptor Post Action を追加して、ボタンとして表示します。
- 新規ケースコメントを保存する DataRaptor Load に Post Action をリンクします。
- FlexCard デザイナーを使用して、Datatable 要素を設定した FlexCard を作成します。
- Datatable FlexCard を含むカスタム Lightning Web コンポーネントを作成します。
- このカスタム Lightning Web コンポーネントを Case Management (ケース管理) OmniScript にリンクします。
Manage Case Comments (ケースコメントを管理) ステップの構成
Manage Case Comments (ケースコメントを管理) ステップの構造を確認しましょう。
Manage Case Comments (ケースコメントを管理) ステップは、次のコンポーネントで構成されます。
- ケースコメントを入力する Text Area 入力要素 (1)
- コメントを送信して保存する DataRaptor Post Action (2)
- カスタム Lightning Web コンポーネントを OmniScript にリンクする Custom LWC (3) 要素
テキストエリアのプロパティを構成します。
- [Name (名前)] 項目 (1) に
CaseComments
と入力します。
- [Field Label (項目表示ラベル)] (2) に
Enter Case Comment
(ケースコメントを入力) と指定します。
- [Placeholder (プレースホルダー)] (3) に
Enter Case Comment…
(ケースコメントを入力…) と入力します。このテキストはユーザーにコメントの入力を促すメッセージで、デフォルトでユーザーに表示されます。
DataRaptor Post Action のプロパティを構成します。
- [Name (名前)] (1) に
CreateCaseComment
と入力します。
- [Field Label (項目表示ラベル)] (2) に
Submit
(送信) と入力します。
- [DataRaptor Interface (DataRaptor インターフェース)] 項目 (3) で [sampleCreateComment] を選択します。この DataRaptor Load はケースコメントデータを保存します。
[DataRaptor Post Action Properties (DataRaptor Post Action のプロパティ)] の [Messaging Framework (メッセージングフレームワーク)] セクションを拡張します。
-
[Pub/Sub] チェックボックス (1) をオンにして、OmniScript とカスタム Lightning Web コンポーネントが通信できるようにします。
- メッセージのキー/値ペアを次のとおり設定します。[Key (キー)] (2) に
caseCommentCreated
、[Value (値)] (3) に%DRId_CaseComment%
と入力します。
Vijay は FlexCard デザイナーを開いて Datatable FlexCard を作成します。
ケースコメント用の Datatable FlexCard
Case Comment Datatable FlexCard には FlexCard の標準の Datatable 要素があり、3 つの列が設定されています。
データソースを構成する
Vijay は FlexCard の作成時、データソース種別に DataRaptor を選択し、ケースコメントデータを取得する DataRaptor Turbo Extract を選択します。
- [Data Source Type (データソース種別)] (1) に [DataRaptor] を選択し、ケースコメントデータを取得する [sampleGetCaseComments] DataRaptor (2) を選択します。このデータにはコメント、作成日、公開/非公開が含まれます。
- キー/値ペアの [Key (キー)] (3) に
CaseId
、[Value (値)] (4) に{RecordId}
と入力します。
Datatable 列のプロパティを構成する
Datatable 要素をキャンバスに追加したら、列のプロパティを構成します。
次の表で、列のプロパティについて説明します。
列 |
説明 |
---|---|
Field Name (項目名) |
表示する項目列を選択します。 |
Field Label (項目表示ラベル) |
項目列の名前を更新します。デフォルトの項目表示ラベルは項目名です。 |
Is Sortable (並び替え可能) |
並び替え可能な項目を選択します。[Is Sortable (並び替え可能)] は、[Properties (プロパティ)] パネルの [Attributes (属性)] で有効にします。 |
Is Searchable (検索可能) |
検索フォームで検索可能な項目を選択します。[Is Searchable (検索可能)] は、[Properties (プロパティ)] パネルの [Attributes (属性)] で有効にします。 |
Type (データ型) |
項目列に表示するデータの型を選択します。 |
Is Editable (編集可能) |
ユーザーが編集可能な項目列を選択します。[Cell Level Edit (セルレベルの編集)] は、[Properties (プロパティ)] パネルの [Attributes (属性)] で有効にします。 |
Is User Selectable (ユーザーが選択可能) |
ユーザーが表示/非表示を切り換えられる項目列を選択します。[Is User Selectable (ユーザーが選択可能)] は、[Properties (プロパティ)] パネルの [Attributes (属性)] で有効にします。 |
Is Visible (参照可能) |
デフォルトで非表示または表示する項目列を選択します。[Is User Selectable (ユーザーが選択可能)] と併用すると、ユーザーが非表示の項目列を表示できます。 |
続けて、Datatable のプロパティをさらにいくつか構成します。
- [Records (レコード)] 項目 (1) に
{records}
と入力します。
- [Attributes (属性)] セクション (2) で [Is Sortable (並び替え可能)] を選択します。
イベントリスナーを構成する
この pubsub イベントリスナーは、ユーザーが新規ケースコメントを追加したときに、FlexCard がデータをテーブルに再読み込みして更新するようにします。
- [Event Type (イベント種別)] (1) で [Pubsub] を選択します。
- [Channel Name (チャネル名)] (2) に
omniscript_action
と入力します。これは標準装備されているデフォルトの OmniScript pubsub イベントで、OmniScript アクションが実行されるたびにトリガーされます。
- [Event Name (イベント名)] (3) に data と入力します。チャネル名に omniscript_action、イベント名に data を使用すると、FlexCard がこのイベントを受信したときに OmniScript の任意のアクションをキャッチし、追加のアクションをトリガーできるようになります。
- [Action Type (アクション種別)] (4) で [Card] を選択します。
- [Type (種別)] (5) で [Reload] を選択します。
FlexCard が OmniScript と対話できるようにする
この FlexCard は Case Management (ケース管理) OmniScript の一部であるカスタム Lightning Web コンポーネントに組み込むため、[Omniscript Support (OmniScript サポート)] をオンにします。
FlexCard を有効にする
FlexCard を有効にしてコンパイルし、スタンドアロン Lightning Web コンポーネントとしてデプロイします。
Vijay はコンポーネント名をメモして、この後で構築するカスタム Lightning Web コンポーネントに有効な FlexCard を組み込めるようにします。
ケースコメント用のカスタム Lightning Web コンポーネント
Vijay は CommentDataTableLWC カスタム Lightning Web コンポーネントを作成して、Case Comment Datatable FlexCard を HTML に組み込みます。この HTML ファイルには、組み込まれた Datatable FlexCard のみが存在します。
caseCommentDataTableLWC.html
<template> <c-cf-sample-case-comment-data-table lwc:if={caseId} record-id={caseId}></c-cf-sample-case-comment-data-table> </template>
有効な FlexCard の Lightning Web コンポーネント名を使用して、FlexCard を別のカスタム Lightning Web コンポーネント内に組み込みます。有効な FlexCard には cf
というプレフィックスが表示されます。
JavaScript で、Vijay は FlexCard に、ユーザーが新規ケースコメントを送信するたびに更新されるデータテーブルを設定する必要があります。
このデータソースを FlexCard に配置するために、OmniScript の変数を 2 つの FlexCard にリンクしてから、FlexCard からのコールバックロジックを元の OmniScript にリンクします。この処理により、FlexCard から OmniScript と OmniScript から元の FlexCard への双方向リンクが完備されます。
Case Comment Datatable JavaScript ファイルには、次のものが含まれます。
- 共通アクションユーティリティ: OmniScript へのリモートコールに使用する
- caseId 変数: OmniScript で渡すことができる
- pubsub import ステートメント: pubsub リスナーとアクションイベントを機能させる
caseCommentDataTableLWC.js
import { LightningElement, api } from 'lwc'; import { OmniscriptBaseMixin } from 'omnistudio/omniscriptBaseMixin'; import { OmniscriptActionCommonUtil } from 'omnistudio/omniscriptActionUtils'; import pubsub from 'omnistudio/pubsub'; export default class CaseCommentDataTableLWC extends OmniscriptBaseMixin(LightningElement) { caseId; connectedCallback() { this.caseId = this.omniJsonData.SelectedCaseId; } }
この表に、コードの主要な部分の説明が示されています。
行 |
説明 |
---|---|
1 |
すべてのコンポーネントが読み取る標準の Salesforce Lightning 要素である |
2 |
|
3 |
このクラスで使用する OmniscriptActionCommonUtil のインスタンスをインポートします。 |
4 |
|
5 |
export ステートメントを使用して OmniscriptBaseMixin を拡張し、コンポーネントで使用するモジュールの機能を指定します。 この処理によって OmniScriptBaseMixin に付属するすべての要素とオブジェクトを使用できるようになります。 |
6 |
|
7 ~ 8 |
ロジックを実行する |
カスタム Lightning Web コンポーネントのプロパティ
OmniScript デザイナーで、caseCommentDataTableLWC を保持するCustom Lightning Web Component 要素のプロパティを構成します。
- [Name (名前)] (1) と [Field Label (項目表示ラベル)] (2) に、Custom LWC 要素の名前と表示名を入力します。
- [Lightning Web Component Name (Lightning Web コンポーネント名)] (3) 項目に、カスタム Lightning Web コンポーネントの名前を入力します。この例の名前は
caseCommentDataTableLWC
です。
- [Property Name (プロパティ名)] (4) に
column
、[Property Source (プロパティソース)] (5) に%columns%
と入力します。