機械翻訳について

サービス・センターのスクリーン・ポップ・ルールの構成

次に、スクリーン・ポップがサービス・センター・コンソール・モードで機能するように構成します。

アプリケーションには、すぐに使用できるスクリーン・ポップ・ルールが用意されています。 ビジネス要件に基づいてスクリーン・ポップ・ルールを構成することを選択できます。

Service Centerアプリケーションのすぐに使用できるスクリーン・ポップ構成ルールの概要

このフレームワークでは、Service Centerアプリケーションに次のすぐに使用できるスクリーン・ポップ構成ルールが提供されます:

  1. IVRデータまたはチャット・ペイロードが着信コールまたはチャットのサービス・リクエスト番号などのSR詳細を渡す場合、アプリケーション画面はサービス・センター・コンソール内の「SR詳細」タブにポップします。

    コミュニケーション・パネルがSRの側面に表示され、簡単にやり取りできます。

  2. IVRデータまたはチャット・ペイロードが、着信コールまたはチャットの担当者名やEメールなど、既知の担当者の担当者詳細を渡す場合、アプリケーション画面はサービス・センター・コンソール内の「担当者詳細」タブにポップします。
  3. IVRデータまたはチャット・ペイロードが着信コールまたはチャットの不明な担当者の担当者詳細を渡す場合、アプリケーション画面はサービス・センター・コンソール内の「担当者の作成」フォームにポップします。

Service Centerアプリケーションのスクリーン・ポップ・ルールの構成

サービス・センター・コンソールのスクリーン・ポップ構成を構成するには、顧客がサブスクライブできる外部イベントcxSvcNavigationが公開され、顧客はビジネス・ロジックを追加してスクリーン・ポップ・ルールを実行できます。

イベントはアプリケーション・レベルで定義され、MSIモードでサービス・センターで発生するすべてのナビゲーションで起動されます。 イベントは次のペイロードで起動され、顧客がディシジョンするのに役立ちます:

{
  "extraAttributes": {
        "svcNavigateEvent": {
            "application": "",
            "flow": "",
            "tabInfo": ""
        },
    },
  "navigationType": "SCREENPOP|DRILLDOWN",
  "engagmentData": {
    "inData": "object",
    "SVCMCA_INTERACTION_ID": "string",
    "engagementType": "PHONE|CHAT",
    "engagementId": "string",
    "multiMatches": boolean
  }
}
  • svcNavigateEventは元のイベントです
  • navigationTypeは、SCREENPOPまたはDRILLDOWNのいずれかです。 チャットまたはコールの開始時のナビゲーションは、SCREENPOPになります。 他のすべての種類のナビゲーションについては、DRILLDOWNになります。
  • engagmentData: チャットまたは通話のIVRまたはエンゲージメント・データは、顧客がビジネス・ロジックを追加できるデータに基づいています。
  • Return Typeは、次の戻り型を持つアクション・チェーンを参照します。 これにより、デフォルトのアクションも実行、スキップまたは停止する必要があるかどうかが決まります。 Trueに設定すると、アクションはデフォルトの動作を実行しません。

スクリーン・ポップの前提条件およびプロジェクトの設定

  1. VB StudioにアクセスできるエージェントとしてService Centerにサインインします。
  2. 「設定およびアクション」メニューから、「Visual Builderのページの編集」を選択します。
  3. 既存のプロジェクトを選択するか、新しいプロジェクトを作成します。

    エージェント・コンソールでスクリーン・ポップを有効または無効にするには、サービス・アプリケーションを変更します。

  4. プロジェクトが開いたら、「アプリケーションUI」メニューから「Oracle CX Service UI拡張アプリケーション」>「サービス」を選択します。
  5. メイン・ワークスペースで、「変数」タブをクリックします。
  6. 「定数」リストから、enableScreenPopsを選択します。

    「プロパティ」ペインで、Trueを選択してスクリーン・ポップを有効にし、Falseを選択して機能を無効にし、ビューアを「担当者」ページに移動します。

独自のスクリーン・ポップアップ・ルールの作成

  1. スクリーン・ポップ・ルールを追加するには、VB StudioのcxSvcNavigationオブジェクトにイベント・リスナーを追加する必要があります。
  2. 「イベント・リスナー」タブを選択します。
  3. 「+イベント・リスナー」ボタンをクリックします。
  4. リストからcxSvcNavigationを選択し、「次」をクリックします。
  5. 「+イベント・リスナー」ボタンをクリックします。

    聞くことができるすべてのイベントが一覧表示されます。

    聞くことができるすべてのイベントがリストされ、cxSvcNavigationを検索して選択し、「次」をクリックします。
  6. cxSvcNavigationを選択し、「次」をクリックします。
    イベントにアクション・チェーンを追加します。 既存のものを使用することも、新しいものを作成することもできます。
    ノート: 新規プロジェクトを作成する場合、既存のアクション・チェーンは存在しません。

    アクション・チェーンを作成したら、cxSvcNavigationイベントに追加します。

  7. リストでアクション・チェーンを検索し、「アクション・チェーンへジャンプ」をクリックして開いて編集します。

    エクスプローラにリストされているチェーンに追加できるアクションのリストに注意してください。

  8. Ifアクションをドラッグして、SCREENPOPナビゲーション・タイプに対してのみアクション・チェーンが実行されるようにします。

    アクション・チェーンにアクションが追加されると、ビジネス・ユース・ケースに合わせて条件を追加できます。 このシナリオでは、event.navigationType === 'SCREENPOP'のプロパティ・ペインから条件を追加します。

  9. Ifアクション内では、ユースケースに合わせて別のIfアクションをドラッグできます。 最初のケースでは、caseオブジェクトをレンダリング: if caseId is present in engagementData.

    これで、ケース・オブジェクトをスクリーン・ポップするイベントをトリガーする準備ができました。そのために、FireEventActionを内部If アクション内にドロップして使用

    .次のステップでは、プロパティ・ペインから実行するFireEventを定義します。 イベントに必要なプロパティは次のとおりです:
      • application = service (ルート・アプリケーション名)。
      • containerPath = ec.
      • flow = case (開く必要があるオブジェクトまたはフロー)。
      • tabInfo = originalEventからコピーされ、tab-titleまたはtab-iconイベントが含まれます。extraAttributes.svcNavigateEvent.tabInfo
      • key = interactionIdは、engagementData event.engagementData.inData.SVCMCA_INTERACTION_IDから取得できます。
      • ページ・パラメータ: ケース・ページをレンダリングする必要があるページで必要なオブジェクトには、caseNumberが必要です。
  10. 様々なビジネス・ユース・ケースをサポートするために他のブロックを追加できますが、この例では、さらにIfアクションを追加します。これにより、エンゲージメント・データworkOrder ページにワーク・オーダーif が存在するようにレンダリングされます。これにはWoNumberが必要です。
  11. 結果のアクション・チェーンの例を次に示します:
    define([
      'vb/action/actionChain',
      'vb/action/actions',
      'vb/action/actionUtils',
    ], (
      ActionChain,
      Actions,
      ActionUtils
    ) => {
      'use strict';
     
      class cxSvcNavigationListener extends ActionChain {
     
        /**
         * @param {Object} context
         * @param {Object} params
         * @param {{application:string,navigationType:string,flow:string,page:string,pageParams:object,engagementData:object,extraAttributes:object,sourcePageInfo:object}} params.event
         * @return {{stopPropagation:boolean}}
         */
        async run(context, { event }) {
          const { $application, $base, $extension, $constants, $variables, $modules } = context;
     
          if (event.navigationType === 'SCREENPOP') {
     
            if (event.engagementData.inData.caseId) {
                await Actions.fireEvent(context, {
                  event: 'oracle_cx_serviceUI/application:svcNavigate',
                  payload: {
                    application: 'service',
                    flow: 'case',
                    key: event.engagementData.inData.SVCMCA_INTERACTION_ID,
                    page: 'edit',
                    pageParams: {
                      caseNumber: event.engagementData.inData.caseId
                    },
                    tabInfo: event.extraAttributes.svcNavigateEvent.tabInfo
                  },
                });
     
            return {stopPropagation: true};
            } else if (event.engagementData.inData.workOrderNumber) {
                await Actions.fireEvent(context, {
                  event: 'oracle_cx_serviceUI/application:svcNavigate',
                  payload: {
                    application: 'service',
                    flow: 'fieldsvc',
                    key: event.engagementData.inData.SVCMCA_INTERACTION_ID,
                    page: 'detail',
                    pageParams: {
                      WoNumber: event.engagementData.inData.workOrderNumber
                    },
                    tabInfo: event.extraAttributes.svcNavigateEvent.tabInfo
                  },
                });
                return {stopPropagation: true};
            }
          }
        }
      }
     
      return cxSvcNavigationListener;
    });

担当者複数一致シナリオの場合のスクリーン・ポップの追加

チャットまたは通話に対して複数の担当者が一致する場合は、担当者検索エンジンによって検索結果が提供され、engagementData.multiMatchesに渡されます。

engagementData.multiMatchesを使用してcxSVCNavigationリスナーを変更し、目的のオブジェクトに移動できます。 担当者の作成をビューとしてsvc-contactページにリダイレクトできるステップを次に示します

アクション・チェーンの同じコードは次のとおりです:

define([
  'vb/action/actionChain',
  'vb/action/actions',
  'vb/action/actionUtils',
], (
  ActionChain,
  Actions,
  ActionUtils
) => {
  'use strict';
 
  class cxSvcNavigationListener extends ActionChain {
 
    /**
     * @param {Object} context
     * @param {Object} params
     * @param {{application:string,navigationType:string,flow:string,page:string,pageParams:object,engagementData:object,extraAttributes:object,sourcePageInfo:object}} params.event
     * @return {{stopPropagation:boolean}}
     */
    async run(context, { event }) {
      const { $application, $base, $extension, $constants, $variables, $modules } = context;
 
      if (event.navigationType === 'SCREENPOP') {
         if (event.engagementData.multiMatches) {
          await Actions.fireEvent(context, {
            event: 'oracle_cx_serviceUI/application:svcNavigate',
            payload: {
              application: 'service',
              flow: 'sr',
              key: event.engagementData.inData.SVCMCA_INTERACTION_ID,
              page: 'svc-contact',
              pageParams: {
                ...event.extraAttributes.svcNavigateEvent.pageParams,
                selectedView: 'createContact'
              },
              tabInfo: event.extraAttributes.svcNavigateEvent.tabInfo
            },
          });
 
          return { stopPropagation: true };
        }
          
      }
    }
  }
 
  return cxSvcNavigationListener;
});

オブジェクトの必須ページ・パラメータ

ページまたはオブジェクトをスクリーン・ポップするには、svcNavigateイベントのコール時に必要なパラメータをページに渡す必要があります。 各オブジェクトには、その入力プロパティがあります。 渡す必要があるパラメータを確認するには、ステップに従います:
  1. API UI > Service Center > Serviceを開きます。
  2. 入力変数を取得するページを見つけます。 たとえば、SR Details Service > ec > sr > editです。
  3. VBデザイナにページがロードされると、「変数」タブに切り替えることができます。
  4. 型でフィルタできる変数の数はn個です。
  5. フィルタをInput parameterとして適用します。