Data Objects, is a kind of artifacts, exist outside of the Sequence Flow of the Process, but they are available to all flow objects in a given Process instance. Data Objects allow you to show data flowing through a process by passing information into or out of an Activity. Please note that this flow does not follow Sequence Flows, but Data Associations.
Data Objects in BPMN
There are eight elements representing data in BPMN specification:
- Data Object – a Data Object represents information flowing through the process, such as business documents, e-mails, or letters
- Data Input – is an external input for the entire process. A kind of input parameter.
- Data Output – is data result of the entire process. A kind of output parameter.
- Collection of Data Object – represents a collection of information, e.g., a list of order items
- Data Input Collection – represents a data input collection of information, e.g., a list of stock items
- Data Output Collection – represents a data output collection of information, e.g., a list of stock items
- Association – a data association is used to associate data elements to Activities, Processes and Global Tasks
- Data Store – is a place where the process can read or write data, e.g., a database or a filing cabinet. It persists beyond the lifetime of the process instance.
- Initiating Message – an initialing message represents an item which is transferred, manipulated, or stored during the process.
- Non-Initiating Message – a non-initialing message represents an item which is transferred, manipulated, or stored during the process. The filled icon represents a non-initiating message (or a message which a participant has sent in response to a previous message it received)
Data Object Example
In the Diagram demonstrates below, there are two different ways of showing data flow. The “Assessment” Data Object is output from the “Make Assessment” Sub-Process using an Association connector. The “Assessment” Data Object is also input to the “Archive Details” Sub-Process. The arrowheads on the Association indicate the direction of the data flow.
The “Rejection Letter” Data Object is attached to the Sequence Flow between “Send Rejection” and “Archive Details.” This is really a sort of shorthand used when the data flow is between two Activities follow each other.
Data Object Flow Example
Artifacts can be passed through a process, changing state along the way. We can show this by attaching an artifact to a sequence flow between activities. In this BPMN example, the data object (an Application) is passed along the sequence flow between three tasks. This application shows a simple hiring process for an employer:
- Screen the applicants (data objects)
- Approve the applications (mark status for data objects)
- Hire the applicant
In this business process, the application is passed along as an “attachment” to the sequence flow between each task. This approach to attaching artifacts to flows makes it very easy to understand that the application is “passed” as data from one task to other.
Data Input / Output Object Example
Activities and Processes often need data in order to execute. In addition, they can produce data during or as a result of execution.
- Data requirements are captured as Data Inputs.
- Data that is produced is captured using Data Outputs.
Datastore Example
- A DataStore provides a mechanism for Activities to get or update stored information that will persist beyond the scope of the Process.
- Represents a single unit of information (e.g. database record)