OnBeforeMessageSend
サービス・リクエストなどのオブジェクトを開くと、エージェントは「メッセージの作成」スマート・アクションを開くことができます。
メッセージの作成パネルが開き、エージェントがメッセージを送信できます。 このイベントは、APIリクエストを起動して特定のレコードのメッセージを送信する前に起動されます。 ユーザーは、このイベントのコールバックで非同期操作を実行し、このイベントを解決または取り消すことができます。 このイベントは、非同期操作が完了するのを待機します。 このイベントでは、ユーザーは操作を承認または取り消すことによって、VBで発生するメッセージ送信フローを制御できます。
イベント・リクエストでは、ユーザーは、このイベントをサブスクライブするメッセージ・タイプを渡す必要があります。
このイベントのサブスクライブ中に渡す必要があるメッセージの作成スマート処理タイプを次に示します。
- 内部ノートの作成(メッセージ・タイプ: ORA_SVC_INTERNAL_NOTE)
- Eメールの作成(メッセージ・タイプ: ORA_SVC_EMAIL)
- Webメッセージの作成(メッセージ・タイプ: ORA_SVC_WEB)
- 顧客メッセージの取得(メッセージ・タイプ: ORA_SVC_CUSTOMER_ENTRY)
- メッセージの作成(前述のすべてのスーパー・セット)。 メッセージ・タイプ: ANY) ノート:
OnBeforeMessageSendは、RecordContextからリスニング可能なイベントです。
Typescriptの例を次に示します:
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const tabContext = await frameworkProvider.getTabContext();
const recordContext = await tabContext.getActiveRecord();
const requestObject: IComposeMessageEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusOnBeforeMessageSendEvent') as IComposeMessageEventRequest;
requestObject.setMessageType('ORA_SVC_WEB');
recordContext.subscribe(requestObject, (message: IEventResponse) => {
const response: IComposeMessageEventResponse = message as IComposeMessageEventResponse;
const messageType: string = response.getResponseData().getMessageType(); return new Promise((resolve, reject) => {
return new Promise((resolve, reject) => {
// custom logic to resolve or reject the message send flow.
});
});
JavaScriptの例を次に示します:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const tabContext = await frameworkProvider.getTabContext();
const recordContext = await tabContext.getActiveRecord();
requestObject.setMessageType('ORA_SVC_WEB');
const requestObject = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusOnBeforeMessageSendEvent');
recordContext.subscribe(requestObject, (response) => {
const messageType = response.getResponseData().getMessageType();
return new Promise((resolve, reject) => {
// custom logic to resolve or reject the message send flow.
});
});