コンテキストとは何ですか。
コンテキストは、特定の領域に関連する操作およびイベントをカプセル化するエンティティです。
たとえば、オブジェクトに関連するすべてのAPIは、recordContextにカプセル化されます。 フレームワークが初期化され、コンテキストが取得されたら、レコードの入力フィールド値の設定、テキスト領域にロードされた値の取得、エージェントがフィールドの値を更新した場合、イベントがレコード・レベルで起動されるなどのレコード・レベルの操作を実行できます。 特定のユースケースには、他のコンテキストがあります。

現在使用可能なコンテキストを次のリストに示します: 
        - GlobalContext: このコンテキストは、グローバル・レベルに関連するイベントおよび操作をカプセル化します。 たとえば、新しいMSIタブまたはブラウザ・タブでSRを開くと、グローバル・レベルで発生しているイベントになります。 そのため、タブ・オープン・イベントは、GlobalContextでリスニングするために使用できるイベントです。 タイプの詳細は、IGlobalContextを参照してください。
- TabContext: このコンテキスト・レベルでは、特定のタブをフォーカスまたはクローズできます。 または、開いているイベント・コンテキストにサブスクライブできます。つまり、このイベントが起動されると、特定のタブにロードされたコンテンツにアクセスできます。 タイプの詳細は、ITabContextを参照してください。
- レコード・コンテキスト:: イベントのフィールド関連操作をカプセル化します。 たとえば、フィールド値の設定、入力フィールドからの値の読取り、またはフィールド値の変更のリスニングを行います。 型の詳細は、IRecordContextを参照してください
- SidePaneContext: このコンテキストでは、特定のサイド・ペインを展開または縮小できます。サイド・ペインのコンテンツを更新できます。 サイド・ペインのオープン・イベントとクローズ・イベントをサブスクライブできます。 型の詳細は、ISidePaneContextを参照してください
- モーダル・ウィンドウ・コンテキスト: : このコンテキスト・レベルでは、モーダル/ポップアップをオープン/クローズできます。
- NotificationContext: このコンテキスト・レベルでは、通知の表示およびクローズをオープン/クローズし、通知のクローズ処理および処理トリガー・イベントをリスニングできます。
- MultiChannelAdapterContext: このオブジェクトは、テレフォニックまたはチャットの対話が発生したときに、様々なチャネル上のイベントおよびアクションをカプセル化します。
- PhoneContext: このオブジェクトは、PHONEとしてチャネル・タイプを渡すことで、getCommunicationChannelContextをコールしてMultiChannelAdaptorContextオブジェクトから導出できます。
- InsightsContext: このコンテキスト・レベルでは、インサイトを開いたり、却下したりして、インサイトのクローズ・アクションおよびアクション・トリガー・イベントをリスニングできます。
- スマート・アクション・コンテキスト: スマート・アクション対応ページでスマート・アクションをコールするには、スマート・アクション・コンテキストを使用します。スマート・アクション・コンテキストは、tabContextまたはrecordContextを介してアクセスできます。
考えてみよう: 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>; | 
| SmartActionContext | NA | ExecuteSmartAction | getSmartActionContext(): Promise<ISmartActionContext>; | 
ノート: OnBeforeSave (レコード・コンテキスト内)は、データをサーバーにコミットするREST APIを起動する前に起動されます。 このコールバックで非同期操作を実行することも、このイベントを取り消すこともできます。 このイベントは、非同期操作の完了を待機できます