Pop New Object with Set Mandatory Field and Save Operation

The following code sample shows an example in TypeScript for Pop with the set operation and save.

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
  });

The following code sample shows an example in JavaScript for Pop with the set operation and save.

const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
    const openerTabContext = await  frameworkProvider.getTabContext();
    const requestObject = frameworkProvider.requestHelper.createPublishRequest('PopOperation');
    requestObject.setRecordType('ServiceRequest');
    const response = await openerTabContext.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
    });