Available Mapping Types
This article describes the expected format of the following existing mapping types that are included in the Universal Mapping Assistant SuiteApp:
For more information, see Defining a New Mapping Type Instance.
GL Accounts SAF-T 2.0
Any mapping type instance for the GL Accounts SAF-T 2.0 mapping type must specify a countries property, which defines the collection of countries to which the instance applies. When you open the Universal Mapping Assistant page and select a specific mapping type instance, you're prompted to select a subsidiary. The list of available subsidiaries is filtered based on the countries property that's specified in the mapping type instance definition.
Below is an example of the existing GL Accounts SAF-T 2.0 mapping type instance definition. If a translationCollection is provided, the name property should correspond to a key in the translation collection. Otherwise, it's treated as the human-readable name of the mapping type instance.
{
type: 'UMA_SAFT_2_0_ACCOUNTS',
id: 'NO_SAFT_2_0_ACCOUNTS',
name: 'mti_name',
values: {
groupingCategories: [
{ uid: 'cat_1', name: 'mti_cat1_name' }
],
groupingCodes: [
{ category: 'cat_1', code: 'cod_1', uid: 'code_1', name: 'mti_code1_name' },
{ category: 'cat_1', code: 'cod_2', uid: 'code_2', name: 'mti_code2_name' }
]
},
translationCollection: 'custcollection_nor',
suggester: '/SuiteApps/com.netsuite.universalmappingassistant/src/suggesters/saft2acc/EmbeddingSuggester',
configuration: {
countries: ['NO']
}
}
The GL Accounts SAF-T 2.0 mapping type requires values to be specified as a combination of two properties:
-
groupingCategories: Defines the collection of grouping categories, where each category is identified by a uid and a name. If a translationCollection is provided, the name property should correspond to a key in the translation collection.
-
groupingCodes: Defines the collection of available grouping codes, where each code is associated with a category, a code, a uid, and a translatable name. Property category must reference the uid of a grouping category. If a translationCollection is provided, the name property should correspond to a key in the translation collection.
For both collections, uid is the stable identity used by the Universal Mapping Assistant. The grouping code remains the business value used for reporting and invoicing purposes.
If a translation collection is specified, the following properties must correspond to keys in that collection:
-
Name of the mapping type instance
-
Names of all grouping codes
-
Names of all grouping categories
Moreover, they must comply with the NetSuite translation key rules and be displayed in lowercase with no spaces.
When values are received, the GL Accounts SAF-T 2.0 mapping type validates that:
-
The set of values is in the expected format
-
Each submitted value entry has a non-empty uid
-
The uid values are unique within the submitted payload
-
Grouping codes do not contain duplicate code values
-
Each grouping code references an existing grouping category
-
Each grouping category is referenced by at least one grouping code
For more information, see Validation of Mapping Type Instance Values.
The example above uses the default suggester, but you can also define a custom one. For more information, see Defining Your Own Suggester.
Methods of Payment
This section describes how you can create and import a specific mapping type instance for the Methods of Payment mapping type. In this context, a mapping type instance represents a specific payment method standard, for example, PEPPOL-81.
When you select the Methods of Payment mapping type, the Payment Methods Standards field appears. The values available in this field are the payment method standards (mapping type instances) installed by localization SuiteApps. The Universal Mapping Assistant SuiteApp doesn't provide any payment method standards by itself.
Below is the expected format for defining a new payment method standard.
|
Attribute |
Required |
Example |
Description |
|---|---|---|---|
|
type |
YES |
UMA_ |
Fixed value. Don't change it. Represents the mapping type that this instance is associated with (Methods of Payment). |
|
id |
YES |
METHODS_ |
Unique identifier for the Payment Method Standard. It must be unique among all payment method standards. |
|
name |
YES |
Peppol-81 |
Display name of the Payment Method Standard. You can see this value as a dropdown menu option. |
|
values |
YES |
|
List of payment methods defined by the Payment Method Standard. Each payment method in the paymentMethods array must define the following required attributes:
|
|
translationCollection |
NO |
custcollection_loc |
Optional. If specified, the name of the mapping type instance, and the names of all payment methods, must correspond to keys in that collection. Moreover, they must comply with the NetSuite translation key rules and be displayed in lowercase with no spaces. |
|
suggester |
0 |
|
Optional. The built-in Methods of Payment mapping type works without this property. If specified, it must point to a valid Suggester module. |
|
configuration |
YES |
{} |
Required attribute. Must be specified as empty curly brackets. |
See the expected format below:
{
type: "UMA_METHODS_OF_PAYMENT",
id: "METHODS_OF_PAYMENT_PEPPOL_81",
name: "Peppol-81",
values: {
paymentMethods: [
{
uid: "pm_1",
code: "1",
name: "Instrument not defined",
description: "Not defined legally enforceable agreement between two or more parties (expressing a contractual right or a right to the payment of money).",
},
{
uid: "pm_2",
code: "2",
name: "Automated clearing house credit",
description: "A credit transaction made through the automated clearing house system.",
},
{
uid: "pm_3",
code: "3",
name: "Automated clearing house debit",
description: "A debit transaction made through the automated clearing house system.",
},
{
uid: "pm_zzz",
code: "ZZZ",
name: "",
description: "",
},
// ...
]
},
translationCollection: "custcollection_loc",
configuration: {},
}
When the same mapping type instance is installed for a built-in mapping type again, the SuiteApp reconciles the available target values by uid. Furthermore, it removes obsolete values that are omitted from the submitted payload.
Units of Measure
This section describes how to create and import a specific mapping type instance for the Units of Measure mapping type. In this context, a mapping type instance represents a specific unit of measure.
Below is the expected format for defining a new Units of Measure standard.
|
Attribute |
Required |
Example |
Description |
|---|---|---|---|
|
type |
YES |
UMA_UNITS_OF_MEASURE |
Fixed value. Don't change it. Represents the mapping type that this instance is associated with (Units of Measure). |
|
id |
YES |
PEPPOL_UNECE_UOM |
Unique identifier for the Units of Measure Standard. It must be unique among all Units of Measure standards. |
|
name |
YES |
PEPPOL UN/ECE |
Display name of the Units of Measure Standard. You can see this value as a dropdown menu option. |
|
values |
YES |
See example below |
List of units of measure defined by the Units of Measure Standard. Each units of measure in the unitsOfMeasure array must define the following required attributes:
|
|
translationCollection |
NO |
custcollection_loc |
Optional. If specified, the name of the mapping type instance, and the names of all units of measure, must correspond to keys in that collection. Moreover, they must comply with the NetSuite translation key rules and be displayed in lowercase with no spaces. |
|
suggester |
0 |
|
Optional. The built-in Units of Measure mapping type works without this property. If specified, it must point to a valid Suggester module. |
|
configuration |
YES |
{} |
Required attribute. Must be specified as empty curly brackets. |
See the expected format below:
{
type: "UMA_UNITS_OF_MEASURE",
id: "PEPPOL_UNECE_UOM",
name: "PEPPOL UN/ECE",
translationCollection: null,
suggester: null,
configuration: {},
values: {
unitsOfMeasure: [
{ uid: "CMT", code: "CMT", name: "centimetre", description: "" },
{ uid: "MTR", code: "MTR", name: "metre", description: "" }
]
}
}
Tax Codes
Tax Codes is a built-in mapping type for SuiteTax accounts. It loads SuiteTax source rows, installed country-specific tax code target values, saved mappings, and saving behavior for the selected mapping type instance.
Tax Codes mapping type instances use configuration.countries as the required country filter. The value must be a non-empty array of country code strings.
values.countryTaxCodes defines the installed country tax codes available as target values for goods and services:
-
uid: Stable identity of the country tax code.
-
code: Business code of the country tax code.
-
name: Optional displayed name.
-
description: Optional displayed description.
See the example of the Tax Codes mapping type instance definition below:
{
type: "UMA_TAX_CODES",
id: "PEPPOL_TAX_CODES_DE",
name: "PEPPOL Tax Codes DE",
values: {
countryTaxCodes: [
{
uid: "DE_STANDARD",
code: "S",
name: "Standard rate",
description: "German standard VAT tax code"
},
{
uid: "DE_REDUCED",
code: "AA",
name: "Reduced rate",
description: "German reduced VAT tax code"
}
]
},
translationCollection: null,
suggester: null,
configuration: {
countries: ["DE"]
}
}