Kinetic Code Camp - Bring your skills, or lack thereof.. :dumpster_fire:

Hopefully, this is a good start :slight_smile:

Business Process Management (BPM) tools within the Kinetic application is a way of adding additional functionality, validating data or automation.

BPMs / Functions are simply macros which can be executed from a triggering mechanism.

The trigger could be when a method (event) is used, a database filed is updated (database), being invoked or in some cases when a scheduled task is ran.

There are 4 types within the BPM toolset:

1 - Data directives (Database driven)

A data directive is linked to the database table and is triggered by a database event, data directive are used to control data that may be affected by several different business objects. since implementing Kinetic usage of data directives has become drastically less.

Type Description
In-Trans You still have the opportunity to change data BEFORE it gets written to the DB. You can also abort the transaction if desired at this point
Standard he data has already been written to the DB. You cannot stop or reverse the change. it is done. but you can act on the fact that something has changed, and do some other action such as: update another UD Table, Send an EMAIL, etc.

2 - Method Directives (Business Object driven)

A Method directive is linked to the Business Object and is triggered when business object method is invoked. Business method are accessible via swagger as each BO namespace has a method API endpoint.

Within method directives the options to hook onto even Pre, Base and Post :

Type Description
Pre-Processing BPMs carry out their tasks before the base method is triggered so in this way you can do some validation and prevent the base method running by returning an error message.Typically this is used for data validation purposes.
Base Is used to completely override the core functionality of that method.Note this is very rarely used in Method directives and would strongly advise against this for method directives.
Post-Processing Carry out their tasks after the base method is triggered so in this way you can automate a further task after you know that the base method has run through successfully without error.

3 - uBAQ (Independent to the Business Activity Query (BAQ))

Type Description
Update.Pre-Processing Carries out their tasks before the base method is triggered so in this way you can do some validation and prevent the base method running by returning an error message.Typically this is used for data validation purposes.
Update.Base This would typically be used If using the BPM Directive Configuration within the BAQ without a BPM Update Processing Update Method being Defined.Typically to invoke some other additional functionality.
Update.Post-Processing Carry out their tasks after the base method is triggered so in this way you can automate a further task after you know that the base method has run through successfully without error.
GetList.Post Returns a data into Results table. Base implementation executes the underlying query, using the post method will execute once query has been returned.
GetNew.Post Adds a row into Results table. By default sets fields with initial values after the row has been added.
RunCustomAction.Base Handles custom actions assigned to the query. Executes as base as there is no default base action for the actionID.

Field Update & Field Validate have been omitted as have never used these methods

4 - Functions (Centralised library for re-usable code)

Functions are an evolution of the existing BPM data and method directives.

Function tools can orchestrate Kinetic Services into custom reusable logic you can apply to Kinetic - externally (using REST) or internally invoked from a BPM directive or another Function, or as a scheduled task.

Functions are grouped by library. A library can be published or unpublished (for example, when being developed or updated).

6 Likes