viadee Process Application Validator 3.0.5 – Enhancing the discovery of process variables
The latest release of the viadee Process Application Validator (vPAV) is all about improving the scope and stability of discovering process variables. Now you can scan even more complex Java classes than before. Let´s have a closer look at the changes.
Discovering process variables
A key feature of vPAV is the detection and data flow analysis of process variables within the BPMN model and Java classes like Delegates. Until now, the discovery was based on simplifying assumptions. For instance, when string fields of an object are used as process variables names in a Java Delegate they had to be set at a specific location in the constructor. Otherwise, the value could not be resolved.
The new release allows the discovery of variables without these restrictions. Moreover, the new, modular architecture makes it easy to extend the discovery of process variables in future releases.
The code rewrite uses its own data flow analysis for keeping track of string and object variables in Java classes. The analysis backtracks most method calls and records changes to fields and local variables. This new approach makes it possible to resolve process variable names which are set by a dynamic string variable. The string variable can have multiple values during the code execution and the current value can be resolved, provided that it is assigned a hardcoded value at some point.
An advanced use case is that an object field is used as a process variable name. If the object is passed to another method and is modified there, vPAV still recognizes the change.
In the example, you can see that an object (object2) with a string field is created. The value of the field is set by the Delegate in the constructor. After that, the delegate execution and object2 are passed to a method of the class Object1. Within this method, the value of object2´s string field is queried and used as process variable name. Our analysis knows which Object2 instance is passed and is able to retrieve the correct value “vPAV” for this process variable name.
Furthermore, the new analysis supports static variables as static variables are synchronized across all objects of a specific class.
Supporting „All“ variable mappings
If you use a call activity within your model, you can use the “All” variable mapping in your BPMN that tells Camunda to map all process variables into the call activity. Before the latest release, only single variable mappings were supported. But now the analysis recognizes the „All“ mapping as well and includes the mapped variables as well as their scope in its data flow presentation.
Until now, you could already include subprocesses without listeners. The new release allows you to add start and end listeners to a subprocess. These are recognized and included in the analysis.
Fully ported to Camunda BPMN Model API
During early development, vPAV included custom parsers for the BPMN model and extracted attributes via direct access to the respective XML document. Initially intended as a mere simplification for testing, appropriate methods from the Camunda BPMN Model API now replace these parsers for more flexibility. Therefore, you cannot only analyze models defined as XML documents but also models built or modified by the Camunda Fluent API.
your contact person
Do you have any questions or would you like to test the viadee Process Application Validator? We are happy to advise and support you in the implementation!