サービス・リクエストのメッセージ・フィールド自動化の作成
システム実装者は、Oracle Fusion Serviceの「メッセージの作成」パネルでCXサービス・アクションの取得およびフィールド値の設定またはプログラムによるデータの読取りおよび書込みを使用できるようになりました。 UIイベント・フレームワーク(UEF)を使用すると、エージェントがサービス・リクエスト(SR)で作業する場合、拡張機能は「宛先」、「CC」、「BCC」、「件名」、「メッセージ本文」および「カスタム・フィールド」などのフィールド値を構成パネルで直接取得または設定できます。
この機能は、CCAの作成(サービス・リクエスト・ページで使用)および新しいフラグメントの作成でサポートされています。
使用例:
- スマート・ルーティング/事前入力:サービス担当者がメッセージ・コンポーザを開くと、SRのアカウントまたは連絡先データに基づいて宛先アドレスと件名が自動的に移入されます。
- コンプライアンス・ロギング:メッセージが送信される前に、完全な構成ペイロード(To、CC、BCC、Body)を読み取り、外部監査またはCRMシステムにプッシュします
- カスタム・フィールドの自動化: SRデータを使用して、拡張性によって追加されたカスタム・メッセージ・フィールド(契約番号、SLA層など)を事前入力するため、サービス担当者は手動で入力する必要はありません。
- SRコンテキストに基づいてメッセージ・フィールドを自動入力し、手動入力およびエージェント・エラーを削減
- 送信前のデータの読取り: カスタム・ロジックを介してメッセージ・コンテンツを検証またはログに記録します
- メッセージ・レイアウトに追加された拡張フィールドの読取りと書込みによるカスタム・フィールド・ワークフローのサポート
- 一貫したエクスペリエンス - Get操作とSet操作の両方で同じフレームワーク・パターンが機能し、実装作業が減少します
有効化および構成ステップ
Visual Builder Studioを活用して、アプリケーションを公開します。 Visual Builderを使用したアプリケーションの拡張の詳細は、Oracle Help Center→関心のあるアプリケーション・サービス領域→「Books」→「Configuration and Extension」を参照してください。
有効化のステップ
- uiEventsFramework.initialize()を使用してUEFフレームワークを初期化します。
- getTabContext()→getActiveRecord()を使用して、アクティブなレコード・コンテキストを取得します。
- フィールドを設定するには、cxEventBusSetComposeMessageDataOperationを使用してパブリッシュ・リクエストを作成し、メッセージ・タイプを定義して、関連するセット・メソッド(setToAddress、setSubjectなど)をコールします。
- フィールドを取得するには: cxEventBusGetComposeMessageDataOperationを使用してパブリッシュ・リクエストを作成し、必要なフィールド名でsetFields()をコールしてから、getField()を使用してレスポンスから値を読み取ります。
- 拡張性によって追加されたカスタム・フィールドは、APIフィールド名(AUX_MSG_EXT_TEXT_cなど)を使用して渡すことができます。
APIの完全なリファレンスおよび型定義については、UEFの開発者ドキュメントを参照してください。
メッセージ作成フィールドの設定例
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const tabContext = await frameworkProvider.getTabContext();
const recordContext = await tabContext.getActiveRecord();
const requestObject: IComposeMessageActionRequest = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetComposeMessageDataOperation') as IComposeMessageActionRequest;
requestObject.setMessageType('ORA_SVC_EMAIL');
const messageData = requestObject.setMessageData();
messageData.setCCAddress('Matt Liu', '300100032899579', 'sendmail-test-discard@oracle.com', '');
messageData.setBCCAddress('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: IOperationResponse = await recordContext.publish(srequestObject);
console.log('setMessageDataResponse', response)
メッセージ作成フィールドの取得の例
let frameworkProvider:IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
let tabContext: ITabContext = await frameworkProvider.getTabContext();
let recordContext: IRecordContext = await tabContext.getActiveRecord();
let requestObject: IComposeMessageActionRequest= frameworkProvider.requestHelper.createPublishRequest('cxEventBusGetComposeMessageDataOperation');
srequestObject.setFields(['ToAddress', 'CCAddress', 'BCCAddress', 'Subject', 'MessageBody', 'FieldValue', 'AUX_MSG_EXT_FCL_c', 'AUX_MSG_EXT_NUMBER_c', 'AUX_MSG_EXT_TEXT_c']);
let response: IOperationResponse = await recordContext.publish(requestObject);
let to = response.getResponseData().getField('ToAddress').value;
let subject = response.getResponseData().getField('Subject').value;
let messageBody = response.getResponseData().getField('MessageBody').value;
let custom = response.getResponseData().getField('AUX_MSG_EXT_TEXT_c').value;
let custom2 = response.getResponseData().getField('AUX_MSG_EXT_NUMBER_c').value;
アクション・チェーンでフィールド値を設定および取得するときに、CXサービス・アクションを使用することもできます。

ヒントと考慮事項
-
GetComposeMessageDataは、同じレスポンス形式asGetFieldでデータを返します。可能な場合は、既存の解析ロジックを再利用します。
-
どちらの操作でも、アクションがトリガーされる前に、「メッセージの作成」パネルがSR上でオープンしてアクティブである必要があります
-
カスタム・フィールドは、プログラムで読取りまたは書込みを行う前に、拡張性を使用してメッセージ・レイアウトに追加する必要があります