Random NetSuite Nuggets
Logged for my future forgetful self
This article logs some handy tips and tricks to help you leverage NetSuite’s potential and streamline your workflow. Whether you’re a seasoned user or just getting started, these insights can unlock new efficiencies and make your NetSuite experience smoother.
Updating ‘External ID’ of a record via UI
Go to page console (right click > Inspect > Console) and paste the following — edit what you need and enter to see the magic:
(function changeId(){
require(['N/record', 'N/currentRecord'],function(record, currRec) {var rec = currRec.get()
var rec = record.load({type: record.Type.TERM,id: rec.id});
rec.setValue({fieldId: 'externalid',value: 'type the desired value'});
rec.save();
});}())
Lookup record types here: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4273205732.html#bridgehead_4273217274
Quickly generate corresponding linked vendor record for a customer record
Use this link (just paste into your browser) to quickly generate the corresponding linked vendor record for a customer record
https://environmentID.app.netsuite.com/app/common/entity/company.nl?id=INTERNALIDHERE&totype=vendor&fromtype=custjob
Replace environment ID + “INTERNALIDHERE” in the link with the internal id of the customer, paste it into your browser and the corresponding vendor will be generated under “other relationships”
Quickly find fields in Saved Search and Workflows
PO-Bill Variance
The below assumes that you are using a PO, item receipt and vendor bill. This happens when you raised a PO to your vendor at $100, performed goods receipt at $100, but the final vendor bill received is at a different amount e.g. $200. When we look at the corresponding GL Impact of the transactions, there is a discrepancy in the Accrued Purchase account:
Goods Receipt
DR Item Asset Account $100
CR Accrued Purchases $100Vendor Bill
DR Accrued Purchases $200
CR Accounts Payable $200
To resolve these discrepancies, you can reconcile these differences using the Post Vendor Bill Variances page to post variance journal entries.Based on the example above, the journal entry will be:
(automatically generated using interface)
DR Item Asset Account $100
CR Accrued Purchases $100
Therefore, as a best practice, when setting up item masters, please fill in the variance accounts. If the handling of such variances is to add it back to the item asset cost, then set the variance accounts to the asset account populated onto the item record.
If you are dealing with an Non-inventory item for purchase but have ‘generate accruals’ option enabled, then you’d want to put in your expense account into variance accounts, unless your client has a need to track these variances separately. GL Impact of non-inventory for purchase (with accruals):
Goods receipt
DR Expense Account $100
CR Accrued Purchases $100Vendor Bill
DR Accrued Purchases $200
CR AP $200Required JE (automatically generated using interface)
DR Expense Account $100
CR Accrued Purchases $100
Once you have generated your journal entries, you can also check the status on individual bills that the variance has been resolved (Journal Not Posted >> Journal Posted). Please note that vendor bills and receipts cannot be changed after variances are posted. Therefore, this should be a part of the month end closing steps to perform (but is not included as part of the standard checklist). For more details and step by step instructions on generating the journals, please check this out https://netsuite.custhelp.com/app/answers/detail/a_id/11157.
3-Way match workflow to include partial receipt
The standard configurable workflow has a system limitation for partial receipt. The two solutions available:
- Option 1: Treat all partially received PO when creating the bill as bills that require to go through the full approval workflow. Only for receipt that are fully received can go through the “auto” 3-way match logic.
- Option 2: Create a custom line level field that contains the PO amount at both the PO (auto populated by workflow) and Bill level (carried over from PO) — then, if at the Bill the amount doesn’t match, it goes for approval (done using a saved search condition).
Setting up approval routing for tracking discounts at line level
For a Sales Order, if there are discounts (either total or line discount items), then route for approval, else then no approval required. The issue that we are facing is with the line level discount items. This is the current process:
- User may apply discount at the header, or add discount items on line level to signify that the discount applies after certain items. Workflow is able to pick up the header discount hence no issue, the issue is with the line level.
The solution:
- First, do not do the condition on the state transitions
- Use ‘set field value’ to default to ‘Approved’ first
- One more wf action to set to ‘Pending Approval’ with saved search condition
- Since workflow actions are processed in the order listed, it will set all to approved first, and next only upon condition turn some to pending approval.
- State transitions then based on status value
Bundle install error
When trying to install a bundle, there is an error upon clicking ‘Install’ button. One possible reason is that a Custom Form component has a custom email template. To remove the error, Default Email Template needs to be selected for Email Message Template field. https://suiteanswers.custhelp.com/app/answers/detail/a_id/98999/kw/98999
Unable to locate vendor field for vendor bank CSV import
When trying to import bank details for vendors, there is no field available to tag the vendor field. This happens when the standard form is not selected in the import inside advanced options. https://suiteanswers.custhelp.com/app/answers/detail/a_id/27012/kw/27012
Tax lookup on transactions not working as expected
First we take a look at the lookup hierarchy and ensure that all is in order:
https://suiteanswers.custhelp.com/app/answers/detail/a_id/37694/kw/37694
+Ensure that your customer/vendor has a shipping address with the country of tax nexus.
Limit tax codes for OneWorld for posting
In multi-subsidiary accounts, tax codes are visible to all entities by default in journal entries even though tax codes are subsidiary specific. However, limiting the tax accounts and the tax codes to only the specific subsidiary will not allow the parent subsidiary to post journals on the intercompany journals where such tax accounts are required.
Solution: First, limit tax code subsidiary availability, then limit tax account subsidiary availability, then re-enable tax code availability
Withholding Tax Setup
To learn basic setup of withholding tax, here are 2 videos to help (total 10min):
1. Netsuite Withholding Tax
2. Netsuite Withholding Tax Payment
Displaying PO# upon creation
This one is particularly useful to differentiate transactions that are standalone vs generated from something because the ‘created from’ field is only populated upon save.
- Add custom field on PO, where Type is list/record
- In the sourcing & filtering subtab, Filter transaction type = PO
- On the PO, using a workflow, set field value custom field = current record
- Put the same field on the vendor bill. This will be populated once you click bill on the PO
Note: This will not work if you are combining items from multiple PO into single VB.
Journal related tidbits
- When uploading intercompany journals, you can determine exchange rate at the line level. However, the system only takes 1 exchange rate per currency pair per journal, so the system only takes the last one even though you might have determined a few different rates on the same pairing. Therefore, the solution here is to post multiple journals if you require multiple rates for the same currency pair.
- Intercompany customer/vendor not appearing in ‘Name’ column dropdown for intercompany journal entries — check that the journal currency is available for both the intercompany customer/vendor
- Main Line is true for transaction saved searches doesn’t work for Journal entries — use line sequence number is 0 instead https://suiteanswers.custhelp.com/app/answers/detail/a_id/76370/kw/76370
- Status of reversal journal entries follow the approval status of the main entry https://suiteanswers.custhelp.com/app/answers/detail/a_id/64436/kw/64436
Important Fixed Asset notes to take note of
To edit fields on the FAM Asset, make sure you enable this option (even for Admins) https://suiteanswers.custhelp.com/app/answers/detail/a_id/62831/kw/62831
If Net Book Values and cumulative depreciation is not populating after you import your mid-life asset data or manually created them, try the following: https://suiteanswers.custhelp.com/app/answers/detail/a_id/84986/kw/84986
https://suiteanswers.custhelp.com/app/answers/detail/a_id/84519/kw/84519
Steps to correct wrong Fixed Asset depreciation
Show Customer’s Related Transactions When Searching Customer Name Using Global Search
By default, related transactions (incl estimates) do not appear when you type in an entity’s name using global search. To get the related transactions to appear in the global search for estimates, make sure that the entity name is populated inside the default field ‘Title’. This field will flow in from opportunity if you use it as well.
Otherwise, you need to create a custom field for other transaction types, and allow for “global search” when you create the field. Also use workflow to populate the entity name in there to allow for search. https://suiteanswers.custhelp.com/app/answers/detail/a_id/23005/kw/23005
Duplicate contact record cannot be saved in system
For contact creation via UI:
- Contact record cannot be saved when the concat of first name and last name is the same and the Company Field is same
For contact creation via external form & integration, a custom workflow action needs to be created to create a new contact record when the concat name/email address is different to ensure unique contact records are created
- Issue is that for the same company, when the concat of first name and last name is the same and different email address is used; error is thrown for contacts with same company
- Workaround for issues via external form & integration: script is customised to append a running number to the concat name to ensure the contact record can be successfully saved
Using ‘Fiscal Year’ in Advanced Numbering Setup
When using the Advanced Numbering Setup, if you use Fiscal Year as a segment in your numbering and want to create a new sequence for each fiscal year, you must add one of the following fiscal year expressions in the prefix or suffix: ${YYYY_START} or ${YYYY_END}.
Using the expression ${YYYY} will cause the sequence to be based on the transaction date with no relation to a fiscal or calendar year. This could result in document numbers being duplicated if the documents fall under two different fiscal years but are in the same transaction year.
Custom font in PDF printout
In this example, a specific font “Garamond” was to be used in the PDF printout of estimate/quotes sent to their clients. Upon downloading a font pack in TFF format text, it looks perfectly fine in NetSuite. However, when pushed to an external platform such as DocuSign or Microsoft word when you copy and paste, text will go wrong.
This happens because the fonts do not have the necessary encoding NetSuite require to produce the characters properly. And this error is not easily identified until you print, copy and paste onto a word file. Here are the steps to check:
- Download font pack
- Add font to pdf template
- Click print on transaction
- Copy text on printout
- Paste on Microsoft word. Check font and text is displaying correctly
- If wrong text, download another font pack from another site of the same font. Change the pdf template with new font file. This requires some trial and error.
- Repeat step 3–5.
Examine the fields in a NetSuite record
If you have any questions or require some help, feel free to connect with me on LinkedIn!