コンテキストとは何ですか。
コンテキストは、特定の領域に関連する操作およびイベントをカプセル化するエンティティです。
たとえば、オブジェクトに関連するすべてのAPIは、recordContextにカプセル化されます。 フレームワークが初期化され、コンテキストが取得されたら、レコードの入力フィールド値の設定、テキスト領域にロードされた値の取得、エージェントがフィールドの値を更新した場合、イベントがレコード・レベルで起動されるなどのレコード・レベルの操作を実行できます。 特定のユースケースには、他のコンテキストがあります。
現在使用可能なコンテキストを次のリストに示します:
- GlobalContext: このコンテキストは、グローバル・レベルに関連するイベントおよび操作をカプセル化します。 たとえば、新しいMSIタブまたはブラウザ・タブでSRを開くと、グローバル・レベルで発生しているイベントになります。 そのため、タブ・オープン・イベントは、GlobalContextでリスニングするために使用できるイベントです。 タイプの詳細は、IGlobalContextを参照してください。
- TabContext: このコンテキスト・レベルでは、特定のタブをフォーカスまたはクローズできます。 または、開いているイベント・コンテキストにサブスクライブできます。つまり、このイベントが起動されると、特定のタブにロードされたコンテンツにアクセスできます。 タイプの詳細は、ITabContextを参照してください。
- レコード・コンテキスト:: イベントのフィールド関連操作をカプセル化します。 たとえば、フィールド値の設定、入力フィールドからの値の読取り、またはフィールド値の変更のリスニングを行います。 型の詳細は、IRecordContextを参照してください
- SidePaneContext: このコンテキストでは、特定のサイド・ペインを展開または縮小できます。サイド・ペインのコンテンツを更新できます。 サイド・ペインのオープン・イベントとクローズ・イベントをサブスクライブできます。 型の詳細は、ISidePaneContextを参照してください
- モーダル・ウィンドウ・コンテキスト: : このコンテキスト・レベルでは、モーダル/ポップアップをオープン/クローズできます。
- NotificationContext: このコンテキスト・レベルでは、通知の表示およびクローズをオープン/クローズし、通知のクローズ処理および処理トリガー・イベントをリスニングできます。
- MultiChannelAdaptorContext: このオブジェクトは、テレフォニックまたはチャットのやり取りが発生した場合に、異なるチャネルでイベントおよびアクションをカプセル化します。
- PhoneContext: このオブジェクトは、
PHONE
としてチャネル・タイプを渡すことで、getCommunicationChannelContext
をコールしてMultiChannelAdaptorContextオブジェクトから導出できます。 - InsightsContext: このコンテキスト・レベルでは、インサイトを開放/却下し、インサイトのクローズ・アクションおよびアクション・トリガー・イベントをリスニングできます。
考えてみよう: TabOpenイベントは、GlobalContextレベルでトリガーされます。 RecordOpenイベントはタブ・コンテキスト・レベルでトリガーされ、FieldValueChangeイベントはRecordContextレベルでトリガーされます。
詳細はこちら:
コンテキスト・タイプ | サポートされているイベント | サポートされている操作 | コンテキストを取得するためのAPI |
---|---|---|---|
GlobalContext | TabOpen, TabClose, TabChange, CustomEvent | PopOperation (タブを開く/ページをポップするレコード)、InvokeServiceConnection、GetAgentInfo、CustomEvent | getGlobalContext(): Promise<IGlobalContext>; |
TabContext | ContextOpen, ContextClose, CustomEvent | FocusTab, CloseTab, PopOperation, GetAgentInfo, CustomEvent, OpenModal, CloseModal, OpenPopup, ClosePopup | getTabContext(browserTabId?: string): Promise<ITabContext>; |
RecordContext | FieldValueChange, OnBeforeSave(Controllable Event), OnAfterSave, OnDataLoad, CustomEvent | GetFieldValue, SaveRecord, SetFieldValue, CustomEvent | getAvailableRecords(tabId?: string): Promise<IRecordContext[]>; |
SidePaneContext | SidePaneOpen, SidePaneClose | 「サイドを展開」ペイン、「サイドを折りたたむ」ペイン、「更新サイド」ペイン | getSidePaneContext(sidePaneId: string): Promise<ISidePaneContext>; |
ModalWindowContext | NA | 「モーダルを開く」、「モーダルを閉じる」、「ポップアップを開く」、「ポップアップを閉じる」 | getModalWindowContext(): Promise<IModalWindowContext>; |
MultiChannelAdaptorContext | NA | NA | getMultiChannelAdaptorContext(): Promise<IMultiChannelAdaptorContext>; |
PhoneContext | OnToolbarAgentCommand, OnToolbarInteractionCommand, OnDataUpdated, OnOutgoingEvent | NewCommEvent, StartCommEvent, CloseCommEvent, OutboundCommError, GetConfiguration, DisableFeature, ReadyForOperation, AgentStateEvent | getCommunicationChannelContext(channelType: McaChannels): Promise<ICommunicationChannelContext>; |
NotificationContext | OnNotificationAction, OnNotificationCloseAction | ShowNotification, CloseNotification | getNotificationContext(): Promise<INotificationContext>; |
InsightsContext | OnInsightsAction, OnInsightsDismissAction | ShowInsights, DismissInsights | getInsightsContext(): Promise<IInsightsContext>; |
ノート: OnBeforeSave (レコード・コンテキスト内)は、データをサーバーにコミットするREST APIを起動する前に起動されます。 このコールバックで非同期操作を実行することも、このイベントを取り消すこともできます。 このイベントは、非同期操作の完了を待機できます