Field Value Change Event

Here are examples of subscribing to FieldValueChange event where field names are passed.

Here's a Typescript example:
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID','V1');
    const tabContext: ITabContext = await frameworkProvider.getTabContext();
    const recordContext: IRecordContext = await tabContext.getActiveRecord();
    
    const requestObject: IFieldValueChangeEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent') as IFieldValueChangeEventRequest;
    requestObject.setFields(['ServiceRequest.Title', 'ServiceRequest.ProblemDescription']);
    
    recordContext.subscribe(requestObject, (message: IEventResponse) => {
        const response = message as IFieldValueChangeEventResponse;
        const fieldName: string = response.getResponseData().getFieldName();
        const newValue: string | boolean | number = response.getResponseData().getNewValue();
        const oldValue: string | boolean | number = response.getResponseData().getOldValue();
    });
The following code sample shows an example in JavaScript example:
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');  
    const tabContext = await frameworkProvider.getTabContext();
    const recordContext = await tabContext.getActiveRecord();   
    const requestObject = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent')
    requestObject.setFields(['ServiceRequest.Title','ServiceRequest.ProblemDescription']);
     
    recordContext.subscribe(requestObject, (response) => {          
        const fieldName = response.getResponseData().getFieldName();
        const newValue = response.getResponseData().getNewValue();
        const oldValue = response.getResponseData().getOldValue();
    });