DMN Validator

1,221 views
Skip to first unread message

Bharat

unread,
Mar 2, 2016, 8:56:25 AM3/2/16
to camunda BPM users
Hi Guys,

Is there an API/Service that validates the DMN and points out the obvious issues 

i.e If you have a Table like below
<4  -- Less than 4
[5..8] -- B/w 5 & 8
>8 -- Greater than 8

However if you notice there isn't any rule satisfying input "4". I understand one can write test cases for this, But wondering if there is a service/testcase that highlights/warns these more obvious things. 

If there isn't one yet, any pointers on how we can build one please.

Thanks for your time.

-B

Philipp Ossler

unread,
Mar 3, 2016, 3:06:49 AM3/3/16
to camunda BPM users
Hi Bharat,

currently, there is no API or service to validate if the DMN is semantic correct, you can just evaluate it. While deployment, it only checks if it is syntactic correct. Maybe you can hook into parsing by implement a DmnTransformListener and do the validation.

Otherwise, you can check the DMN on design time with tests. There is an interesting blog post [1] with different approaches. 

You may also interested in the DMN online simulator [2].

Does this help you?

Greetings,
Philipp


Bharat

unread,
Mar 3, 2016, 7:15:39 AM3/3/16
to camunda BPM users
Thanks for your reply Philipp.

Fitnesse framework example from the blog looks close to what I am looking for. However, I am quite keen to see some sort of validator that points out more obvious issues (well before test cases), that you could probably use in design stage itself. Say something like a 'Validate' button in create/edit mode. I understand it's not something usually never part of core engine. Was curious to see if anyone in the community has built something related to this in the past. No worries.

Also, is the Fitnesse example demonstrated in the blog is available on Github by any chance.

Thanks again for your valuable time. Appreciate it.

-B

Bernd Rücker

unread,
Mar 4, 2016, 2:04:51 PM3/4/16
to camunda-...@googlegroups.com

Hi Bharat.

 

I pushed an example using Fitnesse from our latest roadshow on GitHub: https://github.com/camunda/camunda-consulting/tree/master/one-time-examples/fitnesse-dmn/camunda-dmn-fitnesse-fixture. However – this is highly unstable at the moment and there is no readme available. You can start it via Eclipse, see screenshots. But I am not sure it really works on another machine. And I cannot really support it at the moment. But maybe it helps you to get started. It is nailed hard coded to the rule set I used at the roadshow. Bottom line: I used this for one demo – but it was never meant to be used as example.

 

Cheers

Bernd

--
You received this message because you are subscribed to the Google Groups "camunda BPM users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-us...@googlegroups.com.
To post to this group, send email to camunda-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/camunda-bpm-users/9f5922ef-3605-4f8a-b053-9c6325a72478%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

mp4...@att.com

unread,
Mar 4, 2016, 5:01:25 PM3/4/16
to camunda BPM users
I'll throw an ignorant 2 cents in here. From my understanding of DMN and its specification, how you implement is very flexible and because it was designed to be extensible, common validators are going be difficult to find.

For example, there is a project called OpenL Tablets that implements a DMN model that has different functionality than that contained within Camunda. This implementation could probably be used as an external DMN repository for Camunda because it follows DMN logic and produces a result based upon inputs. However, the supported decision model is a bit richer.

That tool uses Microsoft Excel as the input interface primarily, so your validation would occur there initially.

I think about the only validation you can get inside Camunda tooling like the Eclipse plugin is XML validation.

The Camunda Modeler standalone tool does a good job of producing valid DMN tables, so unless you're hand creating these tables (it is not easy, I've tried), you have to stick with Camunda Modeler or the bpmn.io version bundled with the server.

One consequence of this is that creation and maintenance of large DMN tables would be very difficult using Camunda's native tooling. The methodology used by Camunda Modeler to create the tables isn't completely obvious, so you'd probably have to dig into the code to see what is being done to build the tables. If you examine the structure of the DMN file XML, you'll see the obvious "overall" structure, but there are linkages between elements that are non-intuitive, which makes creating DMN table programmatically challenging.

Bharat

unread,
Mar 5, 2016, 4:34:47 AM3/5/16
to camunda BPM users
Thanks Bernd. Understand you can't support it. This definitely helps us get started.

Appreciate it.

-B
Reply all
Reply to author
Forward
0 new messages