SharpSync
  • Welcome
  • Fundamentals
    • Getting Started
      • Registration
      • Landing Page
      • Support
      • Subscription
    • Data Sources
    • Property Mappings
      • Adding Property Mapping
      • Property Mapping Settings
    • Rules
      • Import / Export
        • Append text
        • Calculate number
        • Export manipulation
        • Format as decimal number
        • Prepend text
        • Remove property
        • Replace all instances
        • Replace first instance
        • Round to nearest X
        • Select from JSON
        • Set cell value
        • Set empty cells
        • Text manipulation
      • Display
        • Number between
        • Text contains
        • Text ends with
        • Text evaluation
        • Text is a number
        • Text is exactly
        • Text is in list
        • Text is not a number
        • Text is not empty
        • Text is not in list
        • Text length between
        • Text length is exactly
        • Text maximum length
        • Text minimum length
        • Text not contains
        • Text not ends with
        • Text not starts with
        • Text starts with
      • Advanced Scripting
    • BOM Comparison
    • Data Safety
    • Troubleshooting
      • Duplicate component paths
      • OAuth 2.0
  • Data Sources
    • Autodesk Inventor
    • CSV
      • Getting Started
      • Importing a Bill of Materials (BOM)
    • MS Dynamics 365 Business Central
      • Getting Started
      • Item Fields Json & Internal Names
      • Resource Fields Json & Internal Names
      • List Names For nestedObject Mappings
    • NetSuite
      • OAuth Setup
        • Permissions
      • RESTlet Script Setup
        • SharpSync RESTlet Script
      • Thumbnail Folder Setup
      • Authentication + Configuration
      • Common setup
        • Configure quantity mapping
        • Configure accounts mappings
        • Configure itemType mapping
        • Configure isPhantom mapping
        • Configure subsidiary mapping
        • Configure price mapping
        • Configure Where Used Link mapping
        • Configure thumbnail mapping
        • Read-Only NetSuite Fields
        • Common Mapping Rules
        • Common List names
      • Advanced Bill of Materials
      • Configure Routings
      • Integration tips
      • Troubleshooting
    • Odoo
      • Getting Started
        • Authentication + Configuration
        • Debugging tips
      • Common Setup
        • Map BOM Codes
        • Map BOM Types
        • Map Attribute Values
          • Reading Attributes - Overview
          • Display All Attribute Names
          • Display Single Attribute Values
          • Writing attributes
      • Product Management
      • Hosting Options
      • List Names
      • Permissions
      • Troubleshooting
    • Onshape
      • Getting Started
      • Setting up Derivatives
    • Propel PLM
      • Getting Started
    • SolidWorks
    • SolidWorks PDM
      • Downloading and installing the add-in
      • Configure the add-in
      • Setting up the Solidworks PDM Web 2
      • Troubleshooting
      • Submitting a BOM for update
  • Advanced
    • Derivatives
  • User management
    • User Management
    • Application Permissions
Powered by GitBook
On this page
  • Account Property Mapping Settings
  • Account Property Mapping Rules
  1. Data Sources
  2. NetSuite
  3. Common setup

Configure accounts mappings

You want to setup a list of accounts to pick from for Income and Expense accounts. This will let you specify a default Income and expense account when creating new items (for each item type).

To setup a list of accounts to pick from in NetSuite, create a new property mapping for income account and a new mapping for expense account (make sure to create additional mapping pairs for each item type you need). This will work for any NetSuite field of type account.

Account Property Mapping Settings

Setting
Value

Primary accessor

(unmapped)

or mapped to a Primary Source accessor if you have one

Secondary accessor

One of:

  • assemblyitem.incomeAccount

  • inventoryitem.incomeAccount

  • noninventoryresaleitem.incomeAccount

  • noninventoryresaleitem.expenseAccount

  • etc

Update Primary on Submit

unchecked

Update NetSuite on Submit

checked

Object Value Selector

id

List Name

account

List Value Selector *

"id": "{id}", "displayName": "{acctNumber} - {acctName}"

Rendering Type

Advanced List

List Display Selector

displayName

List Value Selector

id

List Items

see below **

Prefer NetSuite value

checked

* A list value selector is a string that selects token values (text items wrapped in curly braces) from the returned JSON object. In our example above, when specifying the list name of account, the object returned for each list may look something like this:

{
  "links": [
    {
      "rel": "self",
      "href": "https://[customerId].suitetalk.api.netsuite.com/services/rest/record/v1/account/677"
    }
  ],
  "accountContextSearch": {
    "links": [
      {
        "rel": "self",
        "href": "https://[customerId].suitetalk.api.netsuite.com/services/rest/record/v1/account/677/accountContextSearch"
      }
    ]
  },
  "acctName": "Beginning Equity AP",
  "acctNumber": "5305",
  "acctType": {
    "id": "Equity",
    "refName": "Equity"
  },
  "balance": 0.0,
  "eliminate": false,
  "id": "677",
  "inventory": false,
  "isInactive": false,
  "isSummary": false,
  "lastModifiedDate": "2024-05-06T14:55:00Z",
  "localizations": {
    "links": [
      {
        "rel": "self",
        "href": "https://[customerId].suitetalk.api.netsuite.com/services/rest/record/v1/account/677/localizations"
      }
    ]
  },
  "parent": {
    "links": [
      {
        "rel": "self",
        "href": "https://[customerId].suitetalk.api.netsuite.com/services/rest/record/v1/account/188"
      }
    ],
    "id": "188",
    "refName": "5800 Amanda L. Perry"
  },
  "revalue": false,
  "subsidiary": {
    "links": [
      {
        "rel": "self",
        "href": "https://[customerId].suitetalk.api.netsuite.com/services/rest/record/v1/account/677/subsidiary"
      }
    ]
  }
}

** The list items will depend on the values returned in the List Valuessection after saving the property mapping the first time or clicking the refresh button and will look like this:

"id": "123", "displayName": "100000 - Cash & Equivalents"|"id": "124", "displayName": "100100 - Checking"|"id": "125", "displayName": "100200 - Savings"|"id": "126", "displayName": "100300 - Investments"|"id": "127", "displayName": "100400 - Petty Cash"|"id": "128", "displayName": "100900 - Other"

The list values returned needs to be formatted. You can use Chat GPT with this prompt:

Convert the following string into a JSON array with "id" and "displayName" key value pair objects. The keys must be strings

Once done, it will produce a Json array (see below sample) which can be pasted in the List Itemsfield in the Property Mapping settings.

[
  {"id": "123", "displayName": "100000 - Cash & Equivalents"},
  {"id": "124", "displayName": "100100 - Checking"},
  {"id": "125", "displayName": "100200 - Savings"},
  {"id": "126", "displayName": "100300 - Investments"},
  {"id": "127", "displayName": "100400 - Petty Cash"},
  {"id": "128", "displayName": "100900 - Other"}
]

Take note: Ids should be unique in the list and there should not be a trailing comma after the last object { }in the list above.

It is desirable to prefer the values for accounts from NetSuite over that of your CAD system since CAD file may not even include this information.

Make sure to set the checkbox Prefer NetSuite value in the property Mapping settings

Account Property Mapping Rules

Given this input, create the following rules:

  • A Set Empty Cells import rule for your Primary/CAD source with the default id of the account, for example:

125
  • A Text not empty rule. This will prevent errors when submitting the BOM

PreviousConfigure quantity mappingNextConfigure itemType mapping

Last updated 3 months ago