機械翻訳について

IGlobalContext

IGlobalContextを使用すると、アプリケーション・レベルのイベントをリスニングし、アプリケーション・レベルの操作を実行できます。 たとえば、コンテキストのオープン、コンテキストのクローズなどをリスニングします。

GlobalContextへの参照を取得するには、getGlobalContext関数を使用します。 このファンクションは、アプリケーションglobalContextへの参照を提供します。

次のコード・サンプルは、getGlobalContextメソッドの構文を示しています:
getGlobalContext(): Promise<IGlobalContext>;
次に、コード・サンプルTypescriptを示します:
/// <reference path="uiEventsFramework.d.ts"/>
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
JavaScriptのコード・サンプルを次に示します:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext = await frameworkProvider.getGlobalContext();

関数

サポートされている関数のリストを次に示します:
  • サブスクライブ
  • subscribeOnce
  • 公開
  • 処分
  • getSupportedEvents
  • getSupportedActions

サブスクライブ

このAPIを使用して、Fusionアプリケーションからイベントをサブスクライブします。 このAPIを使用すると、外部アプリケーションはFusionアプリケーションからアプリケーション・レベルのイベントをリスニングできます。 イベントがこのAPIを使用してサブスクライブされると、サブスクリプションが処分されるまで外部アプリケーションに通知されます。

次のコード・サンプルは、サブスクライブの構文を示しています:
subscribe: (payload: IEventSubscriptionPayload, callbackFunction: (response:IEventResponsePayload) => void)
=> ISubscriptionContext;
パラメータは次のとおりです:
パラメータ 必須かどうか 説明
payload Yes サブスクライブ中のイベントのリクエスト・オブジェクト。
callbackFunction Yes イベント・レスポンスを引数として取得するコールバック関数。
Typescriptのコード・サンプルを次に示します:
/// <reference path="uiEventsFramework.d.ts"/>
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
    const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
    const subscriptionContext: ISubscriptionContext  = globalContext.subscribe(payload, (response: IEventResponse) => {
         // custom code
     });
JavaScriptのコード・サンプルを次に示します:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext = await frameworkProvider.getGlobalContext();
    const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
    const subscriptionContext  = globalContext.subscribe(payload, (response) => {
        // custom code
    });

subscribeOnce

このAPIを使用して、Fusionアプリケーション・イベントを1回のみサブスクライブします。 このAPIを使用すると、外部アプリケーションはFusionアプリケーションからアプリケーション・レベルのイベントをリスニングできます。 ただし、このサブスクリプションは、最初の通知後に自動的に破棄されます。

次のコード・サンプルは、subscribeOnceの構文を示しています:
subscribeOnce: (payload: IEventSubscriptionPayload, callbackFunction: (response: IEventResponsePayload) => void => ISubscriptionContext;
パラメータは次のとおりです:
パラメータ 必須かどうか 説明
payload Yes サブスクライブ中のイベントのリクエスト・オブジェクト。
callbackFunction Yes イベント・レスポンスを引数として取得するコールバック関数。
Typescriptのコード・サンプルを次に示します:
/// <reference path="uiEventsFramework.d.ts"/>
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
    const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
    const subscriptionContext: ISubscriptionContext  = globalContext.subscribeOnce(payload, (response: IEventResponse) => {
         // custom code
    });
JavaScriptのコード・サンプルを次に示します:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext = await frameworkProvider.getGlobalContext();
    const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
    const subscriptionContext  = globalContext.subscribeOnce(payload, (response) => {
        // custom code
    });

公開

このAPIは、動作するようにFusionアプリケーションに通知できます。 APIは、then-catchブロックを追加できるpromiseを返します。 thenブロックは、操作のステータスと、プロセスの完了後に返されるデータを返します。

次のコード・サンプルは、subscribeOnceの構文を示しています:
publish: (requestObject: IOperationRequest) => Promise<IOperationResponse>;
Typescriptのコード・サンプルを次に示します:
/// <reference path="uiEventsFramework.d.ts"/>
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
    const payload: IEventRequest = frameworkProvider.requestHelper.createPublishRequest('cxEventBusCustomEventOperation');
    globalContext.publish(payload).then((response: IOperationResponse)=>{
        // custom code
    }).catch((error)=>{
        // error
    })
JavaScriptのコード・サンプルを次に示します:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = frameworkProvider.requestHelper.createPublishRequest('cxEventBusCustomEventOperation');
globalContext.publish(payload).then((response) => {
    // custom code
}).catch((error) => {
    // error
})

処分

このAPIは、イベントに追加されたサブスクリプションを処分または登録解除できます。 サブスクリプションを処分することで、APIはクライアント側レシーバへのそれ以上の通知をトリガーしません。
dispose:() => void;
次のコード・サンプルは、dispose APIのtypescriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext: CX_SVC_UI_EVENTS_FRAMEWORK.IGlobalContext = await frameworkProvider.getGlobalContext();
const requestObject: CX_SVC_UI_EVENTS_FRAMEWORK.IEventRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext:  CX_SVC_UI_EVENTS_FRAMEWORK.ISubscriptionContext  = globalContext.subscribe(requestObject, (response: CX_SVC_UI_EVENTS_FRAMEWORK.IEventResponse) => {
     // custom code
 });
globalContext.dispose();
次のコード・サンプルは、Javascriptのdispose APIの例を示しています。
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const requestObject = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext  = globalContext.subscribe(requestObject, (response: CX_SVC_UI_EVENTS_FRAMEWORK.IEventResponse) => {
// custom code
});
globalContext.dispose();

getSupportedEvents

このメソッドは、globalContext上でサポートされているすべてのイベントを返します。

次のコード・サンプルは、getSupportedEventsの構文を示しています:
getSuportedEvents(): string[];
次のコード・サンプルは、JavascriptのgetSupportedEventsの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const supportedEvents= globalContext.getSupportedEvents();

getSupportedActions

このメソッドは、globalContext上でサポートされているすべてのアクションを返します。

次のコード・サンプルは、getSupportedActionsの構文を示しています:
getSupportedActions(): string[];
次のコード・サンプルは、JavascriptのgetSupportedActionsの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
    const supportedActions: string[] = globalContext.getSupportedActions();

getGlobalContextId

このメソッドは、GlobalContextオブジェクトの一意のコンテキストIDをすべて返します。

次のコード・サンプルは、getGlobalContextIdの構文を示しています:
getGlobalContextId(): string;
次のコード・サンプルは、JavascriptのgetSupportedActionsの例を示しています。
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const globalContextId = globalContext.getGlobalContextId();

複数のブラウザ・タブに対するGlobalContextのUIイベント・フレームワーク・アクション

UIイベント・フレームワークでは、GlobalContext、TabContext、RecordContexts、PhoneContextなどの4つの異なるコンテキストがサポートされます。 GlobalContextでサポートされているイベントをリスニングする場合、アプリケーションでロードされているブラウザ・タブのいずれかからこのイベントが発生するたびに通知を受け取ります。

ただし、アクションの場合、globalContextの上で実行されるアクションは、現在のブラウザ・タブでのみ実行されます。 そのため、イベントおよびアクションに対するglobalContextの動作は異なります。

また、ブラウザのタブごとにアクションを実行できるユースケースもあります。 これにより、期待した結果が戻されない場合があります。 CustomEvent、PopUp、モーダルおよびGetAgentInfoは、GlobalContextでサポートされているアクションで、単一のアクション・パブリッシュで複数のブラウザ・タブで実行できます。

globalContextからのアクションの公開は、次のように機能します。
  1. 複数のブラウザ・タブが開いている場合は、ユーザーがsetPropagateToTabsメソッドをTrueに設定すると、すべてのブラウザ・タブに操作リクエストが送信されます
  2. このアクションをリクエストしたクライアントは、すべてのブラウザ・タブがこのリクエストを完了としてマークしたときにのみ肯定的なフィードバックを受け取ります。
  3. クライアントは、以前と同じように単一のレスポンスを取得するのではなく、パブリッシュ・リクエストのthenブロックでIOperationResponseの配列を受け取ります。
  4. OperationResponse配列の各エントリには、実行された各ブラウザ・タブのコンテキストと、対応するレスポンス・データが含まれます。
  5. catchブロックは、いずれかのブラウザ・タブがこのアクション・リクエストを却下したときに実行されます。
    ノート: レスポンス構造は、TabContextおよびRecordContextのアクションの以前のリリースと同じになります。 GlobalContextレベルのアクション・レスポンスのみがIOperationResponseの配列に変更されます。