spiff-arena/docs/Building_Diagrams/learn_basics.md

76 lines
9.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Understand the terminology
## BPMN and SpiffWorkflow
Business Process Model and Notation (BPMN) is a diagramming language for specifying business processes. BPMN links the realms of business and IT, and creates a common process language that can be shared between the two.
BPMN describes details of process behaviors efficiently in a diagram. The meaning is precise enough to describe the technical details that control process execution in an automation engine. SpiffWorkflow allows you to create code to directly execute a BPMN diagram.
When using SpiffWorkflow, a client can create the BPMN diagram and still have their product work without a need for you to edit the Python code, improving response and turnaround time.
## Flow Objects
The flow objects are divided into the following three groups: Event, Gateways and Tasks.
### Events
Events, represented with circles, describe something that happens during the course of a process. There are three main events within business process modeling: start events, intermediate events, and end events.
| **Event** | **Symbol**| **Description** |
|-----------|-----------|-----------------|
| Start Event |![Untitled](images/Start.png) | Signals the first step of a process |
| Intermediate Event | ![Untitled](images/Intermediate.png) | Represents any event that occurs between a start and end event. |
| End event | ![Untitled](images/End.png) | Signals the final step in a process. |
### Gateways
Gateways represent decision points in a process. They determine which path the process will take based on certain conditions or rules. There are different types of gateways:
| **Gateway** | **Symbol**| **Description** |
|---------------|-----------|-----------------|
| Exclusive gateway |![Untitled](images/Exclusive.png) | Evaluates the state of the business process and, based on the condition, breaks the flow into one or more mutually exclusive paths |
| Event-based gateway | ![Untitled](images/Eventbased.png) | An event-based gateway is similar to an exclusive gateway both involve one path in the flow. In the case of an event-based gateway, however, you evaluate which event has occurred, not which condition has been met. |
| Inclusive gateway | ![Untitled](images/Inclusive.png) | An inclusive gateway breaks the process flow into one or more flows. |
| Complex gateway | ![Untitled](images/Complex.png) | Complex gateways are only used for the most complex flows in the business process. They use words in place of symbols and, therefore, require more descriptive text. |
### Tasks
Tasks represent activities or work that needs to be performed as part of a process. They can be manual tasks that require human intervention or automated tasks that are executed by systems or applications.
| **Task** | **Symbol** | **Description** |
|---------------|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Service | ![Untitled](images/Service_task.png) | Task that uses a Web service, an automated application, or other kinds of service in completing the task. |
| Send |![Untitled](images/Send.png) | Task that sends a Message to another pool. The Task is completed once the Message has been sent. |
| Receive | ![Untitled](images/Receive.png) | A Receive Task indicates that the process has to wait for a message to arrive in order to continue. The Task is completed once the| message has received. |
| User | ![Untitled](images/User.png) | A User Task represents that a human performer performs the Task with the use of a software application. |
| Manual | ![Untitled](images/Manual.png) | A Manual Task is a Task that is performed without the aid of any business process execution engine or any application. |
| Business Rule |![Untitled](images/Businessrule.png)| Business Rule Task provides a mechanism for a process to provide input to a Business Rules Engine and then obtain the output provided by the Business Rules Engine. |
| Script | ![Untitled](images/Script.png) | A Script Task defines a script that the engine can interpret. |
| Call Activity | ![Untitled](images/Callactivity.png) | A call activity allows you to call and invoke another process as part of this process.processes. |
| Sub-Process | ![Untitled](images/SubProcess.png) | Sub-processes allow you to collapse and expand tasks to quickly convey information. |
## Connecting Objects
Connecting objects are lines that connect BPMN flow objects. There are three different types: sequence flows, message flows, and associations.
| **Connecting Objects** | **Symbol** | **Description** |
|---------------|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Sequence flow symbol | ![Untitled](images/BPMN_sequence_flow-80x31.png) | Connects flow objects in proper sequential order. |
| Message flow symbol |![Untitled](images/BPMN_message_flow-80x30.png) | Represents messages from one process participant to another. |
| Association symbol | ![Untitled](images/BPMN_association-80x31.png) | Shows relationships between artifacts and flow objects. |
## Artifacts
Artifacts are used to provide additional information or documentation within a process. They include data objects (representing information or data needed for the process), annotations (providing explanatory or descriptive text), and groups (used to visually group related elements).
| **Artifact** | **Symbol** | **Description** |
|---------------|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Data Object |<div style="height:50px;width:50px"> ![Untitled](images/Data_Object.png) | Data objects can represent data placed to the process, data resulting from the process, data that needs to be collected |
| Data Storage |![Untitled](images/Data_Storage.png) | Data storage provides the ability to store or access data that is associated with a business model. If your process outputs any data, it will become necessary to store that data. |
| Group | <div style="height:50px;width:50px"> ![Untitled](images/Group.png) | Groups organize tasks or processes that have significance in the overall process. |
| Annotation | <div style="height:50px;width:50px"> ![Untitled](images/Annotation.png) | Annotations allow you to describe the business process and flow objects in more detail. |
## Swimlanes
Swimlanes are used to organize aspects of a process in a BPMN diagram. Swimlanes visually group objects into lanes, with each aspect of the process added to a separate lane.
These elements can be arranged either horizontally or vertically. Swimlanes not only organize activities into separate categories, they can reveal delays, inefficiencies, and the workers responsible for each step in a process.
![Untitled](images/BPMN_swimlane-500x197.png)