Pop svc-interaction page in the Fusion application
In the Fusion application, the svc-interaction page can also be used for opening the Contact detail view or the Create New Contact form.
A page parameter named selectedView is used to render the Create Contact or Contact detail views in svc-interaction page. If the value of the selectedView page parameter is createContact then it will render the create contact view. To open the detail view of an existing contact, the value of selectedView page parameter must be set as defaultView and the value of SVCMCA_CONTACT_NUMBER page parameter must be set as the ID of the contact to be opened.
You access the Pop svc-interaction page in the Fusion application through the Create contact view.
Here's the Javascript code for POPing svc-interaction page (for create contact) in MSI tab:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = frameworkProvider.requestHelper.createPublishRequest('PopOperation');
payload.setFlow('sr');
payload.setPage('svc-interaction');
payload.setApplicationUIName('service');
payload.setInputParameters({"selectedView": "createContact"});
const popResponse = await globalContext.publish(payload);
const tabContext = popResponse.getResponseData();
const contactRecord = await tabContext.getActiveRecord();
var sfvPayload = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation');
sfvPayload.field().setValue("Contact.FirstName", "User123");
await contactRecord.publish(sfvPayload);
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const payload: IPopFlowAppUIRequest = frameworkProvider.requestHelper.createPublishRequest('PopOperation') as IPopFlowAppUIRequest;
payload.setFlow('sr');
payload.setPage('svc-interaction');
payload.setApplicationUIName('service');
payload.setInputParameters({"selectedView": "createContact"});
const popResponse: IPopFlowResponse = await globalContext.publish(payload) as IPopFlowResponse;
const tabContext: ITabContext = popResponse.getResponseData() as ITabContext;
const contactRecord: IRecordContext = await tabContext.getActiveRecord() as IRecordContext;
var sfvPayload: ISetFieldValueOperationRequest = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation') as ISetFieldValueOperationRequest;
sfvPayload.field().setValue("Contact.FirstName", "User123");
await contactRecord.publish(sfvPayload);
Pop svc-interaction page in Service Center or the Fusion Application - Open contact detail view
Here's the Javascript code for svc-interaction page (for existing contact) in MSI tab:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = frameworkProvider.requestHelper.createPublishRequest('PopOperation');
payload.setFlow('sr');
payload.setPage('svc-interaction');
payload.setApplicationUIName('service');
payload.setInputParameters({"selectedView": "defaultView", "SVCMCA_CONTACT_NUMBER": "CDRM_948047"});
const popResponse = await globalContext.publish(payload);
const tabContext = popResponse.getResponseData();
const contactRecord = await tabContext.getActiveRecord();
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const payload: IPopFlowAppUIRequest = frameworkProvider.requestHelper.createPublishRequest('PopOperation') as IPopFlowAppUIRequest;
payload.setFlow('sr');
payload.setPage('svc-interaction');
payload.setApplicationUIName('service');
payload.setInputParameters({"selectedView": "defaultView", "SVCMCA_CONTACT_NUMBER": "CDRM_948047"});
const popResponse: IPopFlowResponse = await globalContext.publish(payload) as IPopFlowResponse;
const tabContext: ITabContext = popResponse.getResponseData() as ITabContext;
const contactRecord: IRecordContext = await tabContext.getActiveRecord() as IRecordContext;
Pop svc-contact page in MSI tab (MSI mode), by passing entity type
Here's the Typescript code for opening svc-contact page in MSI tab (MSI mode), by passing entity type:
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const payload: IPopFlowInAppRequest = frameworkProvider.requestHelper.createPublishRequest('PopOperation') as IPopFlowInAppRequest;
payload.setRecordType('Contact');
payload.setRecordId('10026016');
const popResponse: IPopFlowResponse = await globalContext.publish(payload) as IPopFlowResponse;
const tabContext: ITabContext = popResponse.getResponseData() as ITabContext;
const contactRecord: IRecordContext = await tabContext.getActiveRecord() as IRecordContext;
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = uiEventsFrameworkInstance.requestHelper.createPublishRequest('PopOperation');
payload.setRecordType('Contact');
payload.setRecordId('10026016');
const popResponse = await globalContext.publish(payload);
const tabContext = popResponse.getResponseData();
const contactRecord = await tabContext.getActiveRecord();
Pop knowledge article in Service Center or a Fusion application in MSI tab
Here's the Typescript code for opening article page in MSI tab, by passing page parameters from application console:
const uefProvider = await UIEventsAPPFramework.UefClient.getUEFProvider();
const frameworkProvider: IUiEventsFrameworkProvider = await uefProvider.uiEventsFramework.initialize('FVC');
const tabContext: ITabContext = await frameworkProvider.getCurrentBrowserTabContext();
const payload: IPopFlowAppUIRequest = frameworkProvider.requestHelper.createPublishRequest('PopOperation') as IPopFlowAppUIRequest;
payload.setFlow('sr');
payload.setPage('view-article');
payload.setInputParameters({
stripeCode: 'ORA_SVC_CRM',
answerId: '10026016',
});
const response: IPopFlowResponse = await tabContext.publish(payload) as IPopFlowResponse;
const uefProvider = await UIEventsAPPFramework.UefClient.getUEFProvider();
const frameworkProvider = await uefProvider.uiEventsFramework.initialize('FVC');
const tabContext = await frameworkProvider.getCurrentBrowserTabContext();
const payload = frameworkProvider.requestHelper.createPublishRequest('PopOperation');
payload.setFlow('sr');
payload.setPage('view-article');
payload.setInputParameters({
stripeCode: 'ORA_SVC_CRM',
answerId: '10026016',
});
const response = await tabContext.publish(payload);
Pop article page in MSI tab by passing an entity
Here's the Typescript code for opening article page in MSI tab, by passing entity:
const uefProvider = await UIEventsAPPFramework.UefClient.getUEFProvider();
const frameworkProvider: IUiEventsFrameworkProvider = await uefProvider.uiEventsFramework.initialize('FVC');
const tabContext: ITabContext = await frameworkProvider.getCurrentBrowserTabContext();
const payload: IPopFlowInAppRequest = frameworkProvider.requestHelper.createPublishRequest('PopOperation') as IPopFlowInAppRequest;
payload.setRecordType('Article')
payload.setRecordId('10026016')
const response: IPopFlowResponse = await tabContext.publish(payload) as IPopFlowResponse;
const uefProvider = await UIEventsAPPFramework.UefClient.getUEFProvider();
const frameworkProvider = await uefProvider.uiEventsFramework.initialize('FVC');
const tabContext = await frameworkProvider.getCurrentBrowserTabContext();
const payload = frameworkProvider.requestHelper.createPublishRequest('PopOperation');
payload.setRecordType('Article')
payload.setRecordId('10026016')
const response = await tabContext.publish(payload);