graph LR
Runtime_Services["Runtime Services"]
Workflow_Core["Workflow Core"]
BPMN_Task_Specifications["BPMN Task Specifications"]
Python_Script_Engine["Python Script Engine"]
Task_Data_Environment["Task Data Environment"]
Expression_Operator_Base["Expression Operator Base"]
DMN_Engine["DMN Engine"]
Script_Task_Specification["Script Task Specification"]
Business_Rule_Task_Specification["Business Rule Task Specification"]
DMN_Model["DMN Model"]
Workflow_Core -- "orchestrates" --> BPMN_Task_Specifications
Workflow_Core -- "utilizes" --> Python_Script_Engine
Workflow_Core -- "utilizes" --> DMN_Engine
Python_Script_Engine -- "operates within" --> Task_Data_Environment
BPMN_Task_Specifications -- "incorporates" --> Expression_Operator_Base
Script_Task_Specification -- "invokes" --> Python_Script_Engine
Business_Rule_Task_Specification -- "invokes" --> DMN_Engine
DMN_Engine -- "processes" --> DMN_Model
click Runtime_Services href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/SpiffWorkflow/Runtime_Services.md" "Details"
The Runtime Services component in SpiffWorkflow is crucial for enabling dynamic behavior and data manipulation within workflow tasks and DMN rules. It acts as the bridge between the static workflow definition and the live execution of code or evaluation of rules. This component embodies the "Interpreter Pattern" by providing mechanisms to interpret and execute embedded logic.
Runtime Services [Expand]
The overarching conceptual component that encompasses all capabilities for executing embedded scripts and evaluating expressions and DMN rules during workflow execution. It ensures dynamic behavior and data manipulation.
Related Classes/Methods: None
The central orchestrator of BPMN workflows. It manages the state, execution flow, and task dispatching. It is fundamental as it drives the entire workflow process and interacts with runtime services to execute dynamic elements.
Related Classes/Methods:
The abstract base class for all BPMN task types. It defines the common structure and properties for tasks within a workflow, including those that embed scripts or DMN rules. It's fundamental as it provides the blueprint for all executable units in a BPMN process.
Related Classes/Methods:
Responsible for executing Python scripts embedded within BPMN Script Tasks. It provides the environment and mechanisms for running arbitrary Python code, making it fundamental for dynamic script execution.
Related Classes/Methods:
Sets up and manages the execution environment for Python scripts, providing secure access to workflow data and variables. It is fundamental for isolating script execution and providing necessary context.
Related Classes/Methods:
The foundational class for all expression evaluation components. It defines the interface for various operators (e.g., equality, assignment, comparison) used in conditions and data manipulation throughout the workflow and DMN rules. This aligns with the "Interpreter Pattern."
Related Classes/Methods:
Specifically responsible for evaluating DMN (Decision Model and Notation) decision tables. It takes input data and applies the defined DMN rules to produce a decision result, integrating external decision logic into the workflow. It is fundamental for implementing business rule tasks.
Related Classes/Methods:
SpiffWorkflow.dmn.DMNEngine(1:1)
A concrete BPMN task specification that specifically handles the execution of embedded scripts. It is fundamental as it links the BPMN model to the Python Script Engine.
Related Classes/Methods:
A concrete BPMN task specification that integrates DMN decision tables. It is fundamental as it links the BPMN model to the DMN Engine for rule evaluation.
Related Classes/Methods:
Represents the parsed structure of a DMN decision, including input, output, and decision logic. It is consumed by the DMN Engine for evaluation. It is fundamental as it defines the data structure for DMN rules.
Related Classes/Methods: