Before creating a Workflow, it is advised to create these first:
Workflow States like Approved, Canceled, etc.
2. How to Create a Workflow
Go to the Workflow list, click on New.
Enter a name for the Workflow and select the DocType on which to be applied.
Enter the different states of the Workflow. Enter Doc Status for them, select which field to update from the Update Field column, enter what the value will be updated to under Update Value.
The Workflow States can have different colors according to the state. Eg: Green for success. Document statuses: Saved = 0, Submitted = 1, Cancelled = 2.
Enter the Transition Rules.
Workflow Transition Rules
2.2 Things to note when creating a Workflow
Creating a Workflow in SKYHOOK essentially overrides the regular Save and Submit workflow. Thus the document will function based on your Workflow and not based on the pre-set code workflow. Hence there might be no Submit button/option if you have not specified it in the Workflow you create.
If you don’t apply a Workflow to a document, and that document is submit table, then it has the default workflow with states: Draft – Submitted – Cancelled. If you are applying a Workflow to a submit table document, then those default states should be handled by the user.
A document cannot be canceled unless it is submitted.
If you wish to give the option to cancel, you will have to write a workflow transition step that says from submitted you can cancel.
If fields under Update Field column are not updated, a new custom field will be created with the name you set in the ‘Workflow State Field’ field.
2.3 Other options for a Workflow
Is Active: On ticking this, all other Workflows for the selected DocType become inactive.
Don’t Override Status: This Workflow’s status will not override the status of the document (Quotation) in the list view.
Send Email Alerts: Emails will be sent to the user with next possible workflow actions.
3.1 Enable/Disable Optional Workflow State
Introduced in Version 12
In States, optional Workflow state means that the state may not be a part of final approval.
E.g. states like Canceled or Rejected can be optional. Optional State
Note: Workflow Actions are not created for optional states.
You can also add a condition for the Transition to be applicable. For example, in this case, if sales executive creates a quotation with grand total of $100,000 or more, a particular role must approve. For this to happen in the particular transition, you can set a property for Condition:
doc.grand_total <= 100000
Here, grand_total is the field name of the field ‘Grand Total’ of Quotation. To see the field name of a field go to Menu > Customize.
This can be extended to any property of the document.
Introduced in Version 13
In Version 13, you can use date/time, session, getvalue and getlist functions in your condition expressions.
doc.creation > frappe.utils.add_to_date(frappe.utils.now_datetime(), days=-5, as_string=True, as_datetime=True)
4. Example of a Quotation Approval Process
When a quotation is saved by sales user, the status of the document changes to “Draft” and when clicked on submit the status changes to ‘Approval Pending By Sales Manager’:
Workflow State in Transaction
When the Sales Manager logs in, he can either Approve or Reject. If approved the status of the document changes to “Approval Pending By Regional Manager”.
Workflow Action Options
When the Regional Manager opens the quotation, he can finally “Approve” or “Reject” it.
Workflow Action Options