Fields

Within the context of FileMasker, a "field" is synonymous with "column" where "column" is more typically used when describing fields in text-delimited (CSV) files.

  

Field Definition
 

You must first define a field in FileMasker before you can create a mask for it.

To create a field, right-click in the Masks Summary tab. A popup menu shall appear.

 

 

Click on the 'Add Field...' command.

A dialog to create a field definition shall appear as shown below.

 

  

In the field name text box, enter the field name.

The field name is not case sensitive for CSV but is case sensitive for JSON.

 

CSV Field Names
 

If you are masking a CSV file then you can enter the column name if the CSV file has a heading/column name row as the first row in the input file.

CSV field names are not case sensitive.

You can also just enter the column number in appearance order in the file from the left, starting with the first column being numbered from 1.

The following example shows a field definition referencing the second column from the left in a CSV file.

 

JSON Field Names
 

If you are masking a JSON file then you must enter the full path to the field.

JSON path names are case sensitive.

 

Arrays are referenced starting from index 0. The example below shows a field defined for the field 'account_num' in the first member of array 'folio'.

 

Preserve Null or Empty Values Setting
 

This setting is enabled by default.

For CSV files, empty values shall be preserved. i.e. values that are not specified between delimiters.

For JSON files, 'null' values shall be preserved and empty strings shall be preserved.

 

Missing Field Setting
 


 

The setting in the Missing Field tab defines how FileMasker should respond if it cannot locate a field.

This is mostly relevant to JSON files that contain multiple record formats.

For example, suppose that a file contains two different types of records FormatA and FormatB.
It may be that only FormatA records contain a field '/fmta/serial_number' that requires masking whereas this field is not found in FormatB. Therefore, by using the Ignore setting FileMasker would mask '/fmta/serial_number' whenever it is encountered and ignore the missing field in FormatB records. Using a setting of Error (the project default) would cause the masking run to terminate with error immediately whenever a field definition cannot be found in a record.

 

Date/Time Setting

 


 

This tab defines the default date/time settings that shall be used by any DateTime mask that is defined for this field.

The default is that the date/time settings in Project Settings shall be used.

Realistically, this tab is for future use and is not used because currently FileMasker does not support conditional masks. Therefore each field can only contain a single mask and so it is more convenient to include the date/time setting in the actual DateTime mask or use the global setting in Project Settings rather than here as a field-level default.

For details of the settings in this tab please refer to the DateTime Mask.