How to inspect and test an inventory adjustment approval workflow in NetSuite

Inspect custom approval buttons, role conditions and status updates in an existing NetSuite workflow, then approve one inventory adjustment and reject another.

The quick answer

Inspect the existing workflow's Add Button actions, role conditions on its transitions, and destination Set Field Value actions. Then use the permitted role to save and approve one Inventory Adjustment and save and reject another. Check the custom review value on each saved record.

The example uses a custom Status for Approval transaction body field. Its Approved and Rejected values record a review decision. They do not prove that inventory or GL posting waited for approval, or that rejection reversed the adjustment.

Alex Morgan and Example Supply Co. are fictional example identities. The workflow and accounting choices shown here are examples to inspect, not settings to copy without checking your account.

Before you start

This walkthrough inspects an existing Inventory Adjustment Review workflow; it does not create the custom field or workflow. You need SuiteFlow access to review its configuration, a form that displays the custom list field, and a role allowed to enter the test adjustments and follow the decision paths. This example uses Administrator for configuration review and an already-assigned Inventory Manager role for the decisions. Inventory Manager is the role named in this workflow condition, not a universally required NetSuite role.

Confirm that the workflow applies to Transaction / Inventory Adjustment, is released for the intended users, initiates in the relevant UI event and meets its execution-context and entry conditions. Check for other workflows or scripts that could change the field or buttons. Items, subsidiary, location, accounting period and adjustment account must be valid. Bins, lots, serial numbers and inventory-status assignments may require extra inventory detail; the example uses items without those requirements. The subsidiary selection assumes OneWorld and access to that subsidiary; it may be absent or unavailable otherwise.

01. Check the custom pending value

As Administrator, open Transactions > Inventory > Adjust Inventory. Locate Status for Approval and confirm that the new form displays Pending Approval. This is the custom review field.

The new form displays the custom review value Pending Approval.

Leave this entry unsaved. Open Customization > Workflow > Workflows, then Inventory Adjustment Review.

02. Inspect the pending-state buttons

In the Workflow panel, check the record type, Inventory Adjustment subtype, release status and initiation events. Select Pending Approval in the workspace. It has two Add Button actions under Before Record Load.

Open the first action. Check the condition Status for Approval = Pending Approval, then its Label Approve. Close the action without changing it. Inspect the Reject action the same way.

The button display condition checks the custom pending value.
The first button action is labeled Approve; inspect Reject separately.

These conditions govern button display. A role condition on a transition has a different job: it determines whether that path can execute.

03. Inspect the approval path

Select the transition from Pending Approval to Approved. Check Condition User Role = Inventory Manager and Execute On Button Approve.

This transition connects Approve to Approved and checks the user role.

Select Approved, then open its Set Field Value action. It runs on Entry, targets Status for Approval, and uses static Selection Approved. Close it without changing it.

The Approved state selects Approved for the custom review field.

04. Inspect the rejection path

Select the transition from Pending Approval to Rejected. Check the Inventory Manager role condition and Execute On Button Reject.

Reject has its own role-conditioned transition to Rejected.

In Rejected, inspect Set Field Value. It runs on Entry, targets the same custom field and selects Rejected. Close the action.

The Rejected state selects the separate custom Rejected value.

05. Save and approve an adjustment

With Alex Morgan signed in, select the already-assigned Inventory Manager role using the account's role control. Confirm the role displayed in the account area. Open Transactions > Inventory > Adjust Inventory, or the equivalent menu for the role.

Saving either test creates an Inventory Adjustment; this custom review test does not establish a posting hold. The names, date, quantities and transaction numbers below belong to this example run. Another account needs its own valid records and will assign its own numbers.

Select Oregon Operations as subsidiary and 5195 Inventory Variance as adjustment account. Check Date 10/16/2026. On Adjustments, select HG-430 Carton Tape at Portland Warehouse, enter Adjust Qty. By 36, and click Add.

The committed line shows a new quantity of 48. Entering 36 means adding 36 to the example's starting balance of 12; it does not mean setting the final balance to 36.

Adjust Qty. By is 36; New Quantity is 48. They are different values.

Click Save. The example receives number IA614 and still displays custom Pending Approval, with both decision buttons present.

The saved pending adjustment has both configured decision buttons.

Click Approve. Check that the same record, IA614, now displays Status for Approval Approved. In this configuration both decision buttons disappear after leaving the pending state.

IA614 now displays the custom review result Approved.

06. Save and reject another adjustment

Open a new adjustment. Select the same subsidiary and adjustment account, and check the date. Add HG-870 Packing Inserts at Portland Warehouse with Adjust Qty. By 18, then save.

Confirm the separate number IA615 and custom Pending Approval value before clicking Reject. The result is Status for Approval Rejected, and the decision buttons disappear in this configuration.

IA615 is a separate saved adjustment with the custom result Rejected.

The rejected record still exists as an Inventory Adjustment. This run did not inspect its inventory effect or GL Impact. The custom Rejected value is not evidence of a reversal, deletion, posting hold or correction.

Common questions

Is Status for Approval a native Inventory Adjustment approval control?

It is a custom transaction body field in this example. Its labels can resemble native approval statuses, but the field value alone does not establish posting behavior. Check the field definition and the controls implemented in your account.

Does a User Role condition hide Approve and Reject from other roles?

A transition's User Role condition determines whether that transition is eligible to execute. Button display also depends on the Add Button action, its conditions and the active workflow state. Inspect both rather than assuming a transition condition hides the button.

Why do both buttons disappear after a decision?

This workflow leaves Pending Approval and changes the custom field. Its buttons belong to the pending state and check the pending value. Other workflows and scripts can behave differently.

Does Rejected reverse or delete the adjustment?

No such behavior was demonstrated. IA615 remained a saved Inventory Adjustment with the custom value Rejected. The test did not demonstrate reversal, deletion, posting prevention or another corrective accounting action.

What should I check if the buttons do not appear?

Check the workflow's record type and subtype, release status, initiation event, execution context and entry conditions. Confirm its current state, the custom field value, the Add Button triggers and conditions, and any competing scripts or workflows. Review transition conditions separately when a button appears but its path does not execute, including whether the active role matches the role named in that condition.

For the underlying quantity-entry procedure and actual accounting checks, see create an inventory adjustment in NetSuite.

Supporting sources