Random NetSuite Nuggets

Logged for my future forgetful self

Regine Lim
Ctrl+Story
8 min readJun 8, 2024

--

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 $100

Vendor 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 $100

Vendor Bill
DR Accrued Purchases $200
CR AP $200

Required 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:

  1. First, do not do the condition on the state transitions
  2. Use ‘set field value’ to default to ‘Approved’ first
  3. One more wf action to set to ‘Pending Approval’ with saved search condition
  4. 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.
  5. 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.

  1. Add custom field on PO, where Type is list/record
  2. In the sourcing & filtering subtab, Filter transaction type = PO
  3. On the PO, using a workflow, set field value custom field = current record
  4. 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:

  1. Download font pack
  2. Add font to pdf template
  3. Click print on transaction
  4. Copy text on printout
  5. Paste on Microsoft word. Check font and text is displaying correctly
  6. 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.
  7. 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!

--

--

Regine Lim
Ctrl+Story

I bleed coffee, get drunk on aesthetics & breathe life into chatbots. Tech consultant by day. Writes for fun on other days. https://linkedin.com/in/limregine/