Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following functions are used for debugging APL code, or logging user defined messages and events.

debug

Prints the supplied argument to the output target specified in the Execution tab of the Workflow Properties dialog. Valid options are Event or File . If File is selected, the debug is saved in the temporary directory as stated in the system property pico.tmpdir. The file is to be called debug/<workflow name>. Each time the workflow is activated resulting in new debug information being written, the existing file is overwritten. If Event is selected, the output is shown in the Workflow Monitor.

...

ParameterDescription

arg

Argument to write to debug output. Could be any type. Note that printing a UDR type will dump all the field values, which may be a large amount of data. Similarly, the debug output for a table or list type may be very large.

There is a special case if arg is a bytearray. In this case, the output string will be the hex dump returned from the baHexDump built-in function.

For all other variable types, the output is the direct string conversion, meaning debug ( arg ) is the same as debug( (string) arg ).

Returns

Nothing


dispatchAlarmValue

The function makes it possible to detect alarm situations based on workflow behavior. It dispatches a user defined <value> with a user defined valueName from the workflow. The valueName used must be defined using Alarm Detection. For further information, see Alarm Detection[hide]2.3[/hide] in the Desktop user's guide.

...

Info
titleExample - Using dispatchAlarmValue

The following code example displays a situation and syntax useful for the dispatchAlarmValue.

Code Block
consume {
 if ( timeToPay ) {
 udrRoute(chargingUdr, "to_billing");
 //Enable for 'amount out of range' Alarm Detection
 dispatchAlarmValue("chargingAmount", chargingUdr.amount);
 }
}



dispatchEvent

A user can define a customized event type. This is done using an event UDR, optionally extended with user defined fields. This event UDR can be populated with any information by utilizing APL code, and then be sent on, using the dispatchEvent function, to be caught by the Event Notification. For further information about Event Notification, see Event Notifications[hide]2.3[/hide].

Code Block
void dispatchEvent( UltraEvent  eventUDR )

...

ParameterDescription

eventUDR

The name of the event UDR

Returns

Nothing


dispatchMessage

This method is used to produce user defined messages associated to predefined Event Categories. For further information about the Event Notification editor, see Event Notifications[hide]2.3[/hide]. For instance, an Event Category could be named 'DISASTER', and be configured to send an email to the System Administrator. Then an APL agent could send a detailed description with the dispatchMessage function whenever this error situation is detected.

...

ParameterDescription

string

Value/message to append to the Event Category

<Event Category>

Name of a user defined event as declared in the Event Notification Editor. This event must be defined in the Event Notification Editor in order for the APL code to compile.

Returns

Nothing


log*

Logs a message string to the System Log of type error, warning or information. The entry will fall under the Workflow category where workflow name will be the name of the current workflow and agent name will be the name of the agent logging the message.

...

Info
titleExample - Using logWarning

The following code example logs a warning message, which when displayed in the System Log will look like the following figure:

Code Block
logWarning( "UDR failed validation",
 "ANUMBER IS ", input.anum, 
 "BNUMBER IS ", input.bnum,
 "DURATION IS ", input.duration);

System Log inspection


mailNotify

Sends an email to a configured recipient. In order to operate, the system must have an email remitter and an SMTP mail server defined. For further information,see Platform Properties[hide]2.2[/hide].

Warning
titleWarning!

If used within the consume block, make sure that conditional expressions guarantees that this function does not get called for each UDR.

...