Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Import engine allows administrators to collect data from various data sources, and then map this data into relevant tables.
The SimpleOne import engine features the followingsupports:
- different data sources source types are supported.
- different file formats are supported (if you choose "File" as the data source).
You can choose the data source, place the data from it to the temporary table (also can be called "an import set"), and after that, with the transform maps and the field maps, you can map the data from the source with to the target tablestable.
Tip |
---|
Role required: admin. |
You can find a graphical procedure view of the import process in the diagram below. A more detailed description is provided further in this article.Image Removed
Section | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
concepts
Concept | Description |
---|---|
Import source | A record specifying what that specifies what data an import set should import. |
Import set | A record containing that contains references to raw data uploaded to the staging location. Also, this The record also returns information about this import attempt state. |
Import set table | An automatically generated table that is used as temporary storage for imported records before transformation. The structure of the table is automatically generated depending on the imported data. |
Transform | The conversion process of converting data according to the transform map and transform scripts that also define the source table (the import set) and the target table. |
Transform Map | In this set of field maps, the a record that specifies correlations between fields in an import set table and fields in a target table are specified. |
Transform Script | A script allowing to customize that allows customizing import operations using a native JavaScript extended with SimpleOne SimpleOne Server-Side API. |
Field Map | A record that specifies the relationship between a field in an import set table and a field in a target table. |
Coalesce | An option related to the transform transformation process. This option allows updating existing table records within the transform transformation process. For more information, please navigate to the relevant article part: Coalesce. |
General import procedure description
- Prepare raw data.
- Create an import source.
- Load raw data into the import set table.
- Create a transform map.
- Create field maps.
- Run a transform.
- Verify results.
Tip |
---|
Role required: export_admin. |
Anchor | ||||
---|---|---|---|---|
|
Creating an import source is necessary to load raw data into the system for Creating an import source is necessary to load raw data into system for further processing and transformation. You can set up an import source able to work with the different data source types and file and file formats.
- Navigate to Import → Import Sources.
- Click New and fill in the fields.
If the File type is chosen, click on the attachment icon
Image Added and attach the file you need.
Tooltip onlyIcon true appendIcon info-filled iconColor blue You can attach JSON, XML or Excel files.
- Click Click Save or Save and Exit to apply changes.
Import Source form fields
Field | Mandatory | Description |
---|---|---|
Name | Y |
Specify the import source name. | |
Import Set Table Name | Y |
Specify the import set table name. |
Type
The maximum length of the table name is 63 symbols. | ||
Type | N | Choose the type of |
import source. Available choice options:
| ||
File Retrieval Method | N | Choose the method |
to add the file |
to the import source |
. Available choice options:
This field will appear if the File type is chosen. | |
Format | Y |
Select the file |
format and attach it to the form. Available file format options:
|
After loading data into the import source, saving the record and calling the one of the data loading actions, a new record appears in the Import Sets related list.
Also, several UI actions responsible for the further import processing appear on the import source form (see description below).
After clicking, a pilot import set is created with a 20-records capacity, intended for importing data structure analysis.
Do not use this set in further transform.
This UI action creates new import set record with loading full data from import source there.
This import set can be used in further transform.
Info |
---|
When calling record loading with one of UI actions listed below for the first time, a new table is created. This table is in child relationships with the Import Set Rows table, and the table name is specified in the Import Set Table Name field of the source table. Field system names of this table containing source data have the imp_ prefix in the name. |
This field will appear if the File or Text type is chosen. | |||||||||||||
Import Text | N | Specify the text you need to import. This field appears if the Text type is chosen.
| |||||||||||
LDAP Definition | N | Click on the magnifier icon
|
After saving, the following UI actions appear on the import source form. They are responsible for further import processing.
UI Action | Description | ||
---|---|---|---|
Test load (20 records) | After clicking, a pilot import set is created with a 20-records capacity, intended for importing data structure analysis.
| ||
Load all records | This UI action creates a new import set record by loading full data from the import source there. This import set can be used for further transformation. |
After loading data into the import source, saving the record and calling one of the data loading actions, a new record appears in the Import Sets related list.
Note |
---|
After creating a first import set, create a related transform map. For this, please complete the steps below:
In this article below, you will get more information about transform maps. |
Tip |
---|
For more information about LDAP import source, please refer to the Importing using LDAP article. |
Using JSON format
You can use JSON files containing data formatted in JSON as a an import source. In this case, make sure that these the files follow the criteria below:
- JSON files should be valid. Use Use the RFC 8259 document as a guideline.
- Data types available to use in JSON structure are listed below. Dot-walking is not supported.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "top500": 1, "name": "More", "sector": "Oil and gas" } |
Result: an import set with related table created (consisting of these fields: top500,name,sector) and containing one elementone element. The table has top500, name, sector fields and contains one record.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[ { "top500": 1, "name": "More", "sector": "Oil and gas" }, { "top500": 2, "name": "Nevermore", "sector": "Oil and gas" } ] |
Result: an import set with the related table created (consisting of these fields: is created. The table has top500, name, sector) containing two elements fields and contains two records.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
// Path for Each Row == exportField { "exportField":[ { "top500":1, "name":"More", "sector":"Oil and gas" }, { "top500":2, "name":"Nevermore", "sector":"Oil and gas" }, { "top500": 4, "name": "Givememore", "sector": "Oil and gas", "more_info": "https://instance.example.com/company/34" } ] } |
Result: an import set with the related table created (consisting of these fields: is created. The table has top500, name, sector, more_info) containing three elements.
Generally, an import set should be created automatically based on the raw data uploaded into the import source. Import sets are intended to be a staging area for records imported from the data sources.
Import Set field description
Import set unique number. This field is populated automatically.
This field contains related import source record number. This field is populated automatically.
This field contains related import set record number. This field is populated automatically.
Import set loading state. This field is populated automatically and always read-only.
Possible values are:
- Loading – data loading into the import set is in progress.
- Loaded – data loading into the import set has been finished.
- Processed – the import set transform has been processed.
- Cancelled – data loading has been cancelled.
This field describes the structure of the table created and populated with the data automatically.
Field value example:
Code Block | ||
---|---|---|
| ||
Table structure: (top500 | name | sector | more_info | created_at | created_by | record_id) |
fields and contains three records.
Table and column name transformation
When converting data for import, some changes occur to the system names of columns and tables that appear in the Import Set Table Name field of the Import Sources (sys_import) table. Namely, the names are transliterated and converted according to the following rules:
- The system changes all Cyrillic letters to the Latin ones according to their ordinal number in the list of the Latin symbols. See below how the transliteration is done:
Cyrillic symbols [
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п',
'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я',
'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П',
'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я'
];
Latin symbols [
'a', 'b', 'v', 'g', 'd', 'e', 'io', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'shch', '\'', 'y', '\'', 'e', 'yu', 'ya',
'A', 'B', 'V', 'G', 'D', 'E', 'Io', 'Zh', 'Z', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'R', 'S', 'T', 'U', 'F', 'h', 'Ts', 'Ch', 'Sh', 'Shch', '\'', 'Y', '\'', 'e', 'Yu', 'Ya'
]; - All symbols that are relevant to the regular expression
/[^A-Za-z0-9_]+/u
are substituted with an underscore _ symbol. That is all symbols except capital and lowercase letters, digits, and the underscore are substituted with _ . - A system column name is split into parts by an underscore _. Then, the parts are connected with an underscore _ . For example, the name _DOC_____1 is transformed to doc_1 as a result .
The current system name of the column is transformed to lowercase.
Info If a column name is empty, then, when converting, the system sets the following name
imp_invalid_column + column number
. The column number is determined by its order in the table. The numbering starts from 0. For example,imp_invalid_column0
.- The imp prefix is added to the name, for example,
imp_client_list
.
Anchor | ||||
---|---|---|---|---|
|
Generally, an import set should be created automatically based on the raw data uploaded into the import source. Import sets are intended to be a staging area for records imported from the data sources.
Import Set form fields
Field | Mandatory | Description | |||||
---|---|---|---|---|---|---|---|
Number | Y | Import set unique number. The field is populated automatically. | |||||
Import Source | Y | The field contains related import source name. The field is populated automatically. | |||||
Import Set Table | Y | The field contains the related import set table name. The field is populated automatically.
| |||||
State | Y | Import set loading state. The field is populated automatically and is always read-only. Possible values are:
| |||||
Short Description | N | The field describes the structure of the table created and is populated with the data automatically. Field value example:
|
Import Set records are in the parent-child relationship with the Import Set Rows table.
Anchor | ||||
---|---|---|---|---|
|
Transform map is a set of field maps. In this set of field maps, correlations between fields of an import set table and fields of a target table are specified.
Each import operation requires at least one transform map which specifies the relationship between the import set table and the target table.
After creating the first import set, create a related transform map. To do this, complete the steps below:
- Click View Transform Map on the import source form you are configuring.
- In the appeared toast message, follow the link Create Transform Map.
- Fill in the fields in the appeared form.
- Click Save or Save and Exit to apply changes.
Tip |
---|
A transform map can also be created "from scratch". To do this, complete the steps below:
|
Transform Map form fields
Field | Mandatory | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Name | Y | Displayed transform map name. | ||||||||
Active | N | Select this checkbox to make the transform map available to use. | ||||||||
Source Table | Y | Select the table containing the import set data. | ||||||||
Target Table | Y | Select the table where you need to place imported data. | ||||||||
Silent Load
| N | Select the checkbox to ignore business rules, notification rules and other server-side engines which can be triggered by insert or update actions. In particular, workflows related to this record will not start, the field changes history will not be recorded and will not be displayed in the Activity Feed, respectively.
You can find engine and business rule execution orders in the Execution order article. | ||||||||
Ignore Mandatory Fields | N | Select the checkbox to ignore mandatory fields in the target table. | ||||||||
Use Script | N | Select the checkbox to display the Script field, where you can define the transform script.
| ||||||||
Script | N | Insert a transform map script you want to use to transform field values from the source table to the target table. Use the runTransformRow() function with the following parameters available:
This script can be used to define field relationships before transformation. You can also configure relationships by creating related records via the Field Map tab of the specified transform map. If you are configuring field mapping with the script, then it is recommended to create one more allocated field map record to define the Coalesce settings for this transformation session. |
Transform Scripts
Transform script allows you to customize import operations using JS-scripts with SimpleOne Server-Side API.
Transform Script form fields
Field | Mandatory | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Transform Map | Y | Specify a transform map to which this script is related. | ||||||||||||||||||||||||||
Active | N | Select the checkbox to make the script active or inactive. | ||||||||||||||||||||||||||
When | Y | Specify the script type to occur:
| ||||||||||||||||||||||||||
Order | N | The field specifies the order in which the transform script will be executed. Fill in this field with an integer number.
| ||||||||||||||||||||||||||
Script | N | Enter the script using SimpleOne Server-Side API. Use the runTransformScript() function with the following parameters available:
|
Anchor | ||||
---|---|---|---|---|
|
Field maps are used to define the correlation between fields of the import set table and fields of the target table. For this, you need to determine the values from the source table that will be added to the target table.
Info |
---|
During the import process, you may need to update the existing records in the target table. To set up the key relationships between the Source Table and the Target Table, create at least one field map record, with the enabled Coalesce attribute. This attribute should be enabled for a field map that contains relationships of columns with unique values. It can be an email for a user, or a serial number for a CI. In order to achieve stricter mapping, you can enable the Coalesce option for more than one Field Map record. |
To create a field map, complete the steps below:
- Navigate to Import → Transform Maps.
- Open the transform map you want to configure.
- Click Create field map.
- The Field Mapping widget appears. See the screenshot in the table below.
- Configure field mapping within the current transformation process.
- Click Set to save changes or Cancel to discard changes.
Tip |
---|
Here is another way to create field maps:
|
Field Map form fields
Field | Mandatory | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Transform Map | Y | Displays the transform map using this field map. The field is populated automatically. | ||||||||
Source Field | Y | Select the field of the source table that should be transformed. | ||||||||
Target Field | Y | Select the field of the target table that should store the values from the source table. | ||||||||
| N | If this option is active within the transformation process, the engine checks whether values in the Target Table are equal to values in the Import Set table. If values are equal, the record in the Target Table will be updated; otherwise, a new record will be created.
| ||||||||
Use Script | N | Select the checkbox to define the transform script in the Script field. | ||||||||
Script | Y | Insert a script to determine a function that takes the record object of the Import Set table as an argument and returns the value to put into the Target Field. Enter the script using SimpleOne Server-Side API. Use the transformEntry() function with the following parameters available:
The field appears when the Use Script checkbox is selected.
|
Running a transform
- Navigate to Import → Import Sets.
- Open an import set you want to transform. Make sure that the state is Loaded.
- Click Transform.
As a result, the toast message Import is completed
appears. Imported data will be transferred into the target table.
Transform sequence
The scheme below shows the sequence of events triggered by the transformation:
Image Added
- The sequence begins with the onStarttransform script. It will be executed at the start of the transformation before any source row is read.
- The field map script takes the record object of the Import Set Row table as an argument and returns the value to put into the Target Field.
- The transform map script transforms field values from the source row to the target row.
- The onBefore transform script is executed before the source row is transformed into the target row.
- Between the execution of onBefore and onAfter scripts, the target record is inserted or updated.
- The onAfter transform script runs when the source row has been transformed into the target row.
- The onComplete transform script is executed when all source rows are transformed.
Info |
---|
The onBefore and onAfter scripts are repeatable, they will run until each record is transformed. |
Transform map is a set of field maps. In this set of field maps, the correlations between fields in an import set table and fields in a target table are specified.
Every import operation requires at least one transform map which specifies the relationships between the import set table and the target table.
To create a transform map, please complete the steps below:
- Click on the View Transform Map UI action located on the import source form you are configuring.
- In the info message appeared, follow the link Create Transform Map.
- Fill in the fields in the form appeared.
- Click Save or Save and Exit to apply changes.
Tip |
---|
A transform map can be also created "from scratch". For this, please complete the steps below:
|
Transform Maps field description
Ignore Mandatory Fields
Select this checkbox to display the Script field, where you can define the transform script.
Note |
---|
If you unselect this checkbox after inserting a script, the script will not be applied within the transformation. |
Insert a transform map script you want to use to transform field values.
This script can be used to define field relationships before transform. Also, these relationships can be configured by creating related records via the Field Map related list of the specified transform map.
If you are configuring field mapping with the script, then it is recommended to create one more allocated field map record to define the Coalesce settings for this transform session.
Transform map script
Transform map script allows you to customize import operations using a JS-scripts written using a SimpleOne Server-Side API.
Transform Script field description
Specify the script type to occur:
- onComplete – this script runs at the end of the transformation.
- onStart – this script runs at the start of the transformation.
- onAfter – this script runs after the source row is transformed into the target row.
- onBefore – this script runs before the source row is transformed into the target row.
This field specifies the order of transform scripts. Fill in this field with an integer number. Scripts will be sorted in the descending order.
Field maps are used to define correlation between fields in an import set table and fields in the target table by determining the values from the source table to be added to the target table.
Info |
---|
Within the importing process, you may need to update existing records in the target table. To configure the key relationships between the Source Table and the Target Table, create at least one allocated field map record, with the Coalesce attribute turned on. This attribute should be activated for the field map containing relationships of the columns with unique values. It can be email for a user, or a serial number for a CI. In order to achieve more strict mapping, you can activate the Coalesce option for more than one Field Map records. |
To create a field map, please complete the steps below:
- Navigate to Import → Transform Maps.
- Open a transform map you want to configure.
- Click Create Field Maps UI action.
- The Field Maps widget appears (see screenshot in the table below).
- Configure field mapping within current transform process.
- Click Set to save changes or Cancel to discard changes.
Tip |
---|
There is another way to create field maps:
|
Field map fields description
If this option is active within the transform process, then the engine checks for values in the Target table field whether they are equal to the Import set table field value.
If values are equal, then the record in the Target table is updated; otherwise, a new record is created.
Tip |
---|
This option can be set up by the widget. After clicking a Create Field Maps UI action on the transform map form, a widget containing either Add coalesce or Drop coalesce buttons appear.
|
Select this checkbox to define the transform script in the Script field.
Insert a script to determine a function that takes the record object of the Import Set table as an argument and returns the value to put into the Target Field.
This field appears when the Use Script checkbox is selected.
Note |
---|
Do not unselect the Use Script checkbox after inserting a script, otherwise it will not be applied. |
Running a transform
Table of Contents | ||||
---|---|---|---|---|
|