Workflow
Defines a complete workflow configuration for a specific DocType.
Attributes: doctype_name: The target DocType this workflow applies to initial_state: The starting state for new documents states: List of all possible state definitions in this workflow transitions: List of all valid actions and state changes is_active: Whether this workflow is currently activeSource: workflow.py
Fields
Section titled “Fields”| Field | Type | Required | Description | Validators |
|---|---|---|---|---|
| doctype_name | str | Target DocType for this workflow | - | |
| initial_state | str | Initial state for new documents | - | |
| states | list[WorkflowStateDefinition] | State definitions | - | |
| transitions | list[WorkflowTransitionDefinition] | Possible state transitions | - | |
| is_active | bool | Whether workflow is active | - |
Permissions
Section titled “Permissions”| Role | Create | Delete | Read | Write |
|---|---|---|---|---|
| Admin | ✓ | ✓ | ✓ | ✓ |
| System Manager | ✓ | ✓ | ✓ | |
| Workflow Manager | ✓ | ✓ | ✓ |
Configuration
Section titled “Configuration”| Setting | Value |
|---|---|
| Submittable | False |
| Track Changes | True |
Controller
Section titled “Controller”Controller hooks are implemented in *_controller.py files.
Available lifecycle hooks:
validate()- Called before save, raise exceptions for validation errorsbefore_insert()- Called before inserting a new documentafter_insert()- Called after successfully insertingbefore_save()- Called before saving (insert or update)after_save()- Called after savingbefore_delete()- Called before deletingafter_delete()- Called after deleting