Process Data vs. Business Data
Process applications very often process business data. However, it is important to understand that there is a difference between process data and business data. We would like to explain this briefly:
Process Data
- Used to control the process flow
- Always related to a specific Process Instance (called a Case in Axon Ivy)
- Process stores References of Business Data (e.g. the ID of a customer, but not the Customer object itself)
Examples:
- Boolean Flags for Alternatives
- Decisions made by User go to the next step
- Counters
- Helper Data to finish the process
Business Data
- Focus on Business Relevant Information
- More important for the Business End User
- Usually displayed and modified by the User via a User Interface, e.g. a User Task
- Often stored outside of Axon Ivy. The process data holds only references to the business data
Examples:
- Customer
- Order Request
- Invoice
Approaches to store Process and Business Data
Our platform offers different ways to store data. Depending on the requirements, an appropriate approach is used
Persistence Flag
When you define your process data please note that Axon Ivy will persist every attribute by default: Flag Persistent is set to true by default. What does that mean? In this case, Axon Ivy will persist process attributes. For non-persistent attributes, the developer needs to get the right values from the business data store if they are needed in the process
This is very important because, in the past, we identified some projects where a lot of big data structures (e.g. complete SAP Web Service Structures) have been marked as persistent, which caused huge amounts of data to be stored in the system database. If you have some backend systems that already hold the business data, store only references and use suitable services to retrieve business data from the backend systems.
When does Axon Ivy store Process Data?
It's very important to know when Axon Ivy stores process data in the system database. Ivy stores data when:
- a Process reaches an Ivy Task (Simple Task, Task Switch, User)
- a Process reaches an Intermediate Event
- additional task/case properties are created (ivy.case.setAdditionalProeprty or ivy.task.setAdditionalProperty)
- case/task notes are created (ivy.case.createNote, ivy.task.createNote)
- a Process reaches a process end if the process contains
-- Tasks
-- Intermediate Events
-- Any API is used which stores information