INTERNAL AUTOMATIONS

With workflows you can rewrite how a particular process/workflow is approved in SKYHOOK.

You can set multiple levels of approval for an SKYHOOK Workflow. To allow multiple people to submit multiple requests, for approvals by multiple users, SKYHOOK requires you to fill the Workflow conditions. SKYHOOK tracks the multiple permissions before submission.

Consider a scenario, where multiple levels of approval are required for a quotation. A sales person (user with ‘Sales User’ role) will create a quotation. Then it is either approved or rejected by a sales lead (user with ‘Sales Manager’ role). If approved by sales lead, it is further approved or rejected by regional manager (user with ‘Regional Manager’ role).

Cyber Security Consulting

Overview

1. Prerequisites
Before creating a Workflow, it is advised to create these first:

Workflow Actions
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.

Workflow

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. Features
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.

3.2 Conditions
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.

Allowed functions:

frappe.db.get_value
frappe.db.get_list
frappe.session
frappe.utils.now_datetime
frappe.utils.get_datetime
frappe.utils.addtodate
frappe.utils.now
Examples:

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

Why is it important?