0 ratings0% found this document useful (0 votes) 592 views161 pagesSuiteFlow - Workflow Fundamentals - Student Guide
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
ORACLE NETSUITE
SuiteFlow: Workflow FundamentalsThis printing: May 2022
Copyright © 2026, 2022, Oracle and/or its affiliates.
This document contains proprietary information and is protected by copyright and other intellectual property laws.
You may copy and print this document solely for your own use in an Oracle NetSuite training course. The
document may not be modified or altered in any way.
Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy,
print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part
without the express authorization of Oracle andor its affiliates
Oracle NetSuite
500 Oracle Parkway
Redwood Shores, CA 94065Table of Contents | i
TABLE OF CONTENTS
Course Introduction...
01: Enabling SuiteFlow in your Training Account...
02: Adjusting NetSuite Preferences 2
03; Review the Course Case Study (Optional). 3
SuiteFlow Overview ...
01: Inspect the Custom Furniture Request RECOPd.....ns:nnmanunnninnnmanssenniennnanienne 5
02: Create a New Furniture Request Record...
03: Create a Simple Workflow.
EXERCISE SOLUTIONS
Configuring Actions on Data Entry
01: Modify the Furniture Request Entry Workflow ....
02: Implement Actions and Conditions using Client Triggers ..n.nmnsnmnnnnnnnnnnenenn 15
03: Client Triggers and User Roles (Optional) 20
04; Notify User of Missing Email Address (Optional)... .
EXERCISE SOLUTIONS ..nsnsnssntnnnnininnnininininininniinininininnianinninininnannnnisn
Configuring Actions on Record Load.
01: Create a Workflow to Support Actions on Record Load
02: Implement Actions and Conditions using Server Triggers
EXERCISE SOLUTIONS
Configuring Actions on Record Submi
01; Create a Workflow to Support Actions on Record Save... :
02: Identify the Required Fields for the Create Record ACtiON.....susnnnmnnnnnnnnnnnnn 43
03: Implement Actions and Conditions using Server Triggers
04: Modify the Estimated Project Cost Validation...
05: Customize the Send Email Action (Optional) ......snnnnnnnnnnnnnnnnnnnnnnnnnnn 57
EXERCISE SOLUTIONS...
Troubleshooting Workflow Execution.
01: Examine Active Workflows and Workflow History .
02: Troubleshoot Workflow Execution using the Workflow Execution Log 65
EXERCISE SOLUTIONS...
Building Approval Workflows.
01: Prepare Users with Login ACC€SS.........csssessssuseesssnsseensneeseannersssnnaressnnnseensnnsseanneresennatessannses 71
02: Create a Basic Approval Processing Workflow......
SuiteFlow: Workflow Fundamentals ORACLE NETSUITEil | Table of Contents
03: Configure Actions to Support Approval Processing .w.u:nnnunnnninnnnaninanienain 73
04: Configure Multiple Approvers. 91
05; Add Sales Manager Approval... 95
06; Allow Submitters to Recall Furniture Requests (Optional) ....mnsmmnmnnnnnnnnnnenn 97
07: Allow Submitters to Resubmit after Rejection (Optional)...... e101
EXERCISE SOLUTIONS... +104
Updating Record Sublist Lines.. ese 105
01: Update Sublist Field Values. 105
02; Create an Items Sublist Line... 109
03: Apply Sublist Line Discounts... 112
04: Create a New Record based on Sublist Field Values. 114
05; Create a Sublist Line Approval Workflow... 117
06: Perform Line Validations during Data ENtry...un:snnnanunnnnninnananinannienai 127
07: Automate Line Item Discounts using Formulas (Optional) 130
08; Close Orders with Inactive Items (Optional).. 135
09: Create an Expense Line Approval Workflow (Optional) .....nnsnnnaaenaenienain 138
EXERCISE SOLUTIONS...... ou 15S
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsCourse Introduction | 1
COURSE INTRODUCTION
Module Exercises
ot Enabling SuiteFlow in your Training Account
02 Adjusting NetSuite Preferences
Optional Exercises
03 Review the Course Case Study
01: Enabling SuiteFlow in your Training Account
Scenario: To create workflows in NetSuite, you must first verify that the SuiteFlow feature
has been enabled in your SuiteDreams training account.
Enabling SuiteFlow in your Training Account
1 Navigate to Setup > Company > Enable Features.
2. Select the SuiteCloud subtab, locate the SuiteFlow section, and verify that SUITEFLOW
is checked.
3. Click Save (if necessary).
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE2 | Course introduction
02: Adjusting NetSuite Preferences
Scenario: In this optional exercise, you will adjust some basic user preferences that will be
beneficial as you work through tl
course,
1 Navigate to Home > Set Preferences.
2 On the General subtab, adjust the following preferences:
Localization
LANGUAGE English (U.S.) or English (International)
TIME ZONE Adjust to your local time zone,
This will be particularly important when we discuss the workflow
scheduler.
Formatting
DATE FORMAT Adjust to your desired date format.
This is useful when creating conditions referencing datertime criteria,
Defaults
SHOW INTERNAL Checked
10s This allows you to view the internal IDs for fields and records in
NetSuite. We will discuss the importance of this later in the course.
3. On the Analytics subtab, check the SHOW LIST WHEN ONLY ONE RESULT checkbox (if
not already checked). This will display a list when there is only a single record rather
than opening the record in View mode.
Review and set other preferences, as necessary.
4 Click Save when finished.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsCourse Introduction | 3
03: Review the Course Case Study (Optional)
Scenario: in this optional exercise, you will download and review the Course Case Study
document located in the File Cabinet in your NetSuite training account.
1 Navigate to Documents > Files > File Cabinet.
2 Select the Workflow Fundamentals folder and download the "Understanding the Case
Study.pdf" file.
This document providers an overview of the business requirements, participants, and
workflows you will be building throughout this course.
ORACLE NETSUITE
SuiteFlow: Workflow Fundamentals4 | Course introduction
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsSuiteFlow Overview | 5
SuITEFLOW OVERVIEW
Module Exercises
ot Inspect the Custom Fumiture Request Record
02 Create @ New Fumiture Request Record
03 Create a Simple Workfiow
on
Inspect the Custom Furniture Request Record
Scenario: in this hands-on exercise, you will inspect the custom SuiteDreams Furniture
Request record type which will be used as the foundation for developing workflows in this
course.
1 Navigate to Customization > List, Records, & Fields > Record Types.
2 Click on the Furniture Request link to open the record type definition.
Note the record fields in the Fields subtab. You will see that there is a "join" out to the
Customer record, as indicated by the Customer List/Record. You will be adding
additional fields to this Furniture Request record in future exercises.
3 Hover over the More link in the upper-right corner of the page and click the View Types
link to return to the list of custom record types.
4 Click the New Record link in the Furniture Request row. Anew entry form will be
displayed,
5 Inspect the fields on the record entry form:
Furniture Request a sw
(EEE coc | (tee
ous spn veg
+e rom
v4g seco *
Notice that there are currently no defaulted values or field validations.
6 Click the List link in the upper-right corner of the page to return to the list of Furniture
Request records.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE6 | SuiteFlow Overview
g You can also view a list of all Furniture Request records by navigating to Lists >
Custom > Furniture Request.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsSuiteFlow Overview | 7
02: Create a New Furniture Request Record
Scenario: in this hands-on exercise, you will create a new Furniture Request record.
1
10
cre
If you are not currently viewing a list of Furniture Request records, use one of the
navigation methods above and click the New Furniture Request button.
Enter a name for the furniture being requested in the FURNITURE PROJECT NAME field
Select a Product Manager from the PROJECT MANAGER dropdown list.
(Optional) Select a sales rep from the SALES REP dropdown list.
(Optional) There is no reason to check the CUSTOM checkbox at this time. You will
manipulate other fields on the form based on the selection status of this checkbox in
future exercises.
Select a customer from the CUSTOMER sublist, such as "ABC Marketing Inc’.
Enter a value in the ESTIMATED PROJECT COST field,
Enter a value in the RAW MATERIALS COST field,
Enter a value in the DESIRED SALE PRICE field.
Click Save, The Furniture Request record will be saved and re-displayed in View mode.
Click the List link in the upper-right corner of the page to view the list of Furniture
Request records.
You can also hover your cursor over the Recent Records (GJ icon in the NetSuite
navigation bar for a list of recently created/accessed records.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE8 | SuiteFlow Overview
03: Create a Simple Workflow
Scenario: In this exercise, you will create a simple single-state workflow that will introduce
you to the basic functionality of SuiteFlow and working with various workflow components,
such as states and actions.
Create a New Workflow
11 Navigate to Customization > Workflow > Workflows and click New Workflow. The New
Workflow form will be displayed.
2. Fillout the Basic Information and Event Definition sections (leaving all other fields at
their defaults unless otherwise noted):
Basic Information
NAME Furniture Request Entry
SCRIPT ID _sdr_furn_teq_entry
RECORD TYPE Furniture Request
DESCRIPTION | Enter a description of the workflow.
RELEASE STATUS Released
Note: During workflow development, RELEASE
STATUS should be set to "Testing”. This restricts,
‘workflow execution to the workflow owner, For most
workflows created during this course, you will be
setting it to "Released to make it publicly available.
This will allow users (regardless of user role) to
execute the workflow.
KEEP INSTANCE AND HISTORY Always
ENABLE LOGGING Checked
Event Definition
ONCREATE Checked
TRIGGER TYPE Before Record Load
3 Click Save.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsSuiteFlow Overview | 9
The Workflow Manager will be displayed in Edit mode showing a single default state
called "State 1". You will know you are in Edit mode if you see a| view button above the
Workspace.
Modify the Default State
Whenever you create a new workflow, a default state named "State 1" will be created
automatically. To make the new state more meaningful, let's modify the name of the default
state.
4 Edit "State 1” by selecting the state in the Workflow Manager and clicking the edit link
represented by the pencil icon ( #* ) under the State tab, as shown below. You can also
double-click on the state to open the Workflow State form.
5 Change the name of the state to "State 1: Data Entry”. You can also enter a description
of the state, if desired.
© Click Save when finished.
Add a Show Message Action
Now let's add a simple Show Message action that automatically displays a message to the
user when a new Furniture Request record is created.
7 While still in edit mode, select State 1: Data Entry in the Workflow Manager, and click +
‘New Action at the bottom of the State tab.
8 From the list of available actions, click the Show Message link.
9 Fill out the Parameters section (leaving all other fields at their defaults unless otherwise
noted):
rameters
TEXT You must select a customer when creating a custom Furniture Request.
10 Click Save.
11. Double-click on "State 1: Data Entry" and you will see your new Show Message action
listed under the Actions subtab.
g Rather than clicking + New Action from the State tab to create a new action, you can
click the New Action bution under the Actions subtab when editing a state
12 Click Cancel on the Workflow State form.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE10 | SuiteFlow Overview
13 In the Workflow Manager, select (but do not edit) State 1: Data Entry once again.
You should see your new Show Message action listed in the State tab under the Before
User Edit client trigger:
Before User Edit
Execute the Workflow and Test
To see the fruits of your labor (displaying the Show Message action), let's execute your new
workflow by creating a new Furniture Request record.
14 Navigate to Lists > Custom > Furniture Request > New. Try opening the entry form in a
new browser tab
Your workflow executes and immediately displays the configured Show Message action:
tstd1v224597 app.netsuite.com says
Notice that this message is displayed before you have a chance to interact with the form
itself.
15 Click OK to acknowledge the message.
16 (Optional) Complete the entry of a new Furniture Request record.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsSuiteFlow Overview | 11
EXERCISE SOLUTIONS
Having trouble with this module's workflow?
1 Navigate to Customization > Workflow > Workflows.
2 Change the RECORD TYPE filter to "Furniture Request SOLUTION".
3. Click Edit next to the workflow you would like to analyze:
+ SOL Furniture Request Entry 02 (Exercise 03)
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE12 | SuiteFlow Overview
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 13
CONFIGURING ACTIONS ON DATA ENTRY
Module Exercises
o1 Modify the Fumiture Request Entry Workflow
02 Implement Actions and Conditions using Client Triggers
Optional Exercises
03 Client Triggers and User Roles
04 Notify User of Missing Email Address
01: Modify the Furniture Request Entry Workflow
Scenario: Let's return our focus back to the case study and SuiteDreams' business
requirements. SuiteDreams would like to enhance the user experience and enforce business
rules when creating and updating Furniture Request records.
In the following exercises, you will create a single-state workflow and implement a series of
actions and conditions using only client triggers.
When testing actions configured on client triggers, it can be beneficial to clear your
browser's cache when testing client-side actions. This is done by pressing CTRL+F5
(Windows) or CMD#R (Mac OS).
Remove the Show Message Action
To avoid having the Show Message action execute every time we create or update a new
Furniture Request record, let's remove the action from the Furniture Request Entry workflow.
1 Ifyou are not already viewing the list of workflows, navigate to Customization >
Workflow > Workflows.
2 Click on the Edit link next to the "Furniture Request Entry" workflow.
3. Select (but do not edit) State 1: Data Entry.
4 Hover your mouse over the Show Message action and click on the trash can icon ( @ ) to
delete the action
Note: You could have also simply inactivated the action by editing the Show
Message action and checking the INACTIVE checkbox.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE14 | Configuring Actions on Data Entry
Modify "State 1: Data Entry”
5 Select State 1; Data Entry and click on the edit link represented by the pencil icon ( #”)
located in the State tab.
6 On the Workflow State form, change the name of the state to "State 1: Furniture
Request Entry"
7 Enable the DO NOT EXIT WORKFLOW checkbox.
This ensures the workflow remains running on all records on which it is initiated. We will
discuss this option in more detail later in this course,
8 Click Save. Your workflow should now resemble the following:
v
State 1: Furniture
Request Entry
e
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 15
02: Implement Actions and Conditions using Client Triggers
Scenario: In this exercise, you will practice configuring actions and conditions using client
triggers. SuiteDreams has provided specific requirements they would like to see implemented
to facilitate the entry of new Furniture Requests. Evaluate each of the business rules below
and identify the condition(s) that specify when each action should be executed.
Business Rule Action/Condition Configuration
Default ESTIMATED PROJECT COST to $1,000.
Action: Set Field Value
Client Trigger: Before User Edit
Make the CUSTOMER field mandatory when CUSTOM is checked,
otherwise CUSTOMER should be optional
Action: Sot Field Mandatory
Client Trigger: After Field Ecit
Display an error message to the user upon record save when the
ESTIMATED PROJECT COST is greater than $10,000.
Action: Return User Error
Client Trigger: Before User Submit
g Test each action as you configure them to verify that each action executes correctly
This is @ good habit to get into when developing workflows of increasing complexity.
implement Business Rule A
Default ESTIMATED PROJECT COST on new Furniture Request records to $1,000,
y Remember to use the Make Copy option and change the necessary settings forthe
new Set Field Value action.
1 Make sure you are in Edit mode for the "Furniture Request Entry" workflow.
2. With State 1: Furniture Request Entry selected in the Workflow Manager, click + New
Action.
3. Select the Set Field Value action by clicking on its link.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE16 | Configuring Actions on Data Entry
4 Fillout the Basic Information, Parameters, and Value sections (leaving all other fields at
their defaults unless otherwise noted):
Basic Information
TRIGGER ON Before User Euit,
Parameters
FIELD Estimated Project Cost
Value (Static Value)
TEXT 1000
5. Click Save on the Workflow Action configuration form,
In the list of actions under the State tab, you should see the following:
© Before User Eat
Set Field Value Exsimated Project Cost=1000.00
1st Business Rule A
6 Test the action by creating a new Furniture Request record by navigating to Lists >
Custom > Furniture Request > New.
ESTIMATED PROJECT COST should default to 1000.00.
Implement Business Rule B
‘Make the CUSTOMER field mandatory when CUSTOM is checked, otherwise CUSTOMER
should be optional.
7 Re-edit the Furniture Request Entry workflow.
& With State 1: Furniture Request Entry still selected, click + New Action,
9 Select the Set Field Mandatory action by clicking on its link
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 17
10 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON After Field Edit
TRIGGERING CLIENT Custom
FIELDS
Parameters
FIELD Customer
MANDATORY Checked
Click on the [4 icon to open the Visual Builder. Configure the following condition
Condition
FIELD COMPARE TYPE
Custom checked
11 Click Add and then Save on the Workflow Condition form,
12 Click Save on the Workflow Action configuration form.
Now let's repeat the previous steps to make the CUSTOMER field optional when CUSTOM is
unchecked
13 With State 1: Furniture Request Entry still selected, click + New Action,
14 Select the Set Field Mandatory action by clicking on its link.
15 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON After Field Eait
TRIGGERING CLIENT Custom
FIELDS
Parameters
FIELD Customer
MANDATORY Unchecked
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE438 | Configuring Actions on Data Entry
16 Click on the [4 icon to open the Visual Builder. Configure the following condition:
Condition
FIELD COMPARE TYPE
Custom not checked
17 Click OK then Save on the Workflow Condition form,
18 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following two Set Field Display Type actions:
\ After Feld Eat
Set Field Mandatory Customer=True
Set Field Mandatory Customer =Feise
1st Business Rule B
19 Use the previous, unsaved record form (remembering to refresh your browser cache
using CTRL+F5/CMD#R or create a new Furniture Request record (Lists > Custom >
Furniture Request > New),
20 Check CUSTOM. The CUSTOMER field should be made mandatory.
21 Uncheck CUSTOM. The CUSTOMER field should be made optional.
Implement Business Rule C
Display an error message to the user upon record save when the ESTIMATED PROJECT COST
is greater than $10,000.
22 Once again, edit the Furniture Request Entry workflow.
23 With State 1: Furniture Request Entry stil selected, click + New Action.
24 Select the Return User Error action by
king on its link.
25 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted):
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 19
Basic Information
TRIGGER ON Before User Submit
Parameters
TEXT Furniture Requests cannot be more than $10,000.
26 Click on the [4 icon to open the Visual Builder. Configure the following condition:
Condition
FIELD COMPARE TYPE VALUE
Estimated Project Cost greater than 10000
27 Click Add and then Save on the Workflow Condition form,
28 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Before User Submit
Return User Error Furnivre Req
Test Business Rule C
29 Use the previous, unsaved record form (remembering to refresh your browser cache) or
create a new Furniture Request record.
30 Complete the Furniture Request entry form and change the ESTIMATED PROJECT COST
toa value greater than 10,000.
31 Click Save.
You should receive an error that "Furniture Requests cannot be more than $10,000".
32 (Optional) Correct the error and re-save the record.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE20 | Configuring Actions on Data Entry
03: Client Triggers and User Roles (Optional)
Scenario: Users running your workflows must sometimes have access to data in other related
records when executing actions on client triggers. To do so, it requires access to the
Customer record. Alll user roles interacting with Furniture Request records must also have
access to the Customer record for this reason.
8y default, all user roles interacting with Furniture Requests do not have access to the
Employee record, but there are specific user roles that should have access to the Employee
record. This exercise implements a business rule granting access to the Employee record by
configuring a join on a related record—in this case, to the Employee record.
Business rules to implement:
Business Rule Action/Condition Configuration
Restrict Sales Reps to employees only. Employees flagged as "Contractors"
should not have access,
To determine whether @ Sales Rep is @ contractor, navigate to the selected
Sales Rep's employee record and evaluate the TYPE field located on the
Human Resources > Job Information section.
If the selected employee is a contractor, display the following message:
"Sales reps cannot be contractors. Please select a different rep.
Action: Return User Error
Client Trigger: Before User Submit
A ‘You may need to set TYPE = "Contractor" on the Employee record(s) that you plan to
select as a Sales Rep during testing. Also, make sure to select an employee in the
"US — West Subsidiary", as these are the only employees that can be selected when
switching tothe role identified in the steps below.
Edit the Furniture Request Entry Workflow
1 Navigate to Customization > Workflow > Workflows and click on the Edit link next to
the Furniture Request Entry workflow.
Implement Business Rule D
2. Select (but do not edit) State 1: Furniture Request Entry and click + New Action.
3. Select the Return User Error action by clicking on its link.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 2
4 Fillout the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Before User Submit
Parameters
TEXT Sales reps cannot be contractors, Please select a different sales
rep.
5. Click on the (3 icon to open the Visual Builder. Configure the following condition:
Condition
RECORD FIELD COMPARE TYPE SELECTION
Sales Rep Employee Type any of Contractor
6 Click Add and then Save on the Workflow Condition form,
7 Click Save on the Workflow Action configuration form,
In the list of actions under the State tab, you should see the following Return User Error
actions:
Y Before User Submit
Return User Error Furniture Requests cannot be
Return User Error Sales reps cannot be contract
Test Business Rule D
8 Using your Administrator role (Larry Nelson), create a new Furniture Request record,
9 Select "Dale Sullivan" from the SALES REP dropdown list. Dale already has an Employee
Type of "Contractor" established on his Employee record,
10 Complete the rest of the form fields and click Save.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE22 | Configuring Actions on Data Entry
The following error message should be displayed:
tstdv2284597 app.netsuite com says
Sales reps cannot be contractors, Pease select a diferent sles ep.
111 Switch to your Sales Rep — US West role and create a new Furniture Request record by
navigating to Customers > Other > Furniture Request > New.
12. Once again, select "Dale Sullivan" from the SALES REP dropdown list, complete the rest
of the form fields, and click Save.
The following error message is returned:
tstdrv2284597 app.netsuite com says
You cannot subi ths form de to an unexpected ert
While the error message text does not provide much detail, itis displayed because of a
permission issue to the Employee record for our non-Administrator user role, "Sales Rep
- US West”.
Implement Workaround
‘The workaround is to create a custom field that sources from the EMPLOYEE TYPE field in
the Sales Rep record, You can then use the sourced-in field in the condition of the Return
User Error action. Unlike record joins, sourced-in fields do not require special pert
sions.
13. Switch back to your Administrator role.
Let's create a custom field on the Furniture Request record that sources from the EMPLOYEE
‘TYPE field of the Sales Rep record
14 Navigate to Customization > Lists, Records, & Fields > Record Types and select the
“Furniture Request" record type.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 23
15 In the Fields subtab, click New Field to add a field representing Employee Type:
LABEL Employee Type
ID _sdr_fum_req_part_emp_type
TYPE _ListRecord
LISTRECORD Employee Type
STORE VALUE Unchecked
DISPLAY TYPE Hidden
(Display subtab)
Note: You could also specify DISPLAY TYPE = "Inline
Text". It depends if this field is only to support the
workaround or if it should actually display on the
Furniture Request record,
SOURCE LIST Sales Rep
(Sourcing & Filtering subtab)
SOURCE FROM Employee Type
(Sourcing & Filtering subtab)
16 Click Save.
Now modify the condition by evaluating directly against the value of the EMPLOYEE TYPE
field.
17 Navigate to Customization > Workflow > Workflows and edit the Furniture Request
Entry workflow.
18 Select State 1: Furniture Request Entry and edit the "Sales reps cannot be contractors...
Return User Error action under the Before User Submit trigger.
19 Modify the condition by clicking the [4 icon to open the Visual Builder.
20 You can remove the existing condition by selecting it in the Visual Builder and clicking
Remove and then redefine the condition as follows:
Condition
FIELD COMPARE TYPE SELECTION
Employee Type any of Contractor
21 Click OK and then Save on the Workflow Condition form.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE24 | Configuring Actions on Data Entry
2 Click Save on the Workflow Action configuration form.
Re-Test Business Rule D
23 Using your Administrator role, create a new Furniture Request record (Lists > Custom >
Furniture Request > New),
24 In the SALES REP dropdown list, select "Dale Sullivan"
You should receive the following error message:
‘stdrv2284597.app.netsuite.com says
Sales reps cannot be contractors, Please selec a diferent sles ep
25 Switch back to the Sales Rep — US West role and create a new Furniture Request
(Customers > Other > Furniture Request > New).
26 Select "Dale Sullivan" once again.
You should now receive the same error message above.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 25
04: Notify User of Missing Email Address (Optional)
Scenario: In this optional exercise, you will create a workflow running on a Support Case
record. Support cases are accessed at Lists > Support > Cases. The Support Case record
contains an email address field that is sourced-in from the related Customer record.
Business rules to implement:
Business Rule Action/Condition Configuration
Display an informational message to the user about the missing email when
the selected customer's email address is empty.
Action: Show Message
Client Trigger: After Field Sourcing
Create a New Workflow
1 Navigate to Customization > Workflow > Workflows > New.
2. Fill out the Basic Information and Event De!
their defaults unless otherwise noted):
jon sections (leaving all other fields at
Basic Information
NAME Support Case Entry
SCRIPT ID _sdr_support_case_entry
RECORD TYPE Case
DESCRIPTION Enter a description of the workflow.
RELEASE STATUS Testing
KEEP INSTANCE AND HISTORY Only When Testing
ENABLE LOGGING Checked
Event Definition
ON CREATE Checked
ON VIEW OR UPDATE Checked
TRIGGER TYPE Before Record Load
3 Click Save.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE26 | Configuring Actions on Data Entry
Modify the Default State
4 Edit the default "State 1" by selecting the state then clicking the edit link represented by
the pencil icon ( #*).
5 Rename the state "State 1: Data Entry " and enable the DO NOT EXIT WORKFLOW
checkbox.
6 Click Save.
Implement Business Rule E
7 In the Workflow Manager, select State 1: Data Entry and click + New Action.
8 Select the Show Message action by clicking on its link,
9 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted):
Basic Information
TRIGGER ON After Field Sourcing
TRIGGERING CLIENT Company
FIELDS
Parameters
TEXT Please obtain the company's email address.
10 Click on the [4 icon to open the Visual Builder. Configure the following con
Condition
FIELD COMPARE TYPE
E-mail empty
11 Click Add and then Save on the Workflow Condition form.
12 Click Save on the Workflow Action configuration form,
Test Business Rule E
13 Create a new Support Case by navigating to Lists > Support > Cases > New.
14 Enter a subject for the new case in the SUBJECT field.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Data Entry | 27
15 Select a company with an email address ("ABC Marketing Inc") from the COMPANY
dropdown list.
The Show Message action does not execute.
116 Now change the company to one without an email address ("Apeture").
‘The Show Message action executes.
17 Go back to your workflow and change the trigger on the Show Message action to "After
Field Edit".
18 Repeat the steps above.
Regardless of which company you select, the Show Message action will be triggered
before the value has even been sourced-in from the related Customer record,
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE28 | Configuring Actions on Data Entry
EXERCISE SOLUTIONS
Having trouble with this module's workflow?
1 Navigate to Customization > Workflow > Workflows.
2 Change the RECORD TYPE filter to "Furniture Request SOLUTION".
3. Click Edit next to the workflow you would like to analyze:
+ SOL Furniture Request Entry 04 (Exercises 01-02)
+ SOL Furniture Request Entry 04-3 (Optional Exercise 03)
+ SOL Support Case Entry 04-4 (Optional Exercise 04)
Note: You will need to change the RECORD TYPE filter to "Case" to see this
solution workflow.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Load | 29
CONFIGURING ACTIONS ON RECORD LOAD
Module Exercises
ot Create a Workflow to Support Actions on Record Load
02 Implement Actions and Conditions using Server Triggers
Ot: Create Workflow to Support Actions on Record Load
Scenario: SuiteDreams would like to enhance the user experience and enforce business rules
when loading Furniture Request records. In this exercise, you will create a new workflow to
support actions on record load.
Create a New Workflow
1 Navigate to Customization > Workflow > Workflows > New.
2. Fill out the Basic Information and Event Definition sections (leaving all other fields at
their defaults unless otherwise noted):
Basic Information
NAME Furniture Request Load
SCRIPT ID _sdr_furn_req_load
RECORD TYPE Furniture Request
DESCRIPTION | Enter a description of the workflow.
RELEASE STATUS Released
Noto: Allows non-Administrator users to execute
the workflow.
KEEP INSTANCE AND HISTORY Always
ENABLE LOGGING Checked
Event Definition
ON CREATE Checked
ON VIEW OR UPDATE Checked
TRIGGER TYPE Before Record Load
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE30 | Configuring Actions on Record Load
3 Click Save.
Modify the Default State
4 Rename State 1 to "State 1: Furniture Request Load” and enable the DO NOT EXIT
WORKFLOW checkbox.
5 Click Save.
You should have a single-state workflow that resembles the following:
Ww
State 1: Furniture
Request Load
©
ORACLE NETSUITE SuiteFlow: Workflow Fundamentalsfiguring Actions on Record Load | 31
02: Implement Actions and Conditions using Server Triggers
Scenario: In this exercise, you will practice configuring actions and conditions using server
triggers. SuiteDreams has provided specific requirements they would like to see implemented
to change the display characteristics of some of the fields on the Furniture Request entry
form, Evaluate each of the business rules below and identify the condition(s) required to
execute each action.
Specifying an event type is enough of a restriction for some of the business rules below, but
additional conditions may be required. SuiteDreams business requirements to be
implemented in this exercise:
Business Rule Action/Condition Configuration
To establish display persistence of this action when editing a record, let's
add the same Set Fiold Mandatory action to the Before Record Load server
trigger. Make the CUSTOMER field mandatory when CUSTOM is checked,
otherwise CUSTOMER should be optional
Action: Sot Field Mandatory
Client Trigger: Before Record Load
Default the current user as the PROJECT MANAGER for all new Furniture
Requests.
Action: Sot Field Value
Server Trigger: Entry
Change the display label of the CUSTOMER field to "Furniture Client” only
when printing a Furniture Request record.
Action: Set Field Display Label
Server Trigger: Before Record Load
Users with an “Administrator” role should be able to create Furniture
Request records. The only other users who should be allowed to create
Furniture Request records are users in the "Installation/Fitout" department,
Users who are not members of the Installation/Fitout department should
receive the following message when attempting to create new Furniture
Request records:
"You are not authorized to initiate furniture projects.”
Action: Return User Error
Server Trigger: Before Record Load
When choosing between the Entry or Before Record Load triggers, the question to
ask yourself is, "Does the action need to occur every time @ record is loaded or just
the first time the workflow enters the state?”
yw: Workflow Fundamentals ORACLE NETSUITE32 | Configuring Actions on Record Load
When creating a new Furniture Request, the CUSTOMER field is made mandatory based on
the value of the CUSTOM checkbox. However, this is only done during data entry using client
triggers. To establish display persistence of this action when editing a record, let's add the
same Set Field Mandatory action to the Before Record Load server trigger.
1 Create anew custom Furniture Request record
Notice that during record entry, checking CUSTOM makes the CUSTOMER field
mandatory and unchecking CUSTOM makes CUSTOMER optional.
2 Check the CUSTOM checkbox, select a Customer from the dropdown list, and complete
the remaining required fields and click Save,
3 Click Edit to open the record in Edit mode.
When the record is loaded into the browser, you will see that the CUSTOMER field is not
displayed as mandatory even though the CUSTOM checkbox is enabled,
Implement Business Rule A
To ensure proper display persistence of the Set Field Mandatory action, let's make the
CUSTOMER field mandatory when CUSTOM is checked when editing an existing record,
otherwise CUSTOMER should be optional.
4 Edit the Furniture Request Load workflow, select State 1: Furniture Request Load, and
click + New Action.
5. Select the Set Field Mandatory action by clicking on its link
6 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Before Record Load
Parameters
FIELD Customer
MANDATORY Checked
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Load | 33
7 Click on the (4 icon to open the Visual Builder. Configure the following condition:
Condition
FIELD COMPARE TYPE
Custom checked
8 Click Add and then Save on the Workflow Condition form.
9 Click Save on the Workflow Action configuration form.
Test Business Rule A
110 Create and save a new custom Furniture Request record and open the record in Edit
mode.
‘The CUSTOMER field should now be displayed as mandatory since CUSTOM is checked.
Implement Business Rule B
Default the current user as the PROJECT MANAGER for all new Furniture Request records,
11 Re-edit the Furniture Request Load workflow and select State 1: Furniture Request Load.
12 Click + New Action.
13 Select the Set Field Value action by clicking on its link
14 Fill out the Basic Information, Parameters, and Value sections (leaving all other fields at
their defaults unless otherwise noted)
Basic Information
TRIGGER ON Entry
EVENT TYPES Create
Parameters:
FIELD Project Manager
Value (From Field)
RECORD Current Record
FIELD User
15 Click Save on the Workflow Action configuration form.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE34 | Configuring Actions on Record Load
In the list of actions under the State tab, you should see the following:
¥ Enay
Set
jeld Value Projec Manage
Test Business Rule B
16 In a new browser tab/window, create a new Furniture Request record.
You (Larry Nelson) should automatically default as the PROJECT MANAGER.
Leave the unsaved record open for now and continue with the configuration of Business
Rule C.
Implement Business Rule C
Change the display label of the CUSTOMER field to "Furniture Client” only when printing a
Furniture Request record.
17 Return to the Furniture Request Load workflow and add a Set Field Display Label action
to State 1: Furniture Request Load.
18 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Before Record Load
EVENT TYPES Print
Parameters.
FIELD Customer
LABEL Fumiture Client
19 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
© Before Record Load
Set Field Display Label
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Load | 35,
Test Business Rule C
20 Return to the open Furniture Request record created above, complete the required
fields, and click Save.
21 From View mode, click the Print &} icon.
‘The CUSTOMER field should now be displayed as FURNITURE CLIENT.
Implement Business Rule D
Users with an "Administrator" role should be able to create Furniture Request records. The
only other users who should be allowed to create Furniture Request records are users in the
"Installation/Fitout" department.
Users who are not members of the Installation/Fitout department should receive the
following message when attempting to create/copy Furniture Request records:
"You are not authorized to create furniture requests.”
22 Edit the Furniture Request Load workflow and add a Return User Error action to State 1.
23 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted):
Basic Information
TRIGGER ON Before Record Load
EVENT TYPES Copy, Create
Parameters
TEXT You are not authorized to create Furniture Requests.
24 Click on the [% icon to open the Visual Builder. Configure the following two conditions:
Condition
FIELD COMPARE TYPE SELECTION
User Role none of Administrator
Note: Be sure to click Add after each condition.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE36 | Configuring Actions on Record Load
Condition
FIELD COMPARE TYPE SELECTION
User Department none of Installation/Fitout
25 Click Save on the Workflow Condition form
26 Click Save on the Workflow Action configuration form,
Test Business Rule D
Before testing this business rule, you will need to grant login access to an employee in the
Installation/Fitout department (Inger Brown) and another employee who is not a member of
the Installation/Fitout department (Dale Sullivan).
g Remember that this workflow has a RELEASE STATUS of ‘Released’, This allows
non-Administrator users to execute the workflow.
27 Navigate to Setup > Custom > Configure Login Access. The Setup Login Access page will
be displayed.
28 Select "Dale Sullivan" and "Inger Brown" in the EMPLOYEES list on the left side of the
page.
29 Select the "Sales Person" role in the ROLES list on the right side of the page.
30 Click the Generate Employee Access button, The Setup Login Access page re-displays
with links to the IDs containing login access.
ibrown@TSTORVnnnnnn.com (password: training1)
dsullivan@TSTORVannnn.com (password: training1)
311 Make a note of the unique number for your training account that follows TSTDRV:
TSTORV.
32 Logout as Larry Nelson (Administrator) and login as Inger Brown using the login
information above. if prompted to enter security questions, click Remind Me Later.
33 Create a new Furniture Request record by navigating to Customers > Other > Furniture
Request > New.
You should be able to create a new Furniture Request record,
34 Logout as Inger Brown and login as Dale Sullivan using the login information above. If
prompted to enter security questions, click Remind Me Later.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Load | 37
35 Attempt to create a new Furniture Request record by navigating to Customers > Other >
Furniture Request > New.
You should receive a server-generated error message indicating that you are not
authorized to create Furniture Request records.
36 Logout as Dale Sullivan and log back in as Larry Nelson (Administrator),
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE38 | Configuring Actions on Record Load
EXERCISE SOLUTIONS
Having trouble with this module's workflows?
1 Navigate to Customization > Workflow > Workflows.
2 Change the RECORD TYPE filter to "Furniture Request SOLUTION".
3. Click Edit next to the workflow you would like to analyze:
+ SOL Furniture Request Load 06 (Exercises 01-02)
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 39
CONFIGURING ACTIONS ON RECORD SUBMIT
Module Exercises
01 Create a Workflow to Support Actions on Record Save
02 Identify the Required Fields for the Create Reoord Action
03 Implement Actions and Conditions using Server Triggers
o4 Modify the Estimated Project Cost Validation
Optional Exercises
05, Customize the Send Email Action
01: Create a Workflow to Support Actions on Record Save
Scenario: Custom Furniture Requests are always specific to an individual customer.
SuiteDreams would like to perform some additional processing on Furniture Request records
at the time of creation.
SuiteDreams has provided the following business requirements, which you will configure in
Exercise 03:
‘© Create a Phone Call record, assign it to the project manager, and associate it with
the customer.
‘¢ Send an email notification from the project manager to the customer.
‘© Navigate the user to the selected customer's record.
Create a New Workflow
1 Navigate to Customization > Workflow > Workflows > New.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE40 | Configuring Actions on Record Submit
2 Fill out the Basic Information and Event Definition sections (leaving all other fields at
their defaults unless otherwise noted):
Basic Information
NAME Furniture Request Save
SCRIPT ID _sdr_furn_req_save
RECORD TYPE Furniture Request
DESCRIPTION | Enter a description of the workflow.
EXECUTE AS ADMIN Checked
Note: This workflow will access the Employee
record type in order to implement the Send Email
action. This is in order to check for the existence of
an employee's email address. Sales Person roles do
not have access to the Employee record by default
By setting the workflow to EXECUTE AS ADMIN, it
always runs with Administrator level privileges. You
will usually need to check this box for workflows that
access data in other records, especially when the
workflows are accessed by Sales roles or the
Employee Center role.
RELEASE STATUS Released
KEEP INSTANCE AND HISTORY Always
ENABLE LOGGING Checked
Event Definition
ON CREATE Checked
TRIGGER TYPE After Record Submit
3 Click Save.
Create the Necessary States
To meet the business requirements above, we need to create three new states, each
representing one of the business rules to be implemented.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 41
4 Click the + New State button twice so you end up with three states and rename them as
follows:
+ State 1 > State 1: Create Phone Call
+ State 2 > State 2: Notify Customer
+ State 3 > State 3: Go To Customer Record
Note: DO NOT enable DO NOT EXIT WORKFLOW for any of the states.
Your workflow should resemble the workflow below:
state 2: Notiy State 3: GoTo
‘Customer ‘customer Record
You can reorder states as needed by clicking and dragging them within the Workflow
Manager. You cen even draw a marquee around multiple states and drag them as @
group!
Create Transitions
5 To create the necessary transition between State 1 and State 2, hover your mouse over
State 1 and drag the transition handle (represented by the blue semi-circle) to State 2,
as shown below:
Ww
State 1: Create State 2: Notiy State 3 GoTo
Phone call «—-—> Customer customer Racers
S
6 Create a transition between State 2 and State 3 in the same way.
One altemative method of creating transitions is to double-click on a state, select the
Transitions sublist, and click the New Transition button.
You can edit an existing transition by clicking on it in the diagram or by editing it from
the Transitions tab in the Context Panel.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE42 | Configuring Actions on Record Submit,
Your workflow should now resemble the following
State 2: Notiy State 3:60 To
—> “Customer” > customer Record
Perform Initial Test Prior to Action Configuration
7 Navigate to Lists > Custom > Furniture Request > New. You might find it useful to open
the new Furniture Request entry form in a new browser tab/window.
8 Create anew Furniture Request record and click Save. You will automatically be taken to
the new Furniture Request record in
iew mode.
9. Select the Workflow History subtab.
You should clearly see that your new Furniture Request Entry, Load, and Save workflows
were initiated on the record and the Save workflow transitioned sequentially from State
1> State 2 > State 3.
If not, check your configuration in the Event Definition section of the workflow
definition.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 43
02: Identify the Required Fields for the Create Record Action
Scenario: In order to successfully create the new Phone Call record in State 1, you must
provide values in the required fields for that record type. Often times, the names of the fields
displayed in dropdown lists are different than the names of fields displayed on forms in the
user interface. You can easily determine which fields are which by completing the next series
of steps.
1 Create anew Phone Call record by navigating to Activities > Scheduling > Phone Calls >
New.
2 Select Customize Form under the Customize link in the upper-right corner of the page,
as shown below:
mera
3. Click the Fields subtab. The Main sublist will be displayed by default listing all the fields
in the Phone Call record.
The label you see in the user interface is defined by the LABEL column. The name
displayed in various dropdown lists in SuiteFlow is defined by the DESCRIPTION column,
(which is not editable).
Based on the fields listed, enter the description for each of the following field labels:
Label Description
SUBJECT
ORGANIZER
DATE
COMPANY
(Related Records sublist)
‘There is no reason to save the Phone Call record.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE44 | Configuring Actions on Record Submit,
03: Implement Actions and Conditions using Server Triggers
Scenario: Custom Furniture Requests are always specific to an individual customer.
SuiteDreams would like to perform some additional processing on Furniture Request records
at the time of creation.
SuiteDreams has provided the business requirements below:
Business Rule Action/Condition Configuration
Create a Phone Calll record, assign it to the Project Manager, and associate
it with the customer. The phone call should occur 3 days in the future.
Action: Create Record
Server Trigger: Entry
‘Send an email notification from the Project Manager to the customer,
welcoming them to SuiteDreams, and notifying them regarding the pending
phone call
Action: Send Email
Server Trigger: Entry
Navigate the user to the specific Customer record for the inclusion of
rotations, which are usually entered once a custom Furniture Request has
been created.
Action: Go To Record
Server Trigger: Entry
Implement Business Rule A
In this step of the exercise, you will create a Phone Call record, assign it to the Project
Manager, and associate it with the chosen customer. The phone call should occur 3 days in
the future and must take place before the Furniture Request can be approved, We will
discuss approval-based workflows later in this course.
1 Edit the Furniture Request Save workflow.
2. Select State 1: Create Phone Call and add a Create Record action.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 45
3. Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Entry
Parameters
RECORD TYPE Phone Call
4 Still within the Parameters section of the Create Record action, complete the following
steps to define the Phone Call record fields based on the field information you noted in
the previous exercise.
Your Parameters should resemble the following when finished:
5. Click on the [J icon to open the Visual Builder. Configure the following cond
Condition
FIELD COMPARE TYPE
Custom checked
6 Click Add and then Save on the Workflow Condition form.
7 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Entry
Create Record Phone Cal
Test Business Rule A
8 Create and save a new custom Furniture Request record.
2 Open the record of the customer you selected in the Furniture Request by clicking on
the customer hyperlink, or by navigating to Lists > Relationships > Customers.
10 Click the Communication subtab, then the Activities sublist.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE46 | Configuring Actions on Record Submit,
You should see the Phone Call record listed as shown below. Keep in mind the
date was set to three days from now.
meta | [ia [meiner | (agin) [meer] [aagnee]| [verte | [eee
g Ifyou do net see the Phone Call record, you likely did not select a customer when you
created the Furiture Request record; and if thet was the case, you did not have the
CUSTOM checkbox selected.
You can view a full lst of Phone Call records by navigating to Activities >
Scheduling > Phone Calls.
Implement Business Rule B
Now you will configure a Send Email action that sends an automated email notification from
the Project Manager to the selected customer, welcoming them to SuiteDreams, and
notifying them of the pending phone call
11 Edit the Furniture Request Save workflow once again.
12 Select State 2: Notify Customer and add a Send Email action.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 47
13 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Entry
Parameters
‘Sender (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: Project Manager
Recipient (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: Customer
Content (CUSTOM) SUBJECT: Welcome to SuiteDreams!
BODY: We lock forward to working with you to create a piece of
furniture to your specifications.
Regards,
‘The SulteDreams Custom Furniture Project Team
14 Click on the [4 icon to open the Visual Builder. Configure the following three
conditions:
Condition
FIELD COMPARE TYPE
Custom checked
Condition
RECORD FIELD COMPARE TYPE
Project Maneger E-mail ot empty
Customer E-mail not empty
15 Click Save on the Workflow Condition form
116 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Enay
Send Email To: Customer, Subject: Welcome to Su
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE48 | Configuring Actions on Record Submit,
g Make sure Send Email actions are conditionally executed based on the existence of
‘an email address when the email fields are not mandatory. If you try to send an email
to. blank email address, it wll ether give you an "Unexpected Error” message, or
the email will fail (noted in the logs) but a copy of the email message wil stil get
alached to the record
Much like the Email field itself, you may get an error if the Sender or Recipient
records are not set on the Furiture Request record (e.g. Project Manager not
selected). In this case Project Manager and Customer are required, so there is no
concern.
Test Business Rule B
g Bofore testing, make sure the sender and recipiant specified in your Send Email
action have email addresses on their respective ently records!
17 Create and save a new custom Furniture Request record (Lists > Custom > Furniture
Request > New).
118 Open the record of the customer you selected in the Furniture Request by clicking on
the customer hyperlink on the new record, or by navigating to Lists > Relationships >
Customers.
19 Click the Communication subtab, then the Messages sublist.
You should see the email notification similar to what is shown below:
Implement Business Rule C
Finally, let's configure a Go To Record action which navigates the user to the specific
Customer record for the inclusion of notations, which are usually entered once a custom
Furniture Request has been created.
20 Edit the Furniture Request Save workflow, select State 3: Go To Customer Record, and
add a Go To Record action.
ORACLE NETSUITE
SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 49
21 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Entry
Note: The default trigger Is After Record Submit (unlike the
Create Record and Send Email actions which default to Entry
but are also supported at After Record Submit),
rameters
RECORD TYPE Customer
FIELD Customer
Note: Represents a specific Customer ID selected when
creating a new Furiture Request.
OPEN IN EDIT MODE Unchecked
Note: Checking this box opens the record in Edit mode.
Unchecking this box opens the record in View mode.
22 Click on the [4 icon to open the Visual Builder. Configure the following condition:
FIELD COMPARE TYPE
Custom checked
23 Click Add and Save on the Workflow Condition form.
24 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Entry
Go To Record Customer (Using Customer)
Test Business Rule C
25 Test the Go To Record action by creating and saving a new custom Furniture Request
record.
The user should be automatically taken to the Customer record selected in the Furniture
Request,
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE50 | Configuring Actions on Record Submit
Depending on the status of the OPEN IN EDIT MODE checkbox, the record will open in
either Edit or View mode.
26 (Optional) Once you have successfully tested this business rule, you might consider
inactivating the Go To Record action in State 3. This will prevent you from being
navigated away from the newly entered Furniture Request record; making testing future
exercises easier.
To do so, simply edit the Go To Record action and check the INACTIVE checkbox.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | St
04: Modify the Estimated Project Cost Validation
A This exercise requires formulas which are not covered in this course. However, you
should be able to successfully complete the exercise using the steps below.
Scenario: SuiteDreams does not want the project cost validation to be exposed to users of
NetSuite. The details of actions executed on client triggers, such as Before User Submit, can
be seen by users simply by viewing the underlying HTML source code of a NetSuite page.
For this reason, SuiteDreams would like the ESTIMATED PROJECT COST validation moved to
a trigger occurring after the form has been saved.
The additional business requirements to be implemented in this exercise are listed below:
Business Rule Action/Condition Configuration
> Create a workflow field to store the $10,000 limit. This makes the
workflow easier to maintain ifthe value is referred to in multiple places.
> Modify the condition in your action to evaluate against the workflow field
instead of a hardcoded value.
> Include ESTIMATED PROJECT COST and the value of the workflow
field as part of the error message.
Action: Return User Error
Server Trigger: Before Record Submit
Inactivate the Existing Estimated Project Cost Validation
1 Return to the list of workflows and edit the Furniture Request Entry workflow.
2. Select State 1; Furniture Request Entry and edit the Return User Error action configured
on Before User Submit.
3 At the bottom of the Basic Information section, check the INACTIVE checkbox.
4 Click Save. You should see your inactivated Return User Error as the grayed out entry:
Before User Submit
Inactivating actions allows you to preserve your earlier action configuration and easily
necessary.
re-activate later,
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE52 | Configuring Actions on Record Submit,
Modify the Furniture Request Save Workflow
In this series of steps, you are going to modify the Furniture Request Save workflow so it
initiates on Before Record Submit, rather than After Record Submit. This will ensure the new
ESTIMATED PROJECT COST validation executes before the record is saved to the database.
5 Edit the Furniture Request Save workflow.
6 Click the edit link represented by the pencil icon ( # ) located in the Workflow tab and
make the following changes (leaving all other fields at their defaults unless otherwise
Event Definition
TRIGGER TYPE Before Record Submit
7 Click Save.
g If you do not change the TRIGGER TYPE to Before Record Submit the validation will
not execute because the Return User Ertor action is not supported on After Record
Submit
Implement Business Rule D
Create a New Workflow Field to Store Maximum Project Cost
8 Select Fields under the Workflow tab in the Context Panel (as shown below), and then
click + New Workflow Field,
sanay EEE ,
+ eto
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 53
9 Configure the new Workflow Field as follows:
LABEL Maximum Project Cost
ID _sdr_fum_req_max_proj_cost
DESCRIPTION Enter a description of the workflow field,
TYPE Currency
STORE VALUE Checked
DEFAULT VALUE 10000
(Validation & Defaulting
subtab)
110 Click Save on the Workflow Field form. You should see the following:
sane ECTS ,
Create a New State to Perform the Validation
11 Create a new state by clicking on the + New State button in the upper-left comer of the
Workflow Manager.
12 Rename the state to "State 0: Project Cost Validation" and enable the START STATE
checkbox.
13 Drag and drop the new state so it is positioned as the first (entry) state of the workflow.
14 Create a transition from State 0 to State 1. Your workflow should resemble the following
diagram (your workflow may be stubbed out vertically, not horizontally as illustrated
below):
v
Stace 0 Project Stace: Ceate Stace 2: Nosy State 3. GoTo
Cot vandaton one Cal » “Customer > casomer Record
Identify Field IDs for Estimated Project Cost and Maximum Project Cost
15 Create anew Furniture Request record to find out the field ID of the ESTIMATED
PROJECT COST field. Hint: Click on the field's label.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE‘54 | Configuring Actions on Record Submit,
To verify the field ID of the MAXIMUM PROJECT COST field, click on the "Maximum.
Project Cost" workflow field in the Fields list under the Workflow tab.
Enter the corresponding field IDs below:
Field Field Name
A ESTIMATED PROJECT COST
B MAXIMUM PROJECT COST
Configure Action to Perform the Validation
Now let's configure the same Return User Error action that was used for the original
validation in the Furniture Request Entry workflow, only this time, using a server trigger.
16 Re-edit the Furniture Request Save workflow and add a Return User Error action to
State 0: Project Cost Validation
17 Fill out the Basic Information and Parameters sections (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
TRIGGER ON Before Record Submit
Parameters
TEXT Configure the message text as indicated below by substituting the
field IDs above. Make sure to enclose each field name in curly
braces.
You entered an Estimated Project Cost of ffeld_AJ. The maximum
cost allowed is (field_B}.
Fields are entered in the message text by enclosing their IDs in curly braces (). This is
rot supported on client triggers, but itis possible here since you are validating on the
Before Record Submit server trigger.
‘You can optionally embed HTML tags in the message text as welll
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 55
18 Click on the [4 icon to open the Visual Builder. Configure the following condition:
Condition
FIELD COMPARE TYPE VALUE FIELD
Estimated Project Cost greater than Maximum Project Cost
(Worktiow)
19 Click Add and then Save on the Workflow Condition form.
20 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Before Record Submit
Return User Error You entered an Estimated Pro,
21 Finally, select the transition between State 0 and State 1 and click the edit link
represented by the pencil icon ( 4° ) located in the Transition tab:
ce Workflow
1 From: State 0: Project Cost
vW Validation a
To: State 1: Create Phone Call
State 0: Project
‘Cost validation
After Record Submit
condition
22. Change the TRANSITION ON configuration to "After Record Submit".
Note: This will ensure that the trigger context is changed to support the Send
Email and Go To Record actions in States 2 and 3, respectively.
23 Click Save on the Workflow Transition form.
Test Business Rule D
g Remember to clear cache using CTRL+F5 (Windows) or CMD+R (Mac OS) since you
inactivated the previous version of the Estimated Project Cost validation running in
the browser.
24 Test the new validation by creating and saving a new custom Furniture Request record,
making sure that the value entered for ESTIMATED PROJECT COST is greater than
$10,000.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE56 | Configuring Actions on Record Submit,
Upon save, an error should be displayed similar to the following:
‘TL netsurte
Rather than receiving a user-friendly popup message, you are taken to a SuiteScript
error page where the details of the Return User Error action are displayed.
This error page is a tell-tale sign that the Return User Error action has been configured
ona server trigger rather than a client trigger.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 57
05: Customize the Send Email Action (Optional)
A ‘This exercise requires the use of formulas which are not covered in this course.
However, you should be able to complete the exercise using the detailed steps below
Scenario: SuiteDreams wants to personalize their notifications by having the subject line and
body of the email contain values from the Furniture Request, related Customer record, and
Employee record.
SUBJECT Welcome to SulteDreams, company_name!
BODY We leok forward to working with you to create a name_of furniture
er your specifications.
We have your phone number as phone_number and your current
balance is balance. Please contact us if there are any discrepancies.
Regards,
project_manager
email_address
phone_number
The information in itatics above will be dynamically replaced with data on the Furniture
Request and related records.
Identify Field IDs
1 You can identify field IDs by opening a Furniture Request, Customer, and Employee
record, locating the appropriate field, and clicking on each field's label.
g Iffield IDs are not displaying when clicking on a field's label, you must enable it by
navigating to Home > Set Preferences and check SHOW INTERNAL IDS in the
Defaults section of the General subtab.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE58 | Configuring Actions on Record Submit,
2 Locate and note the field IDs based on the records and field labels below:
Record Field Label Field ID
Fumiture Request CUSTOMER
FURNITURE PROJECT NAME
PROJECT MANAGER
Customer PHONE
BALANCE (Financial subtab >
Balance Information)
EMAIL
Employee
(Project Manager) EMAIL
Modify the Text of the Email
3. Edit the Furniture Request Save workflow and edit the existing Send Email action in
State 2: Notify Customer.
4 Edit the SUBJECT and BODY fields based on the text in the exercise scenario above;
substituting the items in italics below with the proper field IDs.
‘Welcome to SuiteDreams, (company_name}!
\We ook forward to warking with you to create a name_of_furiture} per your specifications.
\We have your phone number as jphone_number} and your current balance is fbafance). Please contact us if
there are any discrepancies.
Regards,
(roject_manoger)
{email_address}
{phone_number)
5 Click Save.
gy Field IDs are always entered in all lowercase characters and must be surrounded by
curly braces. For example, name}
Field IDs on related records have an additional identifier to represent the related
record. When processing custom record types, these identifiers are the field IDs of
the ListRecord fields creating the relationship. For example,
{eustrecord_scl_fum_req_pm.phone}.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsConfiguring Actions on Record Submit | 59
A Use caution when copying field IDs from the field-evel help directly to the body of the
‘email message. This will copy the ID inclusive of any formating which might prevent
the system from fetching the actual information. To avoid this, copy/paste the field ID
in a plain text editor (such as Notepad) frst so thatthe formatting is removed before
pasting it tothe body of the email
© Test the updated email notification by creating and saving a new Furniture Request
record.
7 From the customer record currently being displayed in View mode, select the
‘Communication subtab and look for the new email notification entry in the Messages
sublist,
8 Click on the View link on the email you want to open to view the whole message.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE60 | Configuring Actions on Record Submit,
EXERCISE SOLUTIONS
Having trouble with this module's workflow?
1 Navigate to Customization > Workflow > Workflows.
2 Change the RECORD TYPE filter to "Furniture Request SOLUTION".
3. Click Edit next to the workflow you would like to analyze:
+ SOL Furniture Request Save 07 (Exercises 01-03)
+ SOL Furniture Request Save 07-4 (Exercise 04)
+ SOL Furniture Request Save 07-5 (Optional Exercise 05)
02: Identify the Required Fields for the Create Record Action
3 Based on the fields listed, enter the description for each of the following field labels:
Label Description
SUBJECT Title
ORGANIZER Assigned
DATE Start Date
COMPANY Company
(Related Records sublist)
04: Modify the Estimated Project Cost Validation
18 Enter the corresponding field IDs below:
Field Field Name Field ID
A ESTIMATED PROJECT COST —_custrecord_sd_furn_req_est_proj_cost
B MAXIMUM PROJECT COST —_—_custworkflow_sdr_furn_req_max_proj_cost
ORACLE NETSUITE SuiteFlow: Workflow Fundamentalssto!
re the Send Email Action
Configuring Actions on Record Submit | 61
1 Locate and note the field IDs based on the records and field labels below:
Record
Furniture
Request
Customer
Employee
(Project
Manager)
Field Label
CUSTOMER
FURNITURE PROJECT
NAME,
PROJECT MANAGER
PHONE
BALANCE (Financial subtab
> Balance Information)
EMAIL,
PHONE
SuiteFlow: Workflow Fundamentals
Field ID
custrecond_sde_furn_neq customer
custrecord_sdr_furn_req_pm
custrecord_sdr_furn_req_ customer. phone
custrecord_sdr_furn_req customer. balance
custrecord_sdr_furn_req_pm.email
custrecond_sdr_furn_req_pm.phone
ORACLE NETSUITE62 | Configuring Actions on Record Submit,
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsTroubleshooting Workflow Execution | 63
TROUBLESHOOTING WORKFLOW EXECUTION
Module Exercises
ot Examine Active Workflows and Workflow History
02 Troubleshoot Workflow Execution using the Workflow Execution Log
01: Examine Active Workflows and Workflow History
Scenario: In this exercise, you will practice viewing Active Workflows and Workflow History
using the Furniture Request Save workflow.
Viewing Active Workflows
1 Create and save a new Furniture Request record making sure to select a customer from
the CUSTOMER dropdown list.
2 Return to the list of Furniture Request records and View/Edit the record you just
created
3. Select the Active Workflows subtab. You should see Furniture Request Entry and
Furniture Request Load listed as currently running workflows on the record.
‘Why is Furniture Request Save not listed?
Answer:
Viewing Workflow History
4 Select the Workflow History subtab. Here you can see a more granular view of the
individual states visited during the processing of each workflow.
You should see entries for the Furniture Request Entry and Furniture Request Load
single-state workflows, and the 4 states in the Furniture Request Save workflow. You
can see that the Save workflow transitioned sequentially through each state.
5. Click on each Log link next to each state and view its corresponding Workflow Execution
Log.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE64 | Troubleshooting Workflow Execution
You should see that all actions were successfully processed in each state.
State 0: Project Cost Vali
jon
if you entered an ESTIMATED PROJECT COST < $10,000 the workflow execution log for State
O will show that the Retum User Error action was considered but was not ultimately
executed, More on this in a moment.
State 1: Create Phone Call
State 2: Notify Customer
1 honing AEE er SHE en TE one HES ans.
State 3: Go To Customer Record
fe on =a
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsTroubleshooting Workflow Execution | 65
02: Troubleshoot Workflow Execution using the Workflow Execution Log
Scenario: In this exercise, you will examine a pre-built (and broken) workflow called
“Furniture Request Troubleshooting" to see how the configuration of triggers, actions, and
transitions affect overall workflow execution. After running the broken workflow, you will
view the Workflow Execution Log to understand the logging behind the workflow's
processing,
a ‘The Furniture Request Troubleshooting workflow Is @ modified of the Fumiture
Request Save workflow, To avoid conflicts during workflow execution, you must first
disable Furniture Request Save and enable Furniture Request Troubleshooting.
Disable the Furniture Request Save Workflow
1 Return to the list of workflows and edit the Furniture Request Save workflow.
2. Click the edit link represented by the pencil icon ( #* ) located in the Workflow tab.
3. Change the RELEASE STATUS from "Released" to "Not Initiating”
4 Click Save.
Enable the Furniture Request Troubleshooting Workflow
This workflow is currently in a "Not Initiating” status. Let's change the status to "Released" so
we can effectively troubleshoot its execution.
5 Once again, return to the list of workflows and edit the pre-built "Furniture Request
Troubleshooting" workflow.
© Click the edit link represented by the pencil icon ( 4° ) located in the Workflow tab.
7 Change the RELEASE STATUS from "Not Initiating" to "Released".
8 Select "Always" from the KEEP INSTANCE AND HISTORY dropdown list.
9 Make sure ENABLE LOGGING is checked.
10 Click Save.
Execute the Workflow and Test
11 Create a new Furniture Request record.
The "broken" Furniture Request Troubleshooting workflow has just been initiated on
the new record.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE6 | Troubleshooting Workflow Execution
If you had not previously inactivated the Go To Record action in State 3, the first thing
you may have noticed is that the Customer record asso
fed with the Furniture
Request is not displayed. Instead, you are taken to the newly created Furniture Request
record in View mode. This should be a clue that something has changed during workflow
execution.
Let's consult the Workflow Execution Log to see what happened.
Troubleshoot Workflow Execution
12 Click on the Workflow History subtab.
You should now see that the new Furniture Request Troubleshox
executing instead of the Furniture Request Save workflow.
1g workflow is now
13 Click the Log link in the "State 0: Project Cost Validation" row. This represents the entry
state of the Troubleshooting workflow.
14 On the Workflow Log page for the selected state, enable the Show Rejected
Actions/Transitions checkbox.
The following log details will be displayed:
Notice that the Return User Error action was considered for execution. However, you
will see that the condition, "If Estimated Project Cost is greater than Maximum Project
Cost” (which is 10,000), evaluated false. The action was considered for execution but
was ultimately not executed (since you likely did not enter an ESTIMATED PROJECT
COST greater than 10,000).
15 Click the Log link in the "State 1: Create Phone Call" row.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsTroubleshooting Workflow Execution | 67
Analyze the triggers and actions executed. Do you see any problems at this state?
Answer:
16 Click the Log link in the "State 2: Notify Customer" row.
Here you will see that the Send Email action was skipped. This is because State 2
inherited the Before Record Submit trigger from State 0. However, if you recall from our
discussion about the Send Email action, it can only be executed on After Record Submit.
17 Finally, click the Log link in the "State 3: Go To Customer Record" row.
If the Go To Record action in State 3 is still executing, you will notice a similar situation
as with the Send Email action in State 2. Once again, the Before Record Submit trigger
was inherited from State 2, and the Go To Record action is not supported on Before
Record Submit, so it too, was skipped.
Fix the Workflow
Now let's fix the workflow so all actions are executed when they should be.
18 Go back and edit the Furniture Request Troubleshooting workflow and select the
transition from State 0 to State 1 and click the edit link represented by the pencil icon (
/ in the Transition tab.
19 Select "After Record Submit" from the TRANSITION ON dropdown list.
20 Click Save.
With the previous TRANSITION ON configuration of , State 1 inherited the
Before Record Submit trigger from workflow initiation. This has no effect on the Create
Record action configured in State 1, since Create Record actions are supported by all
server triggers.
By changing the TRANSITION ON configuration from to After Record Submit, the
workflow's active trigger is changed from Before Record Submit (inherited by the
initiating workflow) to After Record Submit upon its entry to State 1.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE68 | Troubleshooting Workflow Execution
The Before Record Submit trigger was carried into the remaining states and transitions
which ultimately affected the Send Email and Go To Record actions in State 2 and State
3, respectively.
The following diagram helps illustrate the behaviors described above:
Workflow Initiation risces TPE fore Record brat
‘State A
‘ation Conf
create Record |
Tranatan | TRANSITION On Ate Record Smt
state B Acti Tagger After Record Stet
‘ation Confie
‘Send Emit
‘Trarciton | TRANSITION On chi
State C Actin Tigger After cod Stent
‘ation Con
cotonecom | enciion cot
Re-test the Workflow
Verify that the workflow and all configured actions are executing properly.
21 Create one final Furniture Request record and verify the Workflow Execution Logs. They
should all look nice and clean, with all actions executing normally again.
22 (Optional) Play around with different actions and transition configurations and see how
they behave using the Troubleshooting workflow.
Reset Workflow Release Statuses
A Before continuing, be sure to update the RELEASE STATUS of the Furniture Request
Save workflow from “Not Initiating” back to "Released" and set the status of Fumiture
Request Troubleshooting to "Not Initatn
Create a new Fumiture Request record and verify that the Fumiture Request Save
workflow is processing correctly.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsTroubleshooting Workflow Execution | 69
EXERCISE SOLUTIONS
Having trouble with this module's workflows?
1 Navigate to Customization > Workflow > Workflows.
2 Change the RECORD TYPE filter to "Furniture Request SOLUTION".
3. Click Edit next to the workflow you would like to analyze:
+ SOL Furniture Request Troubleshooting 08 (Exercise 02)
01: Examine Active Workflows and Workflow History
3 Why is Furniture Request Save not listed?
Answer: Because it has already completed processing, Remember, Active Workflows
only shows workflows currently running on a record. Entry and Load are both single-
state workflows with the DO NOT EXIT WORKFLOW option enabled, so the workflow
continues to run on the record.
Furniture Request Save is a multi-state workflow that does not have DO NOT EXIT
WORKFLOW enabled on any of its end states. As a result, the workflow transitions
through each state until compl:
02: Troubleshoot Workflow Execution using the Workflow Execution Log
15 Analyze the triggers and actions executed, Do you see any problems at this state?
Answer: There are no processing errors for State 1: Create Phone Call.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE70 | Troubleshooting Workflow Execution
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 72
BUILDING APPROVAL WORKFLOWS
Module Exercises
on Prepare Users with Login Access
02 Create a Basic Approval Processing Workflow
03 Configure Actions to Support Approval Processing
04 Configure Multiple Approvers
05 ‘Add Sales Manager Approval
Optional Exercises
06 Allow Submitters to Recall Furniture Requests
o7 Allow Submitters to Resubmit after Rejection
The exercises in this module will walk you through the creation of an approval processing
workflow that will serve as a foundation for the more complex approval processing
workflows you will create later in this module.
01: Prepare Users with Login Access
Scenario: Several SuiteDreams users with various types of user roles are involved in a typical
approval process. This exercise prepares your SuiteDreams account with additional user login
access and assigns them to specific roles. This allows you to mirror real-world approval
processing
Configure Login Access
A DO NOT reference the logins used by the instructor during the walkthrough.
demonstrations as they are specific tothe instructor's account. You must complete
the steps below to generate your own account logins
‘The TSTDRVannnnn portion ofthe email address is always unique to the specific
traning account you are using to avoid conflicts with other student logins.
1 Navigate to Setup > Custom > Configure Login Access. The Setup Login Access page will
be displayed.
2. Select the following employees in the EMPLOYEES list on the left side of the page by
pressing the CTRL key and apply the "Sales Person" role in the ROLES list on the right
side of the page:
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE72 | Building Approval Workflows
+ Aubrey Pober
+ Edwin Goldwasser
3. Click the Generate Employee Access button. The Setup Login Access page re-displays
with links to the IDs containing login access.
Make a note of the unique number for your training account that follows TSTDRV:
TSTORV.
Copy them to Notepad for use later.
4 Select the following employees in the EMPLOYEES list on the left side of the page by
pressing the CTRL key and apply the "Sales Manager" role in the ROLES list on the right
side of the page:
+ Fiona Small
+ James Rollings
+ John Rittman
+ Matt Nolan
5 Click the Generate Employee Access button. The Setup Login Access page re-displays
with links to the IDs containing login access.
© Copy them to Notepad for use later. You should have these user account logins,
apober@TSTORVnnnnnn.com
egoldwasser@TSTORVannnnn.com
fsmall@TSTORVannnnn.com
Jroliings@TSTORVannnnn.com
Jrittman@TSTORVannnnn.com
mnolan@TSTORVannnnn.com
Note: The password for all users is training.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 73
The rest of the email address is always based on first name initial + last name, as
follows:
Aubrey Pober apober@TSTORVnnnnnn.com
Edwin Goldwasser _egoldwassen@TSTORVnnnnnn.com
Fiona Small fsmal@TSTORVnnnnnn.com
James Rollings _jrollings@TSTORVannnnn.com
John Rittman _jrttman@TSTORVnnnnnn.com
Matt Nolan mnolan@TSTORVnnnnnn.com
You will use these login IDs later when testing specific business rules associated with the
approval processing workflow. Matt Nolan's login will only be used to test Exercise 04.You
can re-run the Setup Login Access tool at any time to add another user with login access or to
modify the list of roles.
When logging in as each of these users, you will be prompted to "Set Password
‘Security Questions". You can click Remind Me Later when prompted,
ORACLE NETSUITE
SuiteFlow: Workflow Fundamentals74 | Building Approval Workflows
02: Create a Basic Approval Processing Workflow
Scenario: In this exercise, you will create the basic structure of your approval processing
workflow. It will serve as the foundation for the implementation of the remaining business
rules in future exercises. You will stub out the states of the workflow, configure the required
buttons to support approval and rejection processing, and configure button-triggered
transitions.
Upon completion of this exercise, your workflow will resemble following:
state 1 ating for
‘approval
Sista 2 Request State Request
‘Approves "ejected
Create a New Workflow
1 Create anew workflow as follows (leaving all other fields at their defaults unless
otherwise noted):
Basic Information
NAME Furniture Request Approval
SCRIPT ID _sdr_furn_req_approval
RECORD TYPE Furniture Request
DESCRIPTION Enter a description of the workflow.
EXECUTE AS ADMIN Checked
RELEASE STATUS Released
KEEP INSTANCE AND HISTORY Always
ENABLE LOGGING | Checked
Event Definition
ON CREATE Checked
TRIGGER TYPE After Record Submit
2 Click Save.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 75
Create the Required States
3. Using the Workflow Manager, add and arrange the following three states:
+ State 1: Waiting for Approval
+ State 2: Request Approved
+ State 3: Request Rejected
Note: Make sure you enable DO NOT EXIT WORKFLOW for each end state, but
do not configure any actions at this time. You will do that later.
When completed, your workflow should resemble the diagram below:
state ag for
‘soronl
State Request Stat 2 Request
3 none ected
Configure Buttons
Buttons will be added so the Project Manager can approve or reject Furniture Request
records. You will practice using Action Groups to configure both Add Button actions.
4 Edit State 1: Waiting for Approval.
5. Select the Actions subtab, click the New Group button, and enter the following
information:
Basic Information
SCRIPT ID _sdr_furn_req_btn_grp
TRIGGER ON Before Record Load
6 Click Save. You should see the following Action Group listed in the Actions subtab:
7 Click the Edit
link next to your new action group.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE76 | Building Approval Workflows
8 At the bottom of the Workflow Action Group form, click the New Action button.
9 Select the Add Button action and configure it as follows (leaving all other fields at their
defaults unless otherwise noted)
Basic Information
SCRIPT ID _sdr_furn_req_btn_approve
Parameters.
LABEL Approve Request
SAVE RECORD FIRST Unchecked (or Checked)
This option ensures that any changes to a form are saved when
clicking a button in Edit mode. This allows the approver to update
the record as needed before approving or rejecting, but ensures
those changes are committed to the database during approval
‘The buttons are seen as an additional option on the Save button,
‘appearing as Save &
110 Click Save. You should see your new "Approve Request" button:
11 Repeat the steps above for the "Reject Request” button. Enter the following
information:
Basic Information
SCRIPT ID _sdr_furn_req_btn_reject
Parameters
LABEL Reject Request
SAVE RECORD FIRST Unchecked (or Checked)
You should now see both buttons in your Action Group:
112 Click Save on the Workflow Action Group form. You may receive a message indicating
the record has not changed.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 77
13 Click OK. The State 1: Waiting for Approval action list should resemble the following:
14 Click Cancel on the Workflow State form to return to the Workflow Manager.
Configure Transitions
Now let's add transitions between the three states and configure each button to trigger the
appropriate transition.
15 Create a transition from State 1 to State 2, and from State 1 to State 3. Your workflow
should now resemble the following diagram:
v
State : wating for
appro
‘Sie 2 Request
‘eproves. <
Sista Request
Rejected
What is the only sensible configuration for TRANSITION ON in this case?
Answer:
16 Select the transition between State 1 and State 2 and click the edit icon ( #* ) located in
n tab:
the Transi
v
Se mann
Ste Reet | ‘tne Request
ee -e
SuiteFlow: Workflow Fundamentals
Totote Requestor 4
ORACLE NETSUITE78 | Building Approval Workflows
17 On the Workflow Transition form, enter the following transition information:
Basic Information
TRANSITION ON (no selection necessary)
Condition
EXECUTE ON BUTTON Approve Request
18 Click Save.
19 Repeat the steps above for the transition between State 1 and State 3:
Basic Information
TRANSITION ON.
Condition
EXECUTE ON BUTTON Reject Request
Execute the Workflow and Test
20 Create and save two new Furniture Request records (one for approval and one for
rejection), navigate to the list of Furniture Request records and open each record.
You should see your Approve Request and Reject Request buttons.
21 Select the Active Workflows subtab. You should see that your new approval workflow is
currently waiting in State 1: Waiting for Approval.
22 Click the Approve Request button:
+ Upon approval, the Furniture Request record will be re-displayed in View mode.
Notice that the Edit button is available. You will configure a Lock Record action to
prevent the edit of records after approval in a future exercise.
+ Also notice that the Furniture Request Approval workflow is listed under Active
Workflows and State 2: Request Approved is the current state
+ Select the Workflow History subtab. Notice that the approval workflow is
currently in its approved state, State 2: Request Approved.
23 Repeat the steps above to test the rejection process.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 79
03: Configure Actions to Support Approval Processing
Scenario: In this exercise, you will implement business rules to restrict the approval of.
Furniture Requests to the Project Manager, track the approval status of these records, and
send email notifications to both the Project Manager and customer notifying them of the
status of the project
SuiteDreams has provided the following business requirements for approval processing:
Business Rule Action/Condition Configuration
‘The Project Manager should be the only user who can either approve or
reject a custom Furniture Request.
> The Project Manager may modify al fields on the Furniture Request
record while deciding whether to approve or reject.
> No other user may modify the Furniture Request record while it is
waiting to be approvedirejected by the Project Manager.
Action: Sat Field Value, Lock Record
Server Trigger: Entry, Before Record Load
Create an “Approval Status” field to track the status of all custom Furniture
Requests:
> Set to "Pending-Approval" while Project Manager is waiting to
approvelreject.
> Set to "Approved" when the record has been approved.
> Set to "Rejected" when the record has been rejected,
Action: Sot Field Value
Server Trigger: Entry
Configure Email Notifications:
> The Project Manager should be notified via email that a custom
Furniture Request is awaiting their approval
> Notify the customer (if exists) once their custom Furniture Request has
been approved or rejected.
Action: Send Email
Server Trigger: Entry
Prevent all users from modifying the Furniture Request once it has reached
the "Request Approves" or "Request Rejected” end states.
Action: Lock Record
Server Trigger: Before Record Load
yw: Workflow Fundamentals ORACLE NETSUITE£80 | Building Approval Workflows
Implement Business Rule A
Create a Workflow Field to Store the Current Approver
In this series of steps, you configure the workflow so the initial approver is always the Project
Manager. Creating a generic field to hold the value of the current approver allows the
workflow to scale better as more complexity is added to the approval process.
1 Edit the Furniture Request Approval workflow.
2 On the Workflow tab, select Fields, and then click New Field to add a workflow field as
follows:
LABEL Current Approver
ID _sdr_fum_req_current_appr
Note: Workfiow fields must have unique IDs across workflows. If
you have many workflows using the concept of current approver,
you will need to differentiate the ID value across workflows
TYPE. ListRecord
LISTRECORD Employee
STORE VALUE Checked
3 Click Save.
Configure an Action to Set Current Approver = Project Manager
4 Select State 1: Waiting for Approval and configure a Set Field Value action as follows
(leaving all other fields at their defaults unless otherwise noted):
Basic Information
TRIGGER ON Entry
Parameters
FIELD Current Approver (Workflow)
Value (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: Project Manager
5 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 81
v Enery
Set Field Value Worstlow : Current ApproversPro
You will use "Current Approver (Workflow) in place of Project Manager when
restricting actions to the approver.
Conditionally Execute the Add Button Actions based on the value of Current Approver
In this series of steps, you will identify the conditions necessary to determine when the Add
Button actions should be executed. Ask yourself this question, "Who is the only user who
should be able to click the Approve Request or Reject Request buttons?”
Per SuiteDreams' business requirements, the only user who should be able to approve/reject
a Furniture Request is the Project Manager. Therefore, SuiteDreams only wants the buttons
to be added when the currently logged in user is the Project Manager.
Since you just created a workflow field to store the Current Approver as the Project Manager
(Current Approver = Project Manager], we simply need to create a condition that verifies the
user is the Current Approver.
6 With State 1: Waiting for Approval still selected, click on Group Actions on the Before
Record Load trigger in the State tab.
7 Configure the following condition using the Visual Builder:
Condition
FIELD COMPARE TYPE SELECTION VALUE FIELD
User any of Current Approver
(Worktiow)
8 Click Add and then Save on the Workflow Action Group form.
Make Furniture Request Records Read-Only for Non-Approvers
Now you will configure a Lock Record action to make Furniture Requests "read-only" for all
users, except the current approver, while it is waiting to be approved/rejected.
9. With State 1: Waiting for Approval still selected, configure a Lock Record action as.
follows (leaving all other fields at their defaults unless otherwise noted):
Basic Information
TRIGGER ON Before Record Load
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE82 | Building Approval Workflows
Create the following condition:
Condition
FIELD COMPARE TYPE VALUE FIELD
User none of Current Approver (Workflow)
110 Click Add and then Save on the Workflow Condition form.
111 Click Save on the Workflow Action configuration form.
In the list of actions under the State tab, you should see the following:
Before Record Load
Group Actions
‘Add Button Label: Approve Request
‘Add Button Label: Rejec Reau
Lock Record
Test Business Rule A
To test this business rule, you will create two Furniture Request records and assign a different
user as the Project Manager. Based on the selected user's role, you will be able to
approve/reject the record or the record will be locked as read-only.
12 As Larry Nelson, create a new Furniture Request record and select "Aubrey Pober" as
the Project Manager.
13 Locate and open the new record.
You should not see the Approve Request or Reject Request buttons and the record
should be locked, This is because you are not logged in as the specified Project Manager,
in this case, Aubrey Pober.
14 Logout as Larry Nelson and log back in as Aubrey Pober using the login information
generated in Exercise 01.
15 Open the new Furniture Request by navigating to Customers > Other > Furniture
Request and click the Edit link next to the record.
You should see both custom buttons.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 83
Note: If you enabled the SAVE RECORD FIRST option for both buttons, the
buttons will not be displayed as separate "Approve" and "Reject" buttons. They
will be grouped under the Save option as Save & Approve/Save & Reject.
You should also see that Active Workflows and Workflow History shows the record is
waiting for approval at State 1 and Aubrey Pober is the Current Approver.
16 Logout as Aubrey Pober and log back in as Larry Nelson.
Create and Assign a Default Approval Status
In this series of steps, you will create a custom list representing the approval status of all
Furniture Requests.
17 Navigate to Customization > Lists, Records, & Fields > Lists > New. The Custom List form
will be displayed.
18 Enter the following information (leaving all other fields at their defaults unless
otherwise noted):
NAME Furniture Approval Status
ID _sdr_furn_req_appr_status
DESCRIPTION Enter a description for the custom list.
VALUES Pending Approval
Approved
Rejected
19 Click Save.
Now let's create a new record/form field on the custom Furniture Request record to store the
Furniture Approval Status.
20 Navigate to Customization > Lists, Records, & Fields > Record Types,
21 Select the custom Furniture Request record type by clicking an its link
22 In the Fields sublist, click the New Field button.
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE84 | Building Approval Workflows
23 Enter the following information (leaving all other fields at their defaults unless
otherwise noted):
LABEL Approval Stetus
ID _sdr_fum_req_appr_status
TYPE ListRecord
LISTRECORD Furniture Approval Status
STORE VALUE Checked
SHOWIN LIST Checked
DISPLAY TYPE Inline Text
(Display subtab)
24 Click Save.
Now let's configure the appropriate action to set the status to "Pending Approval” for all new
Furniture Request records.
25 Return to the Furniture Request Approval workflow.
26 Select State 1: Waiting for Approval and configure a new Set Field Value action as
follows (leaving all other fields at their defaults unless otherwise noted).
Basic Information
TRIGGER ON Entry
Parameters
FIELD Approval Status
Value (Static Value)
SELECTION Pending Approval
27 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Entry
Set Field Value Workfow : Current Approver=Pra.
Set Field Value Approval Satus-Pending Approval
Now let's repeat the Set Field Value action for each of the workflow end states to set the
Approval Status accordingly.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 85
28 Select State 1: Waiting for Approval and click on the Set Field Value action that you just
created above.
29 Click the Make Copy button and select "State 2: Request Approved" from the STATE
dropdown list. You will receive the following informational message:
tstdrv2284597 app.netsuite com says
You have changed the state. Condton i ot etable except forthe
30 Click OK to acknowledge the message.
31 Configure the Set Field Value action as follows (leaving all other fields at their defaults
unless otherwise noted):
Basic Information
STATE State 2: Request Approved
Parameters
FIELD Approval Status
Value (Static Value)
SELECTION Approved
32 Click Save on the Workflow Action configuration form.
33 Repeat the steps above to set the APPROVAL STATUS to "Rejected" for "State 3:
Request Rejected”
Basic Information
STATE State 3: Request Rejected
Parameters
FIELD Approval Status
Value (Static Value)
SELECTION Rejected
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE£86 | Building Approval Workflows
Test Business Rule B
34 Create two new Furniture Request records and test that the appropriate APPROVAL
STATUS is set at each end state by approving one record and rejecting the other.
Implement Business Rule C
Incorporate Email Notifications
You are almost finished configuring basic approval processing for SuiteDreams Furniture
Requests. The last business rule to be implemented involves adding email notifications to the
Project Manager and the customer.
The table below summarizes the statuses that should be set, the recipient of the email
notification, and the condition in which to execute each action:
Approval Status Recipient Condition
Pending Approval Current Approver After the Furniture Request record has been created. A
‘good place to set this is upon entry to the state
representing requests waiting for approval.
Approved Customer When the Furniture Request has been approved,
Rejected Customer When the Furniture Request has been rejected.
It wl be faster f you use the Make Copy (or Save & Copy) feature in combination
with changing the value of the Stat field, as you did earlier. This way, the action you
created in one state is moved to the appropriate stat.
35 Edit the Furniture Request Approval workflow once again.
36 Select State 1: Waiting for Approval and configure a Send Email action as follows
(leaving all other fields at their defaults unless otherwise noted):
BE CAREFUL WHERE YOU CONFIGURE THIS ACTION!
‘Actions configured on the same trigger are executed in the order listed in the actions.
list
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 87
Basic Information
TRIGGER ON Hint: Sond the email notification once, when the Current
Approver first receives the record to approve or reject.
Parameters
Sender (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: User
Recipient (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: Current Approver (Workflow)
Content (CUSTOM) SUBJECT: You have a Fumiture Request to approve.
BODY: A new Furniture Request is waiting for your approval.
INCLUDE VIEW RECORD LINK: Checked
Condition
RECORD FIELD COMPARE TYPE
User E-mail not empty
Current Approver E-mail not empty
(Workflow)
37 Click Save on the Workflow Action configuration form. In the list of actions under the
State tab, you should see the following:
Y entry
Set Field Value Workfiow : Current Approver=Pro
Set Field Value Approval Status-Pendi
Approval
‘Send Email To: Workflow : Current Approver, Sub
Now let's configure the email notification to the customer indicating the approval status of
their Furniture Request. First, the approved email,
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE£88 | Building Approval Workflows
38 Select State 2: Request Approved and configure a Send Email action as follows (leaving
all other fields at their defaults unless otherwise noted):
Basic Information
TRIGGER ON Hint: Sond the email notification once, when the Current
Approver first receives the record to approve or reject.
Parameters
Sender (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: User
Recipient (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: Customer
Content (CUSTOM) SUBJECT: Great news! Your custom Fumiture Request has
been approved.
BODY: We are pleased to inform you that your custom Fumiture
Request has been approved
INCLUDE VIEW RECORD LINK: Checked
Condition
RECORD FIELD COMPARE TYPE
User E-mail not empty
Customer E-mail not empty
39 Click Save when finished.
ORACLE NETSUITE SuiteFlow: Workflow FundamentalsBuilding Approval Workflows | 89
40 Use Make Copy to copy the Send Email action above for rejected Furniture Requests
(leaving all other fields at their defaults unless otherwise noted):
Basic Information
TRIGGER ON Entry
Parameters
‘Sender (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: User
Recipient (FROM FIELD) RECORD (JOIN FIELD): Current Record
FIELD: Customer
Content (CUSTOM) SUBJECT: Your custom Furniture Request has been rejected.
BODY: Your custom Furniture Request has been rejected.
INCLUDE VIEW RECORD LINK: Checked
Test Business Rule C
41 Create two more Furniture Request records and test the email notifications for approval
and rejection, verifying they show on both the Customer and Employee records:
+ Communication > Messages sublist on a Customer record
+ Communication > Messages sublist on an Employee record (Larry Nelson has
many future dated messages preloaded into the training account. Page through
the messages to find the email created by the workflow.
g Make sure to select a customer that contains an email address, Best practice is to
‘configure the actions with a condition that verifies the existence of an email address,
(€.. a currently logged in user must have an email address; email addresses may
‘exist in other places if they have been made @ required field).
Implement Business Rule D
Prevent all users from modifying the Furniture Request once it has reached the "Request
Approved" or "Request Rejected” end states
42. Configure the appropriate action in each end state of the workflow to make Furniture
Request records read-only in both end states,
SuiteFlow: Workflow Fundamentals ORACLE NETSUITE