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