メッセージ・コンポーザのイベント・リスナー
25A Fusion Service Centerでは、メッセージ・コンポーザのイベント・リスナーを介して新しい拡張機能が導入されています。 これらの機能により、サービス・リクエスト・オブジェクトの機能およびカスタマイズ・オプションが拡張されます。 主なコンポーネントは次のとおりです:
- OnBeforeMessageSendイベント: メッセージが送信される前に、カスタム処理および承認プロセスを許可します。 非同期操作をサポートし、メッセージ送信フローを制御できます。
- OnAfterMessageSentイベント: メッセージが正常に送信されるとトリガーされ、送信後のアクションまたは通知が有効になります。
- SetComposeMessageData: 受信者アドレス、件名、本文、カスタム・フィールドなど、メッセージ構成データのプログラム的な設定を有効にします。
これらの機能では、様々なメッセージ・タイプ(内部ノート、電子メール、Webメッセージ、カスタマ・エントリ)がサポートされ、既存のRecordContextシステムと統合されます。 開発者と管理者は、Fusion Service Center環境内のメッセージング機能をカスタマイズおよび拡張するための強力なツールを使用できます。
実装はUIイベント・フレームワークを介して容易になり、各機能にコード例が用意されています。 この機能強化は、ワークフローの効率を向上させ、アプリケーション内のよりカスタマイズされた通信プロセスを実現することを目的としています。
有効化のステップ
次のステップは、UIイベント・フレームワークに精通していることを前提としています。 詳細については、「製品ドキュメント」を参照してください。
OnBeforeMessageSendイベント
Fusionアプリケーションでは、エージェントがサービス・リクエスト(SR)などのオブジェクトを開くと、スマート・アクションを使用してメッセージの作成を開始できます。 これにより、エージェントがメッセージを書き込んで送信できるメッセージ・パネルが開きます。
OnBeforeMessageSendイベントは、特定のレコードに対してメッセージが送信される直前に発生します。 次のことが可能です:
- メッセージの送信前に追加のアクションを実行
- メッセージ送信プロセスの承認または取消
- 処理が終了するのを待ってから続行
このイベントを使用するには、どのタイプのメッセージに関心があるかを指定する必要があります。
現在、このイベントは、25Aリリースのサービス・リクエスト・オブジェクトに対してのみ機能します。
使用できるメッセージ・タイプ
使用できる様々なタイプのメッセージは次のとおりです:
- 内部ノート( ORA_SVC_INTERNAL_NOTE)
- 電子メール( ORA_SVC_EMAIL)
- Webメッセージ( ORA_SVC_WEB)
- 顧客メッセージ( ORA_SVC_CUSTOMER_ENTRY)
- 任意のタイプのメッセージ(ANY)
ノート: RecordContextを使用してOnBeforeMessageSendイベントをリスニングできます
Webメッセージに対してOnBeforeMessageSendイベントを使用する方法の例を次に示します:
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.
});
});
OnAfterMessageSentイベント
Fusionアプリケーションでは、エージェントがサービス・リクエスト(SR)などのオブジェクトを開くと、メッセージ・パネルを使用してメッセージを送信できます。 OnAfterMessageSentイベントは、メッセージが正常に送信された直後に発生します。
このイベントを使用するには、どのタイプのメッセージに関心があるかを指定する必要があります。 現在、このイベントは、25Aリリースのサービス・リクエスト・オブジェクトに対してのみ機能します。
使用できる様々なタイプのメッセージは次のとおりです:
- 内部ノート( ORA_SVC_INTERNAL_NOTE)
- 電子メール( ORA_SVC_EMAIL)
- Webメッセージ( ORA_SVC_WEB)
- 顧客メッセージ( ORA_SVC_CUSTOMER_ENTRY)
- 任意のタイプのメッセージ(ANY)
ノート: RecordContextを使用してOnAfterMessageSentイベントをリスニングできます
Webメッセージに対してOnAfterMessageSentイベントを使用する方法の例を次に示します:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const tabContext = await frameworkProvider.getTabContext();
const recordContext = await tabContext.getActiveRecord();
const requestObject = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusOnAfterMessageSentEvent');
recordContext.subscribe(requestObject, (response) => {
const messageType = response.getResponseData().getMessageType();
});
SetComposeMessageData
Fusionアプリケーションでは、エージェントがサービス・リクエスト(SR)などのオブジェクトを開くと、スマート・アクションを使用してメッセージの作成を開始できます。 これにより、エージェントがメッセージを書き込んで送信できるメッセージ・パネルが開きます。
SetComposeMessageDataは、メッセージ・パネルでの情報の自動設定を可能にする機能です。 CC、BCC、宛先住所、件名、本文などのフィールドに入力できます。 また、メッセージ・レイアウトに追加されたカスタム・フィールドの値を設定することもできます。 25Aリリースでは、この機能はサービス・リクエスト・オブジェクトに対してのみ機能します。
使用できるメッセージ・タイプ
使用できる様々なタイプのメッセージは次のとおりです:
- 内部ノート( ORA_SVC_INTERNAL_NOTE)
- 電子メール( ORA_SVC_EMAIL)
- Webメッセージ( ORA_SVC_WEB)
- 顧客メッセージ( ORA_SVC_CUSTOMER_ENTRY)
- 任意のタイプのメッセージ(ANY) - これには、前述のすべてのタイプが含まれます
ノート: SetComposeMessageDataは、RecordContextとともに使用できます
次の項では、SetComposeMessageDataがコード内でどのように構造化されるかを示します。
interface IComposeMessageDataRequest {
setToAddress(partyName: string, partyId: string, emailAddress: string, viaId?: string): void;
setCCAddress(partyName: string, partyId: string, emailAddress: string, viaId?: string): void;
setBCCAddress(partyName: string, partyId: string, emailAddress: string, viaId?: string): void;
setSubject(subject: string): void; setMessageBody(messageContent: string): void;
setFieldValue(fieldName: string, fieldValue: string): void;
}
Eメールの作成でSetComposeMessageData操作を実行するコードは、javaScriptにあります
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const tabContext = await frameworkProvider.getTabContext();
const recordContext = await tabContext.getActiveRecord();
const srequestObject = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetComposeMessageDataOperation');
srequestObject.setMessageType('ORA_SVC_EMAIL');
const messageData = srequestObject.setMessageData();
messageData.setCCAddress('Matt Liu', '300100032899579', 'sendmail-test-discard@oracle.com', '');
messageData.setSubject('UEF Test');
messageData.setMessageBody('Message Body UEF Test');
messageData.setToAddress('Matt Liu', '300100032899579', 'sendmail-test-discard@oracle.com', '');
messageData.setFieldValue('CustomField', 'CustomValue');
const response = await recordContext.publish(srequestObject);
console.log('setMessageDataResponse', response)
ヒントと考慮事項
該当なし
主なリソース
該当なし
アクセス要件
該当なし