FlowWright Low Level API Model

Last published at: April 25th, 2024

FlowWright has 2 APIs, high-level and low-level. As you know, the high-level API gives you access to everything within FlowWright. The FlowWright API is the high-level API.

What's a low-level model? Low level API is a modeling API, it's an API to deal with objects and structure of a workflow definition or workflow instance.  Even though FlowWright describes and saves a workflow using an XML structure, as it's not easy to work with XML when you don't know the full structure of the XML.  FlowWright's low-level API provides objects that map directly to the workflow XML and gives easy navigation and access to the objects stored within the XML.  This API is contained within the FlowWright.Engine library.

Here's the object hierarchy within the low-level API:

The low-level API is not complex; it includes objects and also configuration information.  The left side of the diagram contains the "FWProcessModel" object, which contains all objects and their related objects from the workflow XML.

The right side of the diagram contains all the configuration information. The "FWConfig" objects contain configurations for objects such as data types, steps, business objects, event handlers, and more. This information is accessible using FlowWright's Low-Level API Model.

Why is this low-level API useful? 
FlowWright engines use this API to traverse a process's structure and execute steps within the workflow. It provides great control and precision when designing or executing automated business processes.

How do our customers use it? 
As most process definitions are designed using the graphical workflow designer, they can be built programmatically using this low-level API. For example, our FlowWrightPM product imports a Microsoft Project file and automatically builds a process definition; this is done using the low-level API.

What are the other uses of this API?
This API can also be used to execute processes in real-time. The FlowWright product executes the process in the background using our engine services. But any process can be executed in real time using the modeling API and the engine classes within the API. v9.6 introduced Microservices, which are executed using the low-level API in real time.