Listen to Task and Appointment Events

After you obtain the UEF context for a Task or Appointment record in the OnChildRecordOpen event, register record-level event listeners for that child record by using the registerEventsForRecordLevelEvent global function.

$modules.uiEventsFramework.registerEventsForRecordLevelEvent(['FieldValueChange','OnBeforeSave','OnAfterSave'],callGetRecordByContext.response);

The following example registers listeners for FieldValueChange, OnBeforeSave, and OnAfterSave events on the opened Task or Appointment record.

define([
  'vb/action/actionChain',
  'vb/action/actions',
  'vb/action/actionUtils',
], (
  ActionChain,
  Actions,
  ActionUtils
) => {
  'use strict';

  class recordLevelEventListener extends ActionChain {
    /**
     * @param {Object} context
     * @param {Object} params
     * @param {{data: any, eventName: string, recordType: string}} params.event
     */
    async run(context, { event }) {
      const { $variables, $modules } = context;

      switch (event.eventName) {
        case 'OnChildRecordOpen': {
          const callGetRecordByContext =
            await $modules.uiEventsFramework.getRecordByContext(
              $variables.uefContext,
              {
                objectId: event.data.objectId,
                objectType: event.data.objectType
              }
            );

          $modules.uiEventsFramework.registerEventsForRecordLevelEvent(
            [
              'FieldValueChange',
              'OnBeforeSave',
              'OnAfterSave'
            ],
            callGetRecordByContext.response
          );

          break;
        }
      }
    }
  }

  return recordLevelEventListener;
});
Parameters Description
Event array Lists the child-record events to listen for: FieldValueChange, OnBeforeSave, and OnAfterSave.
callGetRecordByContext.response The UEF context of the opened Task or Appointment record.
registerEventsForRecordLevelEvent Registers record-level event listeners for the specified child-record context.

After following these steps, on OnChildRecordOpen case, you can add listeners for the events with the registerEventsForRecordLevelEvent global function