0% found this document useful (0 votes)
481 views161 pages

SuiteFlow - Workflow Fundamentals - Student Guide

Uploaded by

Olivia Colaco
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
0% found this document useful (0 votes)
481 views161 pages

SuiteFlow - Workflow Fundamentals - Student Guide

Uploaded by

Olivia Colaco
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
You are on page 1/ 161
ORACLE NETSUITE SuiteFlow: Workflow Fundamentals This 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 94065 Table 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 NETSUITE il | 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 Fundamentals Course 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 NETSUITE 2 | 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 Fundamentals Course 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 Fundamentals 4 | Course introduction ORACLE NETSUITE SuiteFlow: Workflow Fundamentals SuiteFlow 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 NETSUITE 6 | 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 Fundamentals SuiteFlow 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 NETSUITE 8 | 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 Fundamentals SuiteFlow 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 NETSUITE 10 | 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 Fundamentals SuiteFlow 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 NETSUITE 12 | SuiteFlow Overview ORACLE NETSUITE SuiteFlow: Workflow Fundamentals Configuring 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 NETSUITE 14 | 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 Fundamentals Configuring 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 NETSUITE 16 | 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 Fundamentals Configuring 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 NETSUITE 438 | 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 Fundamentals Configuring 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 NETSUITE 20 | 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 Fundamentals Configuring 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 NETSUITE 22 | 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 Fundamentals Configuring 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 NETSUITE 24 | 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 Fundamentals Configuring 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 NETSUITE 26 | 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 Fundamentals Configuring 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 NETSUITE 28 | 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 Fundamentals Configuring 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 NETSUITE 30 | 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 Fundamentals figuring 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 NETSUITE 32 | 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 Fundamentals Configuring 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 NETSUITE 34 | 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 Fundamentals Configuring 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 NETSUITE 36 | 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. [email protected] (password: training1) [email protected] (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 Fundamentals Configuring 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 NETSUITE 38 | 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 Fundamentals Configuring 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 NETSUITE 40 | 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 Fundamentals Configuring 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 NETSUITE 42 | 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 Fundamentals Configuring 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 NETSUITE 44 | 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 Fundamentals Configuring 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 NETSUITE 46 | 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 Fundamentals Configuring 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 NETSUITE 48 | 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 Fundamentals Configuring 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 NETSUITE 50 | 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 Fundamentals Configuring 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 NETSUITE 52 | 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 Fundamentals Configuring 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 Fundamentals Configuring 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 NETSUITE 56 | 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 Fundamentals Configuring 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 NETSUITE 58 | 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 Fundamentals Configuring 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 NETSUITE 60 | 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 Fundamentals sto! 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 NETSUITE 62 | Configuring Actions on Record Submit, ORACLE NETSUITE SuiteFlow: Workflow Fundamentals Troubleshooting 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 NETSUITE 64 | 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 Fundamentals Troubleshooting 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 NETSUITE 6 | 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 Fundamentals Troubleshooting 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 NETSUITE 68 | 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 Fundamentals Troubleshooting 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 NETSUITE 70 | Troubleshooting Workflow Execution ORACLE NETSUITE SuiteFlow: Workflow Fundamentals Building 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 NETSUITE 72 | 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, [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Note: The password for all users is training. ORACLE NETSUITE SuiteFlow: Workflow Fundamentals Building Approval Workflows | 73 The rest of the email address is always based on first name initial + last name, as follows: Aubrey Pober [email protected] Edwin Goldwasser [email protected] Fiona Small [email protected] James Rollings [email protected] John Rittman [email protected] Matt Nolan [email protected] 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 Fundamentals 74 | 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 Fundamentals Building 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 NETSUITE 76 | 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 Fundamentals Building 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 NETSUITE 78 | 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 Fundamentals Building 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 Fundamentals Building 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 NETSUITE 82 | 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 Fundamentals Building 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 NETSUITE 84 | 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 Fundamentals Building 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 Fundamentals Building 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 Fundamentals Building 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

You might also like