BPMN serialization and processes.json - PROCEED-Labs/proceed GitHub Wiki
The BPMN Editor serializes the graphical elements into BPMN XML. Every implemented serialization is described at the public website: https://dbpms-proceed.gitlab.io/proceed-documentation-website/concepts/bpmn/
There are some parts that are not yet serialized. They are just stored locally in a file called processes.json:
- variables
- createdOn
- lastEdited
- departments
The MS has a file called processes.json which stores data about all processes. It exists because of multiple reasons:
- it is a cache that stores interesting data for fast accessability: most of this data is also stored inside the BPMN XML (e.g. task constraints), but it is stored inside the JSON file for faster access
- it holds some values that are currently not stored inside the BPMN XML (but are intended for storing them there in the future)
- it contains some meta data, especially process runtime information, that is only temporary valid and will never be stored inside the BPMN XML (Deployments and Instances)
The BPMN XML is the source of truth. At the start of the MS, it will override all values inside the processes.json:
BPMN XML => processes.json => BPMN Editor
At runtime changing some of the values goes the reverse direction:
MS (BPMN Editor/Deployments) => processes.json => BPMN XML