Workflow event-specific functions
There are several functions that relate specifically to workflow events.
| Function | Description | Purpose | Use | Thread | Source |
|---|---|---|---|---|---|
| registerForEvent (eventName) | Function in the workflow environment that writes events represented as strings to the wf_executing.registered_events field. | The workflow events are just strings. When an activity that has registered for an event executes, a comma delimited set of events is stored with the Workflow Executing Activity [wf_executing] record. When the event is triggered in the workflow context, the wf_executing table looks for all executing records that contain the string that represents the event in the wf_executing.registered_events field | The global variable workflow that is available to all Workflow Activity [wf_activity] records is the source of the call. For example, from inside a Run Script activity, a designer can write: workflow.registerForEvent('myEventName'); | Current thread, current mutex | Global variable workflow |
| unRegisterForEvent (eventName) | Function in the workflow environment that removes a string value representing an event that has been written to the wf_executing.registered_events field. | The workflow events are just strings that are written to the wf_executing.registered_events field. When an activity unRegisters for an event, the comma delimited set of events stored with the Workflow Executing Activity [wf_executing] record is searched, and if that string is found, it is removed. | The global variable workflow that is available to all Workflow Activity [wf_activity] records is the source of the call. For example, from inside a Run Script activity, a designer can write: workflow.unRegisterForEvent('myEventName'); | Current thread, current mutex | Global variable workflow |
| fireEvent (eventName) | Function in the workflow environment that examines the contents of the wf_executing.registered_events field, comparing its contents to the eventName passed in. | The workflow events are just strings that are written to the wf_executing.registered_events field. When fireEvent(eventName) is called by a workflow activity, the workflow engine queues up any executing records that contain the string in the registered field. | The global variable workflow that is available to all Workflow Activity [wf_activity] records is the source of the call. For example, from inside a Run Script activity, a designer can write: workflow.fireEvent('myEventName'); | Current thread, current mutex | Global variable workflow |
| fireEvent (eventRecord, eventName) | Function in the workflow environment that sends an event to a specific Workflow Executing Activity [wf_executing] record. The eventRecord is a GlideRecord of the type wf_executing. | This event call expects an onMyEvent event handler in the activity represented in the event record (Workflow Executing Activity [wf_executing] table). When fireEvent(eventRecord, eventName) is called by a workflow activity, the workflow engine queues up the specific executing record with that event and passes the event into the activity definition for the on<eventName> handler to manage. This event is queued up in its own mutex, so the current queue completes before this event is processed. | The workflow script include contains the call for this. For example, from inside a Run Script activity, a designer can write: var w = new Workflow(); w.fireEvent(executing, eventName); | Current thread, current mutex | Workflow script include |
| fireEvent (eventRecordSysId, eventName) | Function in the workflow environment that sends an event to a specific Workflow Executing Activity [wf_executing] record. The eventRecordSysId is the sys_id of a GlideRecord of the type wf_executing. | This is the same as the fireEvent above, except that it accepts an ID and returns the Workflow Executing Activity [wf_executing] record. | The Workflow script include contains the call for this. For example, from inside a Run Script activity, a designer can write: var w = new Workflow(); w.fireEvent(executing, eventName); | Current thread, current mutex | Workflow script include |
| fireEvent (eventRecordSysId, eventName, optionalJSONObject) | Function in the workflow environment that sends an event to a specific Workflow Executing Activity [wf_executing] record. The eventRecordSysId is the sys_id of a GlideRecord of the type wf_executing. | This is the same as the fireEvent above, except that it accepts a JSON object as a third parameter. This object can specify any data expressible as JSON. You can also specify additional functionality when creating a workflow activity. | The Workflow script include contains the call for this. For example, from inside a Run Script activity, a designer can write: var w = new Workflow(); w.fireEvent(executing, eventName, JSONObject); | Current thread, current mutex | Workflow script include |
| broadcastEvent (contextId, eventName) | Function in the workflow environment that sends an event to all currently running Workflow Executing Activity [wf_executing] records in a specified context, regardless of their state. | This is the same as the fireEvent above, except that it accepts an ID and returns the Workflow Executing Activity [wf_executing] record. | The Workflow script include contains the call for this. For example, from inside a Run Script activity, a designer can write: var w = new Workflow(); w.broadcastEvent(contextId, eventName); | Current thread, current mutex | Workflow script include |
| broadcastEvent (eventName) | Function in the workflow environment that sends an event to all currently running Workflow Executing Activity [wf_executing] records in the current context, regardless of their state. | This should not be confused with broadcastEvent above. This event is only available to current Workflow Executing Activity [wf_executing] records. | This is available only through the global workflow variable of the current context. The following is an example of its use from within an activity definition's script: workflow.broadcastEvent(eventName) | Current thread, current mutex | Global variable workflow |
Parent Topic:Workflow events in the base system