If you work with NetSuite’s SuiteTalk API, you know that:
- You must access the API via employee/user record in NetSuite
- API calls specify the user role to use
- You will get different results based on which user and which user role you are accessing the API with.
- For instance, if the employee record has the “Sales Rep” option checked, all Sales Orders created using that employee/user credentials will have the “Sales Rep” field assigned to the user’s record.
- Each role has a different set of permissions. You will get different fatal error messages depending on which user role you are operating under.
Often, when developing a NetSuite integration, you’ll need to make edits to the SuiteTalk user/employee record or the role.
Changes to the role or user do not take effect immediately. They can take anywhere from a couple minutes to a couple hours to take effect. This destroys the developer feedback loop and makes it exponentially harder to track down the source of specific NetSuite SuiteTalk errors.
This means that if you make a change in your sandbox or production account relating to either employee or user records there is no way to know if the change fixed the issue you were debugging aside from waiting a couple hours and retrying the operation.
Often, what I’ve done, is write a failing feature test for my NetSuite integration issue I’m encountering and then rerun the test in the morning after making user or role tweaks.
If you have access to the private NetSuite forums, you can read this post for more information.