Mapper

Overview

You can use this Snap to map input fields to output fields using JavaScript expressions or expressions created using the Expression Builder.


Mapper Snap Configuration Settings

Prerequisites

None.

Limitations and known issues

None.

Snap views

View Description Examples of upstream and downstream Snaps
Input This Snap supports exactly one document input view.
Output This Snap supports exactly one document output view. Outputs the mapped documents as defined by the user-configured expressions.
Error

Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter when running the pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:

  • Stop Pipeline Execution Stops the current pipeline execution when an error occurs.
  • Discard Error Data and Continue Ignores the error, discards that record, and continues with the remaining records.
  • Route Error Data to Error View Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in Pipelines.

Snap settings

Legend:
  • Expression icon (): Allows using JavaScript syntax to access SnapLogic Expressions to set field values dynamically (if enabled). If disabled, you can provide a static value. Learn more.
  • SnapGPT (): Generates SnapLogic Expressions based on natural language using SnapGPT. Learn more.
  • Suggestion icon (): Populates a list of values dynamically based on your Snap configuration. You can select only one attribute at a time using the icon. Type into the field if it supports a comma-separated list of values.
  • Upload : Uploads files. Learn more.
Learn more about the icons in the Snap settings dialog.
Field / Field set Type Description
Label String

Required. Specify a unique name for the Snap. Modify this to be more appropriate, especially if more than one of the same Snaps is in the pipeline.

Default value: Mapper Snap

Example: Transform input fields
Null-safe access Checkbox

Select this checkbox to set the target value to null if the source path does not exist. For example, $person.phonenumbers.pop() ->$ lastphonenumber might result in an error if person.phonenumbers does not exist in the source data. But, when you select this checkbox, the Snap does not display an error. Instead, it writes null to lastphonenumber. If you deselect this checkbox, the Snap fails if the source path does not exist. The Snap either ignores the entire record or writes the record to the error view (based on the setting of the error view field).

Default value: Deselected

Pass through Checkbox

Select this checkbox so the Snap passes all the original input data into the output document with the data transformation results. If you deselect this checkbox, only the data transformation results in the mapping section appear in the output document and the input data is discarded.

Note: This setting is impacted by Mapping Root. If Mapping Root is set to $ and Pass through is deselected, anything not mapped in the table does not pass through. However, if Mapping Root is set to $customer and Pass through is deselected, it only applies to the items in the Mapping Root level. That means that anything above the Mapping Root level passes through and items at the Mapping level that are not mapped in the table do not pass through.

When you select Pass through:

Always select Pass through if you plan to leave the Target path field blank. Otherwise, an error displays to indicate that the field you want to delete does not exist. This is the expected behavior.

For example, if you have an input file that contains a number of attributes and you need only two of these downstream. To accomplish that:

  1. Connect a Mapper Snap to the downstream Snap.
  2. List the two attributes you need in the Expression fields.
  3. Leave the Target path field blank.
  4. Select Pass through.
When you execute the pipeline, this Snap evaluates the input document/binary data, extracts the two attributes that you want, and passes the entire document/binary data through to the Target schema. From the list of available attributes in the Target Schema, the Mapper Snap picks up the two attributes you listed in the Expression fields, and passes them as output. However, if you do not select the Pass through checkbox, the Target Schema would be empty, and the Snap displays the No schema available error.

Default value: Deselected

Example: Selected to include original input fields in output
Transformations

Use this field set to configure the settings for data transformations.

Mapping Root Dropdown list/Expression

Required. Specify the subsection of the input data to map. Learn more: Understand the Mapping Root.

Default value: $

Example: $

Input Schema Dropdown list

Select the input data (from the upstream Snap) that you want to transform. Drag the item you want to map and place it under the Mapping table

Default value: Selected

Example: Unchecked to throw errors for missing fields
Mapping root String

Specify the mapping expressions. Each row includes a target path and an expression to compute its value. You can also use the Expression Builder to construct expressions.

Example: $name → $input.name.toUpperCase()
Sorted Checkbox Select this checkbox to sort the input schema and the target schema. The sort options are:
  • All: Sorts both mapped and unmapped data.
  • Mapped: Sorts only the mapped data.
  • Unmapped: Sorts only the unmapped data.
Mapping table
Use this field set to specify the source path, expression, and target path columns used to map schema structure. The mapping table makes it easier to:
  • Determine which fields in a schema are mapped or unmapped.
  • Create and manage a large mapping table through drag-and-drop.
  • Search for specific fields.
Learn more: Use the Mapping Table.
Expression String/Expression

Specify the function to use to transform the data. For example, combine, concatenate, or flatten. Expressions that are evaluated replace the source targets at the end of the pipeline runtime.

Note: The data from previous undefined Snaps in the Mapping Table pass through the Data Snap to the next Snap. However, when you define output fields in the Target Path, and if the field name is the same as a field name that would otherwise pass through, the field in the mapping table overrides the output.

Learn More: Understand Expressions in SnapLogic and Use Expressions for usage guidelines.

Managing Numeric Inputs in Mapper Expressions

When you work with upstream numeric data, you might see some unexpected behavior. For example, consider a mapping that reads as follows:
  • Expression: $num +100
  • Target path: $numnew
Now, the value passes from upstream for $num is 20.05. You expect the value of $numnew to now be 120.05. However, when you execute the Snap, the value of $numnew is shown as 20.05100. This happens because, as of now, the Mapper Snap reads all incoming data as strings, unless they are specifically listed as integers (INT) or decimals (FLOAT). So, to ensure that the upstream numeric data is appropriately interpreted, parse the data as a float to convert the numeric data into a decimal, and all calculations on the upstream data in the Mapper Snap work as expected:
  • Expression: pareFloat($num1)+100
  • Target path: $numnew
The value of $numnew shows 120.05.

Default value: $

Example: $

Snap execution Dropdown list
Choose one of the three modes in which the Snap executes. Available options are:
  • Validate & Execute: Performs limited execution of the Snap and generates a data preview during pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during pipeline runtime.
  • Execute only: Performs full execution of the Snap during pipeline execution without generating preview data.
  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Default value: Validate & Execute

Example: Execute only