FlowWright Low Level API Model

Last published at: May 14th, 2024

FlowWright has 2 APIs, high level and low level, as you know the high level API gives you access to everything within FlowWright.  cDevDEAPI 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.

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

The low level API is not a complex API, it includes objects and also configuration information.  The left side of the diagram contains the "clsUIModel" object, this model contains all objects and their related objects from the workflow XML.

The right side of the diagram contains all the configuration information.  The "clsConfig" objects has configuration for objects such as data types, steps, business objects, event handlers and more.

Why is this low level API useful? 
FlowWright engines use this API to traverse the structure of a workflow and to execute steps within the workflow.

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

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