IEngagementContext
EngagementContextは、startCommEventパブリッシュ・リクエストのために新しいコール接続が確立されたtabContextをカプセル化するオブジェクトです。 その結果、そのコール接続によって開かれるオブジェクトを制御できます。
getEngagementContext(): IEngagementContext;
Typescriptのコード・サンプルを次に示します。
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
//You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer https://docs.oracle.com/en/cloud/saas/fusion-service/fairs/application-classification-code.html#s20059918 for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then((res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
//You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer https://docs.oracle.com/en/cloud/saas/fusion-service/fairs/application-classification-code.html#s20059918 for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
})
関数
getEngagementId
新しいコール接続のために開かれたエンゲージメント・オブジェクトの一意の識別子を取得するには、この関数を使用
getEngagementId(): string;
/// <reference path="uiEventsFramework.d.ts"/>
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
//You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer https://docs.oracle.com/en/cloud/saas/fusion-service/fairs/application-classification-code.html#s20059918 for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then((res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
const engagementId: string = engagementContext.getEngagementId();
}).catch(() => {
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
// You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer https://docs.oracle.com/en/cloud/saas/fusion-service/fairs/application-classification-code.html#s20059918 for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
const engagementId = engagementContext.getEngagementId();
})
getTabContext
このファンクションを使用して、エンゲージメント・オブジェクトまたは新規コール接続が開始されるtabContextを取得します。 これはITabContextタイプになり、このtabContextでアクティブおよび使用可能なレコードを取得して、そのレコードに対してアクションを実行できます。
getTabContext(): Promise<ITabContext>;
/// <reference path="uiEventsFramework.d.ts"/>
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
request.setAppClassification('appClassfication');// You should set correct appClassification here. eg: ORA_SERVICE for Service App
request.setEventId('1'); // Set the event ID here
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then(async (res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
const tabContext: ITabContext = await engagementContext.getTabContext();
}).catch(() => {
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
request.setAppClassification('appClassfication');// You should set correct appClassification here. eg: ORA_SERVICE for Service App
request.setEventId('1'); // Set the event ID here
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
const engagementId = engagementContext.getEngagementId();
const tabContext = await engagementContext.getTabContext();
})
getEngagementData
この関数を使用して、エンゲージメント・オブジェクトのデータをフェッチします。
getEngagementData(): IMcaEngagementData;
/// <reference path="uiEventsFramework.d.ts"/>
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
// You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer https://docs.oracle.com/en/cloud/saas/fusion-service/fairs/application-classification-code.html#s20059918 for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then(async (res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
const engagementData: IMcaEngagementData = await engagementContext.getEngagementData();
}).catch(() => {
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
// You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer https://docs.oracle.com/en/cloud/saas/fusion-service/fairs/application-classification-code.html#s20059918 for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
const engagementId = engagementContext.getEngagementId();
const engagementData = await engagementContext.getEngagementData();
})
getChannelType
このファンクションを使用して、EngagementContext APIリクエスト(ORA_SVC_PHONEなど)のチャネル・タイプを取得します。
getChannelType(): string;
/// <reference path="uiEventsFramework.d.ts"/>
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
request.setAppClassification('appClassfication');
request.setInputData({eventId: 'id'});// _inboundData of type - IMcaStartCommInData
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then(async (res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
const channelType: string = await engagementContext.getChannelType();
}).catch(() => {
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
request.setAppClassification('appClassfication');
request.setInputData({eventId: 'id'});// _inboundData of type - IMcaStartCommInData
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
const channelType = await engagementContext.getChannelType();
})
getChannel
このファンクションを使用して、EngagementContextオブジェクトの型を取得します。 値はPHONEになります。
getChannel(): string;
/// <reference path="uiEventsFramework.d.ts"/> const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
// You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer to Application Classification Code for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then(async (res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
const channel: string = await engagementContext.getChannel(); // 'PHONE'
}).catch(() => {
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
// You should set correct appClassification here. eg: ORA_SERVICE for Service App
// Refer to Application Classification Code for the list of supported app classifications
request.setAppClassification('appClassfication');
request.setEventId('1'); // Set the event ID here
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
const engagementId = engagementContext.getEngagementId();
const channel = await engagementContext.getChannel(); // 'PHONE'
})
getWrapupContext
UEFと対話するために、WrapUpのRecordContextはEngagementContextから入手できます。
- トランスクリプトが有効な場合はstartCommから
- closeCommから。トランスクリプトが有効または無効の場合に使用できます。
ユーザーは、フィールドの設定、フィールドの取得、操作の保存、フィールド値の変更などのイベント、WrapUpRecordContextからOnBeforeSave、OnAfterSaveなどのUEF recordLevelアクションを実行できます。 後続の例をご覧ください。
エンゲージメント・オブジェクトまたは新規コール接続が開始または終了するラップ・アップ・レコード・コンテキストを取得する機能。 これはタイプIRecordContextになるため、WrapUpのRecordContextを取得し、アクションおよびイベントを実行します。
getRecordContext(): Promise<IRecordContext>;
/// <reference path="uiEventsFramework.d.ts"/>
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext: IMultiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext: IPhoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE') as IPhoneContext;
const request: IMcaStartCommEventActionRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent') as IMcaStartCommEventActionRequest;
request.setAppClassification('appClassfication');
request.setInputData({eventId: 'id'});// _inboundData of type - IMcaStartCommInData
const inData: IMcaStartCommInDataRequest = request.getInData();
phoneContext.publish(request).then(async (res: IOperationResponse) => {
const response: IMcaStartComActionResponse = res as IMcaStartComActionResponse;
const startCommData: IMcaStartComActionData = response.getResponseData();
const engagementContext: IEngagementContext = startCommData.getEngagementContext();
const recordContext: IRecordContext = await engagementContext.getWrapupContext();
}).catch(() => {
})
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const multiChannelAdaptorContext = await uiEventsFrameworkInstance.getMultiChannelAdaptorContext();
const phoneContext = await multiChannelAdaptorContext.getCommunicationChannelContext('PHONE');
const request = uiEventsFrameworkInstance.requestHelper.createPublishRequest('startCommEvent');
request.setAppClassification('appClassfication');
request.setInputData({eventId: 'id'});// _inboundData of type - IMcaStartCommInData
const inData = request.getInData();
phoneContext.publish(request).then((response) => {
const startCommData = response.getResponseData();
const engagementContext = startCommData.getEngagementContext();
const engagementId = engagementContext.getEngagementId();
const recordContext = await engagementContext.getWrapupContext();
})
公開
このファンクションを使用して、エンゲージメント・コンテキストで操作を公開します。
publish: (requestObject: IOperationRequest) => Promise<IOperationResponse>;