Applying Workflow Engine APIs to Function Activities

Function activities are stored in PL/SQL procedures. There is a standard API format for all stored procedures called by function activities. When the Workflow Engine executes the function activity, the Workflow Engine passes four input variables and, if a result type is set up for the activity, expects one output variable in return. Output variables are:

·       ItemtypeA category of items that share the same set of attributes (e.g., purchase order).
·       ItemkeyA unique identifier within the same item type for the specific item passing through the workflow process.
·       ActidThe unique identifier of the activity that calls this stored procedure.
·       FuncmodeThe execution mode of the function activity. It can be run, cancel, or timeout. The timeout mode is used for an expired notification that was intended to solicit a response. Each notification has a time-out value. If a notification has received no response after the time-out value has been exceeded, the Workflow Engine will execute the dependent activities with an execution mode of TIMEOUT.
·       ResultThe result of the stored procedure. Results can be:
o    COMPLETE: result_codeStored procedure completed. The result code is specified in the type of the function activity.
o    DEFERRED: dateThe stored procedure is deferred, to be processed in the background or at a specified date (optional).
o    ERROR: error_codeThe stored procedure erred. You can, if you wish, provide the error code.
o    NOTIFIED: notification_ID: userThe stored procedure sent out a notification to a user. You may return the unique identifier for the notification, the notification ID, and the user who sent the notification.
o    WAITINGThe stored procedure has been completed, but there is a waiting period before the function activity is marked as Complete. The background Workflow Engine will mark the function activity Complete after the waiting period has expired.

The stored procedure declaration will be in the following format:
PROCEDURE your_procedure_name (
      itemtype in varchar2,
      itemkey in varchar2,
      actid in number,
      funcmode in varchar2,
      result out varchar2) IS

Once the procedure declaration is completed, you will then have the stored procedure body. A pair of BEGIN and END markers encloses the stored procedure body. In the procedure body, you must check the Funcmode variable to execute codes that correspond to the RUN, CANCEL, and TIMEOUT modes.

1.      What does the input variable Itemkey represent?
2.      What does the input variable Actid represent?
3.      What three function activity execution modes are in a stored procedure?
4.      What are the possible results of a stored procedure in a function activity?