Version: eXtendAlphaBroder, eXtendSanMar, eXtendPS-DE, eXtendESP-DE (eXtendASI) all versions.
Audience: Administrator, Developer

Field Mapping records are used during item constitution in NetSuite from any external integration bundle, such as eXtendAlphaBroder, eXtendSanMar, eXtendPS-DE, eXtendESP-DE (eXtendASI) where field values are needing to be defaulted, or where data mapping/transformation needs to occur prior to creating the item within NetSuite.

There are 5 types of item mappings which can be handed:
  1. Direct Mapping: This mapping requires an input field and an output field. In the input field, you will specify the item field that you are receiving in the integration response and the output field (NetSuite item field internal id) where the value from integration response will be applied. For item fields from the integration response, you can refer your bundle's Item JSON viewer (eXtendTech → Bundle Name → Item JSON). In the JSON view, you can see all the item field’s keys which you can use while creating your mappings.
  2. Hardcoded Mapping: This mapping does not require any input field. In this mapping, you define a hardcoded value and the output field (NetSuite item field internal id) where you want to apply your hardcoded value during item constitution.
  3. Relational Mapping: This mapping is required when the NetSuite item field value needs to be fetched from another record (whose identifier is given by the current input field). Please see the Relational/Lookup mapping section below.
  4. Functional Mapping: This mapping allows a user-defined JavaScript function to do the data transformation. The function would receive the source item, wrapped item, and output JavaScript Object. All functional mapping functions are added to a single transformer file.
  5. JSON Mapping: This mapping is used to specify a static map which translates the value to another value. i.e. if the input value is A > A` , B > B`, C > C`. This map needs to be specified in the Static Mapping.


To create a new Field Mapping:
1. Log into NetSuite.
2. Navigate to eXtendTech → Your eXtendTech Bundle Name → Field Mappings.
3. Click on the New eXtendTech Field Mapping button.
4. Configure the fields as follows depending on your use case and mapping type:

Primary Mapping Information Section
Image Placeholder

NAME – Your mapping name.

INTEGRATION NAME  Used to group fields based on the integration use case. Review the existing mappings in your account to find the associated Integration Name to use.

MAPPING LIST – Select the type of mapping you are creating.

INPUT FIELD – Key or field from the input object on which the transformation will be applied.

OUTPUT FIELD – Target or output field internal id from your NetSuite item record.

HARDCODED VALUE – Value that will be set during hardcoded mappings.

TRANSFORM FUNCTION – The function that will be used in the case of functional mappings.

OUTPUT DATA TYPE – The data type of the output value.

It can be any of the following data types: string, number, integer, date, na (copies the data type properties of the input field)

STATIC MAPPING – A static map which translates a value to another value.
      1. Must be specified in JSON format.
        eg: {
                 "Ohio": "OH"
                 "Baltimore": "BM"
                }
Relational/Lookup Mapping Section
Image Placeholder

RELATIONAL RECORD TYPE – Used in case of "relational" mapping. Specifies the record type in which the "search_ field" is referenced or referred i.e. It is the record type for nlapiSearchRecord()

RELATIONAL REFERENCE FIELD – Used in case of "relational" mapping i.e. when you want to use the value that matches a search. Specifies the field referenced in the mapped record from/to source item. Default: internalid
In the case of NetSuite search, this will be used in filter
E.g.: [REFERENCE_FIELD, 'is', INPUT_FIELD_VALUE]

RELATIONAL REFERENCE FIELD SELECT COLUMN – Specify in case of "relational" mapping. Field to select from referred item to get the output value. In case of NetSuite search, this will be the select column.

RELATIONAL LOOKUP IF VALUE EXISTS – Check this if you want to perform Lookup/Search/Query only if value exists.

PARENT CONFIG ID – Select parent config id for the specified integration.

Advanced Configuration Section
Image Placeholder

MAPPING ORDER – The order in which mapping must be performed. Numbers are considered in ascending order.

USE TEXT VALUE – Check this if you want text to be used over internal id for select fields. This option will be ignored if the data type is not a select field.

Case 1: The search field is not select, but, the output field is select. In this case source field, the transformed value will be written into select's text field

Case 2: Output field is not select, but, the search field is select. In this case source field's text will be used as value

Case 3: Search and Output Both are select, this option will be ignored.

If your Mapping Type is JSON/Static Mapping, in that case text will be used to resolve keys.

DO NOT NULLIFY – Check this box, if you do not want to overwrite the value with an empty value.

DO NOT OVERWRITE – Check this box if you want to value the to be written only if target the system has an empty value.
WARNING: We have limited support for this feature. Please check with eXtendTech Support if you would like to use this feature in your integration.

MULTI SELECT DELIMITER – Specify character or set of characters used to be used as a delimiter in case of multi-select. 

If you are converting a multi-select to a string, delimiter can be used to join the values.  e.g.: A multi-select field has values ['Public', 'Admin'], upon conversion to string with delimiter ';' its value will be Public; Admin

If you are converting a string to multi-select, delimiter can be used to join the values. e.g.: A text field has value Public; Admin upon conversion to string with delimiter ';' its value will be Public and Admin

RAISE ERR NO MATCH – Check this check box to raise an error if the input field is not present.

ATTACH KEY NO MATCH – Check this check box to attach field if input field is not present in the source record.

DEFAULT VALUE IF NULL – Specify a value if input field value is null/empty which is to be used.
At times, the input field in the source system is empty but, the target system needs a value. In such cases, this mapping can be very ideal. This is supported for limited output field value data type: String, Boolean, number, float, and integer only

PREFIX – Specify prefix that would be prepended to field. This is only applicable for text/string fields.

SUFFIX – Specify the suffix that would be prepended to field. This is only applicable to text/string fields.

NOT A SEARCH COLUMN – Check this field as not a search column if the source field is from NetSuite. Do not override mapping won't work for these fields. Some fields are available in NetSuite on record but, are not available for saved searches.

ALLOW JSON PATH FOR SOURCE – Check this box if you want to map the JSON path for mapping.  E.g.: source: {"fieldA": {"fieldB" : "data"}

5. Save your mapping record.

Note: to turn a mapping off, mark the "Inactivate this mapping" checkbox to checked/true.
Image Placeholder