IUIEventsFrameworkProvider
IUiEventsFrameworkProviderは、ui-events-frameworkのAPIを呼び出すことができるオブジェクトです。
また、これらのAPIのリクエスト・ペイロードの生成に使用できるrequestHelperも提供します。 この項では、IUiEventsFrameworkProviderオブジェクトによって提供されるメソッドについて説明します。 これらの関数は次のトピックを示しています:
getVersion
getVersionメソッドは、フレームワークが初期化されるバージョンを返します。
getVersion(): string;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const version : string = frameworkProvider.getVersion();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const version = frameworkProvider.getVersion();
getApplicationName
getApplicationNameメソッドは、フレームワークの初期化に使用するアプリケーション名を返します。
getApplicationName(): string;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const appName : string = frameworkProvider.getApplicationName(); // appName = 'MyFirstExtensionID'
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const appName = frameworkProvider.getApplicationName(); // appName = 'MyFirstExtensionID'
getGlobalContext
GlobalContextは、アプリケーション・レベルのイベントをリスニングし、アプリケーション・レベルの操作を実行する機能を提供します。 たとえば、コンテキストのオープン、コンテキストのクローズなどをリスニングします。
getGlobalContext関数を使用して、GlobalContextへの参照を取得します。
getGlobalContext(): Promise<IGlobalContext>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext: CX_SVC_UI_EVENTS_FRAMEWORK.IGlobalContext = await frameworkProvider.getGlobalContext();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');const globalContext = await frameworkProvider.getGlobalContext();
getAvailableRecords
このメソッドは、アプリケーションに存在する有効なアクティブなオブジェクトをすべて返します。
getAvailableRecords(tabId?: string): Promise<IRecordContext[]>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const availableRecords: IRecordContext[] = await frameworkProvider.getAvailableRecords();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const availableRecords = await frameworkProvider.getAvailableRecords();
getCurrentTabId
現在のブラウザ・タブのtabIdを返します。
getCurrentTabId(): Promise<string>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const currentTabId: string = await frameworkProvider.getCurrentTabId();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const currentTabId = await frameworkProvider.getCurrentTabId();
getActiveTabId
アプリケーションのアクティブなタブを返します。
getActiveTab(): Promise<ITabContext>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const activeTab: ITabContext = await frameworkProvider.getActiveTab();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const activeTab = await frameworkProvider.getActiveTab();
getAvailableTabs
アプリケーションがロードしたすべての使用可能なタブを返します。 MSIタブまたはブラウザ・タブのいずれかです。
getAvailableTabs(): Promise<ITabContext[]>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const availableTabs: ITabContext[] = await frameworkProvider.getAvailableTabs();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const availableTabs = await frameworkProvider.getAvailableTabs();
getTabContext
オプションのパラメータが渡されない場合、アプリケーションでアクティブなtabContextを返します。
getTabContext(browserTabId?: string): Promise<ITabContext>;
パラメータ名 | 必須 | 説明 |
---|---|---|
browserTabId | No | アプリケーションがロードしたブラウザ・タブのTabId。 |
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const tabContext = await frameworkProvider.getTabContext();
処分
このAPIは、プロバイダ・オブジェクトに追加されたすべてのサブスクリプションを処分または登録解除できます。 このメソッドは、基本的に、frameworkProviderオブジェクトから作成されたglobalContextオブジェクトおよびrecordContextオブジェクトに追加されたすべてのサブスクリプションを削除します。
dispose:() => void;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
frameworkProvider.dispose();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
frameworkProvider.dispose();
getActiveTabId
アプリケーション・インスタンスで現在アクティブなタブのコンテキストを返します。
getActiveTab(): Promise<ITabContext>;
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const activeTabContext:ITabContext = await uiEventsFrameworkInstance.getActiveTab();
getCurrentBrowserTabContext
getCurrentBrowserTabContext(browserTabId?: string): Promise<ITabContext>;
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const browserTabContext:ITabContext = await getCurrentBrowserTabContext();
getModalWindowContext
FusionアプリケーションのModalWindowに対するアクションの実行に使用されるUEFプロバイダ・オブジェクトの一部。 ModalWindowContextを取得するには、UEFプロバイダ・オブジェクトで提供されているgetModalWindowContext APIをコールします。
getModalWindowContext(): Promise<IModalWindowContext>;
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const modalWindowContext:IModalWindowContext = await getModalWindowContext();
getSidePaneContext
SidePane Open Closeイベントをリスニングし、SidePane展開縮小、更新(アイコン更新およびセクション更新)アクションを実行するために、UEFサブスクライブおよび公開APIのコールの最上位のsidePaneContextオブジェクトを取得する場合に使用します。
getSidePaneContext(sidePaneId: string): Promise<ISidePaneContext>;
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext:ISidePaneContext = await getSidePaneContext('sidePane-id');
GetRecordContext
RecordContextでは、オブジェクトに関連するすべてのイベントおよび操作をリスニングできます。 たとえば、レコード・イベントの保存前、レコード・イベントの保存後など、レコードのフィールド値のリスニングが変更された場合などです。
getRecordContext関数を使用して、RecordContextへの参照を取得します。
次のコード例は、getRecordContext関数の構文を示しています:
getRecordContext(recordType?: string, recordId?: string): Promise<IRecordContext>;
パラメータ | 必須かどうか | 説明 |
---|---|---|
recordType | No | オブジェクト・タイプ たとえば、サービス・リクエスト、アカウントなどです。 |
recordId | No | オブジェクトの一意の識別子。 |
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const recordContext: CX_SVC_UI_EVENTS_FRAMEWORK.IGlobalContext = await frameworkProvider.getRecordContext('SeviceRequest','SeviceRequestNumber');
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');const recordContext = await frameworkProvider.getRecordContext('SeviceRequest','SeviceRequestNumber');
getActiveRecord
このメソッドは、アクティブなオブジェクト・タイプと一意の識別子を返します。
getActiveRecord(): IExtensionContext;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const activeRecord: CX_SVC_UI_EVENTS_FRAMEWORK.IExtensionContext = frameworkProvider.getActiveRecord();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');const activeRecord = frameworkProvider.getActiveRecord();
getAvailableRecords
このメソッドは、アプリケーションに存在する有効なアクティブなオブジェクトをすべて返します。
getAvailableRecords(): IExtensionContext[];
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const availableRecords: CX_SVC_UI_EVENTS_FRAMEWORK.IExtensionContext[] = frameworkProvider.getAvailableRecords();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const availableRecords = frameworkProvider.getAvailableRecords();
requestHelperオブジェクト
このオブジェクトを使用して、イベントおよび操作のリクエスト・オブジェクトを生成します。 このリクエスト・オブジェクトは、イベントのサブスクライブまたは操作の実行に使用されるAPIに備える必要があります。
requestHelper: IRequestHelper;
IRequestHelper {
createSubscriptionRequest(eventName: string): IEventRequest;
createPublishRequest(operationName: string): IOperationRequest;
}
createSubscriptionRequestファンクション
このファンクションを使用して、イベント・サブスクリプションのrequestObjectを作成します。
パラメータ名 | 必須 | 説明 |
---|---|---|
eventName | Yes | サブスクライブされたイベント名。 |
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider =
await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const requestObject: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabOpenEvent');
globalContext.subscribe(requestObject,(response: IEventResponse) => {
// custom code
});
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext = await frameworkProvider.getGlobalContext();
const requestObject = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabOpenEvent');
globalContext.subscribe(requestObject,(response) => {
// custom code
});
createPublishRequestファンクション
イベント・サブスクリプションのrequestObjectを作成するために使用します。
パラメータ名 | 必須 | 説明 |
---|---|---|
operationName | Yes | サブスクライブする操作名。 |
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const restCallRequest: IServiceConnectionRequest = (frameworkProvider.requestHelper.createPublishRequest('InvokeServiceConnection') as IServiceConnectionRequest);
restCallRequest.setServiceConnectionId('interactions/update_interactions');
restCallRequest.setParameters({ "interactions_Id": "12345" });
restCallRequest.setBody({ "StatusCd": "ORA_SVC_CLOSED" });
globalContext.publish(restCallRequest).then((message: IOperationResponse) => {
// custom code
const response = (message as IServiceConnectionResponse).getResponseData();
console.log(response.getStatus());
console.log(response.getBody());
}).catch((error: IErrorData) => {
// custom code
});
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext = await frameworkProvider.getGlobalContext();
const restCallRequest = (frameworkProvider.requestHelper.createPublishRequest('InvokeServiceConnection'));
restCallRequest.setServiceConnectionId('interactions/update_interactions');
restCallRequest.setParameters({ "interactions_Id": "12345" });
restCallRequest.setBody({ "StatusCd": "ORA_SVC_CLOSED" });
globalContext.publish(restCallRequest).then((message) => {
// custom code
const response = message.getResponseData();
console.log(response.getStatus());
console.log(response.getBody());
}).catch((error) => {
// custom code
});