Establishing workflow for order process - An exercise
The gadget spec URL could not be found



We have already completed the who? what? when? analysis for the order process (Click here to read).

Workflow activity
Activity owners UI Design Requirements Actions allowed
User IDs/User Groups
Create orders Sales Team
Default Order Form
Create order
Sales Team
Customer review Customers
Default Order Form
Confirm order, Cancel order
Customer's email
Product team review Product Team
Default Order Form
Review order
Product Team
Customer relations review
Customer Relations Team
Default Order Form
Close order
Customer Relations
Closed orders
Customer Relations Team
Default Order Form
-
Customer Relations

We have the necessary details for creating the workflow. So let's get started with implementing the workflow for order process in the process design.

The first step in our order process is order creation. Orders are created by any member of the sales team. The newly created orders are marked as open orders. 

Activity Name : Create Orders
Activity Owner : Sales Team
Form : Default order form
Queue : Default queue
Next activity : Waiting for customer review
Next activity trigger : "Create Order" button


Configuring create order workflow activity
   
Select the "Start" workflow activity.
   
Rename this workflow activity as "Create Order" by updating the value in the Namebox.
   
Only the sales team must be able to create product orders. 

Click on the role icon and enter the sales team role name in the formula bar.
   
If required, select the queue and form that must be used for accessing the order instances in the "Create Order" workflow activity.



The next step in our order process is the customer review. Order created by the sales team is reviewed by the customer who placed the order. The customers can either confirm the order using the "Confirm Order" button or cancel the order using the "Cancel Order" button. The orders reviewed by the customer will be marked as either "Confirmed" or "Cancelled" based on user action.

Activity Name : Waiting for customer review
Activity Owner : Customer
Form : Default order form
Queue : Default queue
Next activity : Conditional IF, branching to either Product Team Review or Customer Relations Review
Next activity trigger : "Confirm Order" or "Cancel Order" button


Create a new public cell "CustomerEmail". 

Select the "CustomerEmail" public cell. Enter the following rule in the cell.

=CustomerRef.Email
   
The namebox shows the name of the public cell as "CustomerEmail". The formula bar shows the corresponding rule.

The 
customer model reference has been used to fetch the customer's email..



Create a new public cell "Customer". 

Select the "Customer" public cell. Enter the following rule in the cell.

=DSEARCH(User.UserId=CustomerEmail)
   
The namebox shows the name of the public cell as "Customer". The formula bar shows the corresponding rule.

The 
DSEARCH function has been used to determine the SheetId of the user instance corresponding to the logged in customer.
 




Configuring customer review workflow activity
   
Insert a new workflow activity.
   
Rename this workflow activity as "Waiting for customer review" by updating the value in the Namebox.
   
The order must be accessible only to the customer who placed the order.

Click on the user icon and enter "=Customer" in the formula bar.

This is an example of dynamic user configuration for an activity. 
   
If required, select the queue and form that must be used for accessing the order instances in the "Waiting for customer review" workflow activity.



The customers can either cancel or confirm their order. Depending on the action performed by the customer, the orders have to be moved to their respective workflow activity.

Activity Name : Check Customer Action
Activity Owner : n/a
Form : n/a
Queue : n/a
Next activity : Waiting for product team review or Waiting for customer relations review
Next activity trigger : User action in customer review workflow activity


Configuring IF conditional process
   
Insert a IF conditional branching activity. 

Click on the "+" button to view its branches.
   
Click on the node selector for the "ApproveBranch".
   
Rename this branch as "Confirm" by updating the value in the Namebox.
   
   


Click on the node selector for the "RejectBranch".
   
Rename this branch as "Cancel" by updating the value in the Namebox.
   
   


Select the IF conditional branching activity.
   
Rename this activity as "Check Customer Action" by updating the value in the Namebox.
   
Enter the following condition in the formula bar.

=Caption
   
  The above rule checks the caption of the button that was actioned by the user and branches to the respective branch.
   
  Alternatively, if a condition is to be validated, an IF condition can be configured. The IF condition requires three parameters:
  • Condition
  • Name of the branch that must be executed when true
  • Name of the branch that must be executed when false

The next step in our order process is the product team review. Orders confirmed by the customers are reviewed by the product team. 

Activity Name: Waiting for product team review
Activity Owner: Product Team
Form: Default order form
Queue: Default queue
Next activity: Customer relations team review
Next activity trigger: "Review Order" button


Configuring product team review workflow activity
   
Select the workflow activity in the confirm branch.
   
Rename this workflow activity as "Waiting for product team review" by updating the value in the Namebox.
   
Only the product team must be able to review orders. 

Click on the role icon and enter the product team role name in the formula bar.
   
If required, select the queue and form that must be used for accessing the order instances in the "Waiting for product team review" workflow activity.





Select the workflow activity in the cancel branch. If an order is cancelled by the customer, then that order must be directly sent for customer relations review. Also, all the orders reviewed by the product team must be reviewed by the customer relations team. Hence, the customer relations team review workflow activity must be inserted outside the IF branches.
   
Click on the delete activity to remove the workflow activity in the cancel branch.


The last step in our order process is the customer relations team review. Orders reviewed by the product team are closed by the customer relations team. 

Activity Name: Waiting for customer relations team review
Activity Owner: Customer Relations Team
Form: Default order form
Queue: Default queue
Next activity: Closed Orders
Next activity trigger: "Close Order" button


Configuring customer relations team review workflow activity
   
Insert a new workflow activity as shown in the screen capture.
   
Rename this workflow activity as "Waiting for customer relations team review" by updating the value in the Namebox.
   
Only the customer relations team must be able to close orders. 

Click on the role icon and enter the customer relations team role name in the formula bar.
   
If required, select the queue and form that must be used for accessing the order instances in the "Waiting for customer relations team review" workflow activity.


The closed orders can be viewed by the customer relations team anytime. 

Activity Name: Closed Orders
Activity Owner: Customer Relations Team
Form: Default order form
Queue: Default queue
Next activity: -
Next activity trigger: -


Configuring closed orders workflow activity
   
Insert a new workflow activity as shown in the screen capture.
   
Rename this workflow activity as "Closed Orders" by updating the value in the Namebox.
   
Only the customer relations team must be able to view closed orders. 

Click on the role icon and enter the customer relations team role name in the formula bar.
   
If required, select the queue and form that must be used for accessing the order instances in the "Closed Orders" workflow activity.



  What's next?


Congratulations! You've implemented the workflow for order process. You should be familiar with inserting a workflow activity, using an IF conditional branching activity and Goto branching activity. In the next section, we will learn to create actions.