Function Declarations(4.3)

Functions may be declared and called within the APL code using normal Java syntax.

Example - Declaring functions

int addNumbers (int a, int b){
    return a + b;
} consume {
    debug( "1 + 1 = " + addNumbers( 1, 1 ) );
}

To declare functions with no return value, the void keyword should be used.

The Synchronized Keyword

In order to support multi-threading, functions updating global variables within realtime workflows must be made thread-safe. To achieve this, the function name is preceded with the synchronized keyword:

Example - Using the synchronized keyword

synchronized int updateSeqNo(){ 
   seqNo = seqNo +1;
   return seqNo;
}

It is possible to read global variables from any function block. However, to avoid race conditions with functions updating the global variables, they must only be accessed from within synchronized functions.

Note!

The synchronized keyword is ignored when used in batch agents.

To declare functions with no return value, the void keyword is used.