What Are FUNCTIONS?
Functions are grouped together in a Function Library and are a way of providing BPM-like functionality with input parameters and output responses.
They can be called from BPM’s or run on a schedule, or can even be exposed along with other Kinetic REST services so that precise sections of functionality can be executed in a single call rather than a third party application having to make multiple REST calls to Kinetic. They were introduced to also aid with development in Application Studio which provides a much richer and easier to use low-code/no-code UI development tool.
You may require a particular routine that you wish to call from many different areas of the Kinetic application where you have some BPM functionality. Rather than repeating the same functionality in each BPM you can call the Function and pass in a parameter and get a response, which makes things quicker and simpler should you require changes in that particular functionality.
You may also want to string together a number of Kinetic processes in a single Function and expose it so a Third Party system can trigger that functionality. Along with API Key maintenance and Access Scope setup you can provide that functionality as a service in a secure manner.
Why Would I Need To Use a FUNCTION?
What Are BPM’s?
Business Process Management (BPM) tool
BPM’s are a way of adding additional functionality or automation to particular processes.
They provide a way of carrying out extra tasks either before (Pre) a particular standard function, after (Post) a standard function, or you can even replace a standard (Base) function altogether.
The need to create a ‘Base’ BPM is very rare indeed, and by far the most used are ‘Pre’ and ‘Post’ BPM’s.
A wizard tool is provided in the application for you to pick a particular standard function (such as the sales order update method) and then carry out additional checks and ‘Actions’. ‘Pre’ BPM’s carry out their tasks before the base method is triggered, so in this way, you can do some validation and prevent the base method from running by returning an error message. ‘Post’ BPM’s 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.
Another type of BPM is a Data Directive BPM that is triggered based on an update to a particular table. Think of these are database table triggers where you can carry out functionality when a record is created/modified/deleted, regardless of what area of the system the change takes place in.
Why Would I Need To Use a BPM?
You may require a particular field on a screen to be mandatory, or you may want to offer the user a warning message if they create an order with a part that does not exist.
You may want to add some automation to a process, such as automatically creating a shipment when a sales order has been created, or perhaps you want to output a CSV file after a shipment has been created so that you can pass this information to a third-party courier system (such as UPS or FedEx software).
Any type of validation or automation you require can be added with BPMs. A lot can be achieved with the standard BPM wizard tool in the main BPM creation screen (which are setup in a simple and easy to understand way – much like Outlook Email rules) and more complex processing can done by having the BPM pass control to a scripted routine where you can add the required code (using ABL code in Epicor9/Vantage8 and C# code in Epicor10).