Compile Time Template Validation


#1

Hi Folks,

Since i am new to using Camunda, I have some doubts regarding validation of Templates at Build Time. I am basically providing solutions as a poc to the end customer to create a workflow on top of camunda engine wherein i need to verify if the Model created by End User is correct or not. By Correct i mean, if the workflow ever reaches the end state or are there infinite cycles/loops in the design. Can someone guide/direct me on how to validate the model created at the creation time(if at all there’s a way to do it) or point me in the direction on how to go about this use case.

Thanks a ton in advance!
Jatin


#2

One option is to use the linter plugin for the modeler: https://github.com/camunda/camunda-modeler-linter-plugin


#3

I was using camunda modeller, how to install this plugin?


#4

Hi @aravindhrs,

All what you need to do is to 1) download the compressed plugin folder from below link


Then, 2) drop the contents of the compressed plugin folder in below path of modeler

<modeler_location>\resources\plugins

But keep in mind that linter plugin is compatible with Camunda Modeler version 3.3 and above


#5

@hassang thanks. I use camunda modeller 3.3.2 version. I have downloaded the .zip file and copied the extracted folder to /resources/plugins folder. Should I copy all the files inside lint folder and put it in directly plugins folder?

image


#6

Gotcha. It worked. Above path was correct :slight_smile:


#7

@hassang bpmn lint doesn’t provide any warnings for service task if i didn’t provide any implementation.


#8

Hi @aravindhrs,

I think it is intended to ensure correct syntax for bpmn model and not to validate the implementation details of the model.

Also you can have a look at below link to get better understanding of how to configure the available rules and to create custom rules too
https://bpmn.io/blog/posts/2018-bpmnlint.html

Maybe @nikku can help more in this regard…


#9

@hassang Thanks for helping out.

The fact that bpmnlint does not validate implementation of service tasks is intended in the core. We are not validating Camunda specifics there.

This however is something we should definitely implement and support in the Camunda Modeler.

I’ve opened this issue to implement an implementation is missing rule. We’ll consider to implement this one.


#10

Hi @nikku,

similar to the validation of a service task, the validation of the gateway expressions could be extended.

If a gateway with outgoing sequence flows is modeled, the linter-plugin does not tell you, that the conditions for the paths are not set. Only if you set a condition for the first path, it tells you, that the conditions for the other paths are not set.
I think that it would be a good addition to the existing rule, if the plugin could tell right away, if the conditions are not set.

Regards
Michael


#11

Thanks for that suggestion!

Could you create a new issue for that one in the bpmnlint-plugin-camunda repository?


#12

Sure. It’s alreay done :+1:


#13

For parallel gateway, there shouldn’t be any conditions for outgoing sequence flows. But the bpmnlint shows error message.

image