IUIEventsFrameworkProvider
The IUiEventsFrameworkProvider is the object on top of which we can call the APIs of the ui-events-framework.
It also provides a requestHelper which can be used to generate the request payload for those APIs. This section explains the methods provided by the IUiEventsFrameworkProvider object. The functions are show the following topics:
getVersion
The getVersion method returns the version with which the framework is initialized.
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
The getApplicationName method returns the application name with which the framework is initialized.
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 provides the ability to listen to application-level events and perform application-level operations. For example, listening to context open, context close, and so on.
Use the getGlobalContext function to get the reference to 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
This method returns all the valid active objects present in the application.
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
Returns the current browser tab's 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
Returns the application's active tab.
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
Returns all the available tabs that the application has loaded. It can be MSI tab or a browser tab.
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
Returns the active tabContext in the application if no optional parameter is passed.
getTabContext(browserTabId?: string): Promise<ITabContext>;
Parameter Name | Required | Description |
---|---|---|
browserTabId | No | TabId for the browser tab which the application has loaded. |
/// <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();
dispose
This API can dispose or unregister all subscriptions added on the provider object. This method essentially removes all the subscriptions added on globalContext object and recordContext object created from the frameworkProvider object.
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
Returns the current active tab's context in the application instances.
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
Part of the UEF provider object used to perform actions on ModalWindow in the Fusion application. You can get the ModalWindowContext by calling getModalWindowContext API provided in UEF provider object.
getModalWindowContext(): Promise<IModalWindowContext>;
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const modalWindowContext:IModalWindowContext = await getModalWindowContext();
getSidePaneContext
Use to get the sidePaneContext object on top of the call to the UEF subscribe and publish APIs to listen to SidePane Open Close events and perform SidePane Expand Collapse, Update (icon update, and section update) actions.
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 allows listening to all events and operations related to an object. For example, listening to field value of a record change either before saving a record event, ot after saving a record event, and so on.
Use the getRecordContext function to get the reference to RecordContext.
The following code example shows the syntax for getRecordContext function:
getRecordContext(recordType?: string, recordId?: string): Promise<IRecordContext>;
Parameter | Required? | Description |
---|---|---|
recordType | No | The object type. For example, Service Request, Account, and so on. |
recordId | No | Unique identifier for the object. |
/// <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
This method returns the active objects type and unique identifier.
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
This method returns all the valid active objects present in the application.
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 Object
Use this object to generate request objects for events and operations. This request object needs to be furnished to APIs which are used to subscribe to events or perform operations.
requestHelper: IRequestHelper;
IRequestHelper {
createSubscriptionRequest(eventName: string): IEventRequest;
createPublishRequest(operationName: string): IOperationRequest;
}
createSubscriptionRequest Function
Use this function to create a requestObject for an event subscription.
Parameter Name | Required | Description |
---|---|---|
eventName | Yes | Subscribed event name. |
/// <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 Function
Used to create a requestObject for an event subscription.
Parameter Name | Required | Description |
---|---|---|
operationName | Yes | Operation name that should be subscribed to. |
/// <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
});