Stateful process flows and runtime configurable process actions
The most frequently requested features for process flows relied on two distinct capabilities which, until now, had been absent from process flows. The first capability is to persist information produced by a process action throughout the entire process flow (stateful process flows). The second capability is to configure process actions at runtime to perform their corresponding action with a certain context (runtime configurable process actions).To illustrate the above, the Go to row process action, which is arguably the most requested feature, typically relies on both capabilities. A conceivable use case would be to have a process action that performs a task which inserts a record in the database, followed by a Go to row process action that selects said record in the GUI. This use case would require the process flow to remember the primary key of the record produced by the first process action and use that primary key to configure the Go to row process action to select that record.
To this end, process actions now have input parameters which can be used to configure the process actions at runtime, and output parameters that provide information about the result of the process action and its context. In addition, process flows can now have variables added to them which can be used to write the values of output parameters to, and to set the values of input parameters with. Variables will retain their value throughout the lifetime of the process flow, until they are overwritten.
Process variables in the SF
Input parameters in the SF – 1
Input parameters in the SF – 2
Output parameters in the SF
New process action types
With the introduction of stateful process flows and the ability to configure process actions at runtime, the groundwork has been laid to implement the frequently requested process action types that could not be implemented before.Version 2017.1 of the Thinkwise Suite introduces the following process action types, with more to follow in future releases.
Go to row
Offers input parameters for all columns of the corresponding subject, which will be used for equality conditions on those columns. The first record passing all conditions will be selected. There is also an option to remove all filters and non-locked prefilters and attempt to find the record by setting the search conditions as filter conditions.Change filters
Similar to Go to row, but instead of using the equality conditions to search for a record, this process action type will use them to apply filter conditions to the data set. Additional options are provided to temporarily disable non-locked prefilters, influence case sensitivity, and whether diacritics are ignored or not.Change prefilters
This process action type offers input parameters for all prefilters of the corresponding subject. With these input parameters, the prefilters can be turned on or off, provided that they are not locked or hidden.Change sorting
This process action type allows the sort direction and order of all columns of the corresponding subject to be set.Activate document
This process action type allows an opened document to be activated by means of a Document ID input parameter. Document IDs are provided as output parameters by the existing Open Document and Zoom in on Detail process actions. Only documents that have been opened within the same process flow, or are the starting context of the process flow, may be activated by this process action.Connectors
Aside from the process action types described above, which can be used to automate GUI actions, we have also introduced process action types that can be used to connect to various external media. We call these process action types connectors.Version 2017.1 of the Thinkwise Suite introduces the following connectors.
HTTP
The HTTP connector allows the GUIs to function as generic HTTP(s) clients that enable communication with web services and websites. The HTTP connector supports all common HTTP methods and authentication schemes, and allows the request headers and request content to be configured at runtime. The response headers and response content are offered as output parameters, enabling seamless integration of external websites and web services in the GUIs. With this, it is no longer needed to have custom tasks implemented for features such as checking the distance between two locations, determining routes between two locations (maps), postal code validation, or any type of web service link with a third-party system.We are looking forward to hearing about all of the services being integrated into projects, in this age where REST APIs can be found around every corner.
FTP
With the addition of the FTP connector, the GUIs can also function as generic FTP(s) clients. Support is offered for the most common FTP commands, as well as authentication by means of username and password. Like the HTTP connector, all necessary input and output has been made available to enable seamless integration in the GUIs.SMTP
The SMTP connector allows the GUIs to function as SMTP(s) clients that can send e-mails through the configured SMTP server, with the configured credentials. The TO, CC and BCC recipients can be configured, as well as the message subject, message body and message attachments.Disk
Several process action types have been added to facilitate the most common I/O operations with the local disk and/or network locations. These process action types enable you to read, write, move and delete files and folders for all locations that are accessible to the user executing them.Future
Now that all of the heavy lifting has been done to create an API for many existing GUI-features and new features, we intend to expand on this foundation in the future.Expect to see the following in the future.
- Comprehensive deep linking of the GUIs through the process flow API. All features available to you in process flows will be deep linkable through a URL.
- Simplifying process flow diagrams by introducing reusable subflows.
- Enabling parts of a process flow to be executed for each selected record by introducing iterations.
- More process action types and connectors. If you have any cool ideas, don’t hesitate to let us know.