Licence 3 Informatique - Modules Conception Application Internet (CAI) / Technologie Orientée Objet (TOO)
Note : The project documentation is written in French.
This project allows loading and visualizing DMN (Decision Model and Notation) files through a web interface. It supports the evaluation of rules defined in FEEL (Friendly Enough Expression Language) based on input JSON files.
A working folder has been created :
You can edit your own diagrams via bpmn.io.
Create your test files in JSON format.
The project can be viewed and tested by following the link below:
Evaluation DMN
The project is ready to use, and all the files have been compiled correctly. You can try it directly by opening index.html
and using the (.dmn
and .json
) files provided in the ./test_files
folder. Files that generate errors and allow for testing if they are correctly detected are also present.
The user must load (via drag and drop or through the file explorer) the DMN file into the “Visualized DMN File” area and the JSON file into the “JSON File” area.
The JSON file must provide input data corresponding to the input data of the DMN diagram.
The name of an input variable must match the name of the input expression in the column of the table processing the input data.
Once the files are provided, the user can visualize the diagram and evaluate it (using the button).
During the evaluation, a FEEL expression is generated from the diagram in the method fileDmn.handlingFeelinExpression()
, and its syntax is as follows :
if((var1 in conditions1) and (var2 in conditions2)) then output1 else "Error"
For example, for the AgeClassification table, the expression is :
if ((age in <13)) then "Child" else if ((age in [13..65))) then "Adult" else if ((age in >=65)) then "Senior" else "Error"
This project relies on several tools and extensions that made the development process smoother and more efficient:
- bpmn.io : An open-source web tool for editing DMN diagrams. For more details, see the bpmn.io License.
- FEEL (Friendly Enough Expression Language) : The language used to evaluate expressions in the DMN model. For more details, see the feel-scala Licence.
- Webpack : A popular JavaScript module bundler, used to bundle JavaScript files, manage dependencies, and optimize the assets of the project. For more details, see the Webpack License.
December 2023