Pop Open New Object with a Set Required Field and Save Operation
The following shows examples of Pop with the Set operation and Save operation.
Here's a Typescript
example:
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const openerTabContext: ITabContext = await frameworkProvider.getTabContext();
const requestObject: IPopFlowInAppRequest = frameworkProvider.requestHelper.createPublishRequest('PopOperation') as IPopFlowInAppRequest;
requestObject.setRecordType('ServiceRequest');
const response: IPopFlowResponse = await openerTabContext.publish(requestObject) as IPopFlowResponse;
const tabContext: ITabContext = response.getResponseData();
const recordContext: IRecordContext = await tabContext.getActiveRecord();
//set field value
const setFieldRequestObject: ISetFieldValueOperationRequest = (frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation') as ISetFieldValueOperationRequest);
setFieldRequestObject.field().setValue('ServiceRequest.Title', 'New Title');
recordContext.publish(setFieldRequestObject).then((message) => {
const setFieldresponse = message as ISetFieldValueResponse;
//save operation
const saveRequestObject: IOperationRequest = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSaveRecordOperation');
recordContext.publish(saveRequestObject).then((message) => {
const response = message as ISaveRecordResponse;
const oldObjectId = response.getResponseData().getOldObjectId();
const newObjectId = response.getResponseData().getObjectId();
const objectType = response.getResponseData().getObjectType();
}).catch((error: IErrorData) => {
// custom code
});
}).catch((error: IErrorData) => {
// custom code
});
Here's a JavaScript example:
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const globalContext = await frameworkProvider.getGlobalContext();
const requestObject = frameworkProvider.requestHelper.createPublishRequest('PopOperation');
requestObject.setRecordType('ServiceRequest');
const response = await globalContext.publish(requestObject);
const tabContext = response.getResponseData();
const recordContext = await tabContext.getActiveRecord();
//set field value
const setFieldRequestObject = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation');
setFieldRequestObject.field().setValue('ServiceRequest.Title', 'New Title');
setFieldRequestObject.field().setValue('ServiceRequest.ProblemDescription', 'New Problem Description');
recordContext.publish(setFieldRequestObject).then((message) => {
//save operation
const saveRequestObject = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSaveRecordOperation');
recordContext.publish(saveRequestObject).then((response) => {
const oldObjectId = response.getResponseData().getOldObjectId();
const newObjectId = response.getResponseData().getObjectId();
const objectType = response.getResponseData().getObjectType();
}).catch((error) => {
// custom code
});
}).catch((error) => {
// custom code
});