Salto for
NetSuite
Articles
SHARE
Sonny Spencer, BFP, ACA
February 29, 2024
20
min read
When it comes to customizing NetSuite, workflows are a solid choice for functional NetSuite Pros and when tasked with any sort of approval process to be managed in NetSuite, workflows should be the first thing that comes to mind.
Salto Tip: While workflows are the best choice for NetSuite approval processes, be sure to not overcomplicate the system logic with many workflow action scripts or attempt to run multiple workflows on the same record type. It can lead to unexpected behavior.
In order to establish better controls in your NetSuite environment, you have been asked to build a journal entry approval workflow. One of the great things about SuiteFlow is that NetSuite provides some basic workflow templates and it just so happens that one of those templates addresses journal entry approvals.
Salto Tip: Don’t just assume the out of the box journal entry approval workflow meets your business requirements. Instead, consider it a solid starting point that can (and should) be adapted to meet your specific needs.
Here are the formal requirements:
With these requirements, how should you think through solutioning? Let’s explore.
As I read through the requirements there are some key things that catch my attention.
Now that you understand the key requirements, it’s time to execute.
Now that you have a good understanding of what your end users are looking for and how to solve for it, you should take the time to playback (and in some cases challenge) the requirements to make sure nothing has been missed. As a NetSuite Pro, this is where you can add value by asking the right questions upfront to avoid future testing failures, rework and scope creep.
For this particular request, it will be worth confirming that all journal entries created via API are created by the same API user account. Also, you can offer advice for alerting users when there are journal entries pending approval, given the requirement to not notify users when there is one. Dashboard tiles, reminders, saved search portlets, etc. are a number of different options you could propose in addition to the standard “Approve Journal Entries” page.
When comparing the requirements to the out of the box journal entry approval workflow there are two primary differences (and other minor ones).
First you will need to update the criteria for adding the “Approve” and “Reject” buttons, as the workflow approver will not be the transaction creator’s supervisor, but instead anyone logged in with a number of specific user roles.
The other significant difference is to allow journal entries created via API to move directly into an approved state. There are a number of ways to manage this requirement, for example creating a separate workflow state entitled “Auto-Approve” and the criteria for transition into this workflow state checks the user record that created the transaction. If the creator is the API user account, then the journal entry will move into the “Auto-Approve” state, else it will move into the “Pending Approval” state.
In summary, the solution requires the following customizations:
Review the solution design with your stakeholders before moving into the build phase of the project.
Salto Tip: As a best practice , use unique internal ID’s for all NetSuite customization, prefixed with your company name abbreviated. That said, it might be overkill to do this for every workflow state, action and transition. Use your best judgment.
Now that you are ready to execute on your approval workflow, don’t forget to keep the “Release Status” in “Testing” until you have completed the migration to Production at which point you can switch it to “Released”.
For testing purposes, keep instance and history enabled as well as “Enable Logging”. This will support troubleshooting as you work through testing. Once the solution is deployed to Production you can disable these settings to help with system performance.
Speaking of deploying the workflow to Production, it can be incredibly painful for any NetSuite Pro to migrate a NetSuite workflow from one environment to another, especially if attempting to do so manually. The risk that one minor workflow setting is not set correctly is pretty high when considering all of the “Context” settings required for each workflow action.
Fortunately, NetSuite provides a number of out of the box solutions such as SuiteBundler, Copy to Account and SuiteCloud Development Framework (SDF) to support the Production migration process. Each solution has its own advantages (and disadvantages), so you will need to review these to see which makes the most sense depending upon the complexity of the custom solution and your skillset.
Another option to consider for migrating NetSuite custom solutions to your Production environment is Salto. Check out the Salto SuiteApp to see how it can empower NetSuite Pros through the execution of quicker, error-free deployments. Not only that, the SuiteApp allows for direct environment comparisons as well as efficient system rollbacks where the customizations don’t have the intended impact in your Production environment. These rollbacks are typically time-sensitive, so it is important to have an established process in place for when this is required.
Now that you have deployed the solution to Production, the final step is to run a “smoke test” to confirm the workflow will execute as expected on journal entries created by end users as well as those created via API.
For more information on expanding your NetSuite toolkit and how to think like a NetSuite Pro, check out Salto’s blog posts that explore some of the things that NetSuite Developers and NetSuite Administrators should be leveraging within the NetSuite ecosystem.
Leveraging SuiteFlow is a great choice for any NetSuite Administrator who does not have nor have access to the skills of a NetSuite Developer. It is far superior to any manual approval process and gives businesses the flexibility to adopt the workflow to meet their specific needs. As we saw in the use case above, this company had role-based journal entry approvals, whereas other companies will opt for pre-determined journal entry approvers set on employee records.
One of the other great things about leveraging SuiteFlow is the workflow audit trail that will track the detailed transitions between approval workflow states and who made those transitions. In this way, you are leveraging one of NetSuite’s core strengths - its granular audit trail reporting capabilities. This is extremely valuable to NetSuite customers, especially those focused on their control environment.
Salto for
NetSuite
NetSuite
SHARE
Sonny Spencer, BFP, ACA
February 29, 2024
20
min read
When it comes to customizing NetSuite, workflows are a solid choice for functional NetSuite Pros and when tasked with any sort of approval process to be managed in NetSuite, workflows should be the first thing that comes to mind.
Salto Tip: While workflows are the best choice for NetSuite approval processes, be sure to not overcomplicate the system logic with many workflow action scripts or attempt to run multiple workflows on the same record type. It can lead to unexpected behavior.
In order to establish better controls in your NetSuite environment, you have been asked to build a journal entry approval workflow. One of the great things about SuiteFlow is that NetSuite provides some basic workflow templates and it just so happens that one of those templates addresses journal entry approvals.
Salto Tip: Don’t just assume the out of the box journal entry approval workflow meets your business requirements. Instead, consider it a solid starting point that can (and should) be adapted to meet your specific needs.
Here are the formal requirements:
With these requirements, how should you think through solutioning? Let’s explore.
As I read through the requirements there are some key things that catch my attention.
Now that you understand the key requirements, it’s time to execute.
Now that you have a good understanding of what your end users are looking for and how to solve for it, you should take the time to playback (and in some cases challenge) the requirements to make sure nothing has been missed. As a NetSuite Pro, this is where you can add value by asking the right questions upfront to avoid future testing failures, rework and scope creep.
For this particular request, it will be worth confirming that all journal entries created via API are created by the same API user account. Also, you can offer advice for alerting users when there are journal entries pending approval, given the requirement to not notify users when there is one. Dashboard tiles, reminders, saved search portlets, etc. are a number of different options you could propose in addition to the standard “Approve Journal Entries” page.
When comparing the requirements to the out of the box journal entry approval workflow there are two primary differences (and other minor ones).
First you will need to update the criteria for adding the “Approve” and “Reject” buttons, as the workflow approver will not be the transaction creator’s supervisor, but instead anyone logged in with a number of specific user roles.
The other significant difference is to allow journal entries created via API to move directly into an approved state. There are a number of ways to manage this requirement, for example creating a separate workflow state entitled “Auto-Approve” and the criteria for transition into this workflow state checks the user record that created the transaction. If the creator is the API user account, then the journal entry will move into the “Auto-Approve” state, else it will move into the “Pending Approval” state.
In summary, the solution requires the following customizations:
Review the solution design with your stakeholders before moving into the build phase of the project.
Salto Tip: As a best practice , use unique internal ID’s for all NetSuite customization, prefixed with your company name abbreviated. That said, it might be overkill to do this for every workflow state, action and transition. Use your best judgment.
Now that you are ready to execute on your approval workflow, don’t forget to keep the “Release Status” in “Testing” until you have completed the migration to Production at which point you can switch it to “Released”.
For testing purposes, keep instance and history enabled as well as “Enable Logging”. This will support troubleshooting as you work through testing. Once the solution is deployed to Production you can disable these settings to help with system performance.
Speaking of deploying the workflow to Production, it can be incredibly painful for any NetSuite Pro to migrate a NetSuite workflow from one environment to another, especially if attempting to do so manually. The risk that one minor workflow setting is not set correctly is pretty high when considering all of the “Context” settings required for each workflow action.
Fortunately, NetSuite provides a number of out of the box solutions such as SuiteBundler, Copy to Account and SuiteCloud Development Framework (SDF) to support the Production migration process. Each solution has its own advantages (and disadvantages), so you will need to review these to see which makes the most sense depending upon the complexity of the custom solution and your skillset.
Another option to consider for migrating NetSuite custom solutions to your Production environment is Salto. Check out the Salto SuiteApp to see how it can empower NetSuite Pros through the execution of quicker, error-free deployments. Not only that, the SuiteApp allows for direct environment comparisons as well as efficient system rollbacks where the customizations don’t have the intended impact in your Production environment. These rollbacks are typically time-sensitive, so it is important to have an established process in place for when this is required.
Now that you have deployed the solution to Production, the final step is to run a “smoke test” to confirm the workflow will execute as expected on journal entries created by end users as well as those created via API.
For more information on expanding your NetSuite toolkit and how to think like a NetSuite Pro, check out Salto’s blog posts that explore some of the things that NetSuite Developers and NetSuite Administrators should be leveraging within the NetSuite ecosystem.
Leveraging SuiteFlow is a great choice for any NetSuite Administrator who does not have nor have access to the skills of a NetSuite Developer. It is far superior to any manual approval process and gives businesses the flexibility to adopt the workflow to meet their specific needs. As we saw in the use case above, this company had role-based journal entry approvals, whereas other companies will opt for pre-determined journal entry approvers set on employee records.
One of the other great things about leveraging SuiteFlow is the workflow audit trail that will track the detailed transitions between approval workflow states and who made those transitions. In this way, you are leveraging one of NetSuite’s core strengths - its granular audit trail reporting capabilities. This is extremely valuable to NetSuite customers, especially those focused on their control environment.