Import

Contents

Asks the server to enumerate the files in a compressed zip file that was uploaded for importing.

Only available to hosted SaaS clients

HTTP Request

To retrieve files in an archive:

POST /icweb.dll/import/contents/{file}

Request Body

Contains information on how to parse the import file to detect the columns.

Name

Required

Type

Description

Default

file

Yes

String

Specifies the import file previously uploaded.

Responses

Name

Type

Description

200 OK

Files

Contains a list of files found in the uploaded file.

400

Validation Error

Configuration provided for import is invalid, further information on what part was invalid is provided.

404

Not found

The blob id was not found.

Files

The Files object, contains a list of files in the uploaded archive.

Name

Type

Description

Optional

files

string []

List of files found in the uploaded archive.

No

Detect Columns

Asks the server to detect the columns in the import sheet, the server will attempt to match each column with an associated business object field. A base business object needs to be specified.

Only available to hosted SaaS clients

HTTP Request

To retrieve detected columns from import file:

POST /icweb.dll/import/columns

Request Body

Contains information on how to parse the import file to detect the columns.

Name

Required

Type

Description

Default

file

Yes

String

Specifies the import file previously uploaded.

files

Yes

String[]

Specifies a number of import files that have previously been uploaded. This can be used instead of file where there are multiple zip files (exceeding 500mb) to allow larger uploads.

fileName

No

String

If the import file was a zip file, this specifies a file within the zipfile that is used as the import file. (Where multiple zipfiles are specified in files this file can be in any of them)

businessObject

Yes

String

The base business object for the server to use to perform column detection with. The server will attempt to match columns in this table first.

headerRows

Yes

Integer

The number of rows that relate to column headers in the import file.

1

delimiter

Yes

String

Column delimiter

‘,’

qualifier

Yes

String

String qualifier to denote start/end of strings, possible values, ‘quote’, ‘doubleQuote’, ‘none’

quote

consecutiveAsOne

No

Boolean

Treat consecutive delimiter as a single delimiter.

False

columnMaps

No

Column Map []

Contains a list of desired column mappings as a starting point for the detection of further columns, and/or receiving a list of required fields for these mappings.

[]

ignoreColumns

No

integer[]

List of column indexes from source file that should be ignored.

Yes

ignoreBlanks

No

Boolean

Lets the importer know whether to ignore blank cells from the import sheet and not modifying existing data, or (the default) when a blank is found, to set the existing data to null.

False

Responses

Name

Type

Description

200 OK

Import Columns

Contains a list of columns detected in the import sheet, mappings that are detected based on those columns as well as required fields.

400

Validation Error

Configuration provided for import is invalid, further information on what part was invalid is provided.

404

Not found

Either the blob id was not found or the businessObject specified was not found.

Import Columns

The Import Columns object, contains information about the auto-detected columns from the import sheet, as well as a list of column maps to business object fields that have been detected.

Name

Type

Description

Optional

sourceColumns

Source Column []

List of columns detected

No

columnMaps

Column Map []

List of column maps detected

No

requiredFields

Required Field []

List of fields that are required to be provided, either via a static value, or a mapping for the import, based on other fields that have been mapped.

Yes

ignoreColumns

integer[]

List of column indexes from soure file that should be ignored.

Yes

preview

Source Row []

Contains at most 50 rows from the source row, converted to a json object.

No

commonFields

Common Category []

This contains a list of common fields that can be used as a destination for column mappings.

No

Source Column

The source column object, contains information about the columns detected in the import sheet.

Name

Type

Description

Optional

columnIndex

Integer

Column index, 0 is the first, left-most column.

No

columnName

string

Name of the column that was detected from the header rows, where there are no header rows in the import sheet, this will be blank.

Yes

Column Map

Contains information to map a column in the import sheet, with a business object field.

Name

Type

Description

Optional

businessObject

string

Name of the business object

No

fieldName

string

Field name of the field to map this column to.

No

path

string

Path to join from the base businessObject to the destination businessObject. Effectively when businessObject is not in the base table, NEXUS may not be able to correctly determine a path to the destination field. path helps NEXUS decide on the best path to join between the businessObjects.

Yes

columnIndex

Integer

Column index, 0 is the first, left-most column.

Yes

staticValue

any

This will provide a static value for the business object to be imported with, use this instead of a columnIndex to provide the same value to be imported for each row created in the business object.

Yes

optional

Boolean

Determines if this field mapping should create a row, a new row won’t be inserted if it only contains values for ‘optional’ field mappings, default value is False.

Yes

Required Field

Contains information about fields that are required to be provided, either by a column mapping or static value for the import to succeed.

Name

Type

Description

Optional

businessObject

string

Name of the business object

No

fieldName

string

Field name of the field to map this column to.

No

isMapped

Boolean

Specifies if a mapping exists for this field, default False

Yes

Source Row

Contains a preview of up to 50 rows from the source row, as parsed using the submitted settings.

Each column will have a property in the JSON object, the name of the JSON pair will be columnX, where X is a zero based index, and the value will be of type string and contain the raw characters from the source file.

Common Category

Contains a list of categories, and a list of business objects and fields for each category.

Name

Type

Description

Optional

category

string

Name of the category of business objects.

No

businessObjects

Common BusinessObject []

Details on each business object in this category.

No

Common BusinessObject

Contains a reference to a business object, and a list of fields in that business object that can be chosen as a destination field map for importing.

Name

Type

Description

Optional

name

string

Display Name of the business objects.

No

businessObject

string

Name of the business objects.

No

fields

Common Field []

Details on field that can be imported to in this business object.

No

Common Field

Contains a reference to a field in a business object.

Name

Type

Description

Optional

fieldName

string

Field Name

No

name

string

Display Name of the field, not returned if it is the same as fieldName.

Yes

path

string

Path helper for the import, to return if this column is provided.

Yes

Import

Import data into 1 or more tables from a previously posted blob, the blob must be a text file containing data in a tabulated format, such as TSV or CSV.

Only available to hosted SaaS clients

HTTP Request

To start a new import job:

POST /icweb.dll/import

To retrieve detail on an existing import job, see Job Status

URI Parameters

Name

In

Required

Type

Description

fileId

Path

Yes

String

Specifies the import file previously uploaded.

fileName

Path

No

String

If the import file was a zip file, this specifies a file within the zipfile that is used as the import file.

Request Body

This contains parameters for how to import the the data from the blob.

Name

Type

Description

Optional

Default

file

String

Contains an identifier previously returned by a Post Blob call.

No

fileName

String

Where the blob is a compressed zipfile containing multiple files, this is the name of the actual text file containing the import data.

Yes

null

businessObject

String

Name of the primary business object that the import is to be performed on. This forms the basis of the rows in the text file, other objects can be mapped using column mappings.

No

dateFormat

String

Date format used when converting dates in the import sheet, acceptable values: ‘dd/MM/yyyy’, ‘MM/dd/yyyy’, ‘yyyy/MM/dd’, ‘dd-MM-yyyy’, ‘MM-dd-yyyy’, ‘yyyy-MM-dd’.

Yes

yyyy/mm/dd

timeFormat

String

Time format used when converting times in the import sheet, acceptable values: ‘hh:nn:ss AM’, ‘HH:nn:ss’, ‘HH:nn:ss.zzz’, ‘hh:nn AM’, ‘HH:nn’.

Yes

HH:nn:ss

timeZoneOffset

String

Timezone offset of date/times when being imported, a shift will be performed to convert it to UTC for Date & Time fields, Date or Time fields won’t have any conversion performed.

Yes

0

headerRows

Integer

The number of rows that relate to column headers in the import file.

Yes

1

delimiter

String

Column delimiter

Yes

,

qualifier

String

String qualifier to denote start/end of strings, possible values, ‘quote’, ‘doubleQuote’, ‘none’

Yes

quote

consecutiveAsOne

No

Boolean

Treat consecutive delimiter as a single delimiter.

False

startRow

Integer

Start row of data to import, row numbers start at 0, after the header rows. So if there are 2 header rows, and the 3rd line in the file is the first data row, that is considered row 0.

Yes

0

endRow

Integer

End row of data to import, omit this field to import until the end of rows. The importer determines the end of rows by either the end of file, or a blank line.

Yes

columnMaps

Column Map []

List of columns for the import sheet, mapping to business object fields. This is optional, and recommended that you rely on the auto-detect columns, and only pass column maps you want to override in the detection.

Yes

ignoreColumns

integer[]

List of column indexes from soure file that should be ignored.

Yes

ignoreBlanks

No

Boolean

Lets the importer know whether to ignore blank cells from the import sheet and not modifying existing data, or (the default) when a blank is found, to set the existing data to null.

False

test

Boolean

Run a test of the import as a job.

Yes

False

Responses

Name

Type

Description

200 OK

Server Job

Import job created, response contains information on the job.

400

Validation Error

Configuration provided for import is invalid, further information on what part was invalid is provided.

404

Not found

Either the blob id was not found or the businessObject specified was not found.

Example

Example to submit an import job for the Task business object.

Request

POST /icweb.dll/import

Request Body

{
        "file": "{69EA081E-84ED-4504-B15D-14BC7A020E49}",
        "businessObject": "Task",
        "qualifier": "quote",
        "dateFormat": "dd/mm/yyyy",
        "timeFormat": "HH:mm:ss"
}

Response

{
        "id": "{7945AE0D-BB7D-4D7C-AF68-175C74CF02D5}",
        "percentComplete": 0
}

An example to detect the columns in a CSV file, using Header as the base business object.

POST /icweb.dll/importColumns`

Request Body

{
        "file": "{A29C4D22-214C-4DD6-9ED1-8F7FE084E1AA}",
        "fileName": "Rest - Multi Header - Events - Multimedia.csv",
        "businessObject": "Header",
        "headerRows": 1
}

Response

{
        "columnMaps": [{
                        "businessObject": "View_Node",
                        "fieldName": "Full_Location",
                        "columnIndex": 0
                }, {
                        "businessObject": "View_Node",
                        "fieldName": "Full_Location",
                        "columnIndex": 1
                }, {
                        "businessObject": "Comp_Type",
                        "fieldName": "Name",
                        "path": "Component",
                        "columnIndex": 2
                }, {
                        "businessObject": "Workpack",
                        "fieldName": "Name",
                        "columnIndex": 3
                }, {
                        "businessObject": "Table_Def",
                        "fieldName": "Name",
                        "path": "TD_ID",
                        "columnIndex": 4
                }, {
                        "businessObject": "EVT_Span",
                        "fieldName": "Length",
                        "columnIndex": 5
                }, {
                        "businessObject": "SDT_STD_KP",
                        "fieldName": "KP",
                        "path": "Start_Clock_SD_ID",
                        "columnIndex": 6
                }, {
                        "businessObject": "SDT_STD_KP",
                        "fieldName": "KP",
                        "path": "End_Clock_SD_ID",
                        "columnIndex": 7
                }, {
                        "businessObject": "Multimedia",
                        "fieldName": "Name",
                        "columnIndex": 8
                }, {
                        "businessObject": "Repository",
                        "fieldName": "UNC",
                        "path": "Multimedia",
                        "columnIndex": 9
                }
        ],
        "sourceColumns": [{
                        "columnName": "Asset Location.Full Location",
                        "columnIndex": 0
                }, {
                        "columnName": "Asset Location.Full Location",
                        "columnIndex": 1
                }, {
                        "columnName": "Asset.Asset Type",
                        "columnIndex": 2
                }, {
                        "columnName": "Workpack.Name",
                        "columnIndex": 3
                }, {
                        "columnName": "Event.Event Type",
                        "columnIndex": 4
                }, {
                        "columnName": "Span.Length",
                        "columnIndex": 5
                }, {
                        "columnName": "Start - Survey - Pipeline.KP",
                        "columnIndex": 6
                }, {
                        "columnName": "End - Survey - Pipeline.KP",
                        "columnIndex": 7
                }, {
                        "columnName": "Multimedia.Name",
                        "columnIndex": 8
                }, {
                        "columnName": "Multimedia.Image",
                        "columnIndex": 9
                }
        ],
        "requiredFields": [{
                        "businessObject": "View_Node",
                        "fieldName": "CV_ID"
                }, {
                        "businessObject": "EVT_Span",
                        "fieldName": "Header_ID",
                        "isMapped": true
                }, {
                        "businessObject": "Multimedia",
                        "fieldName": "Name",
                        "isMapped": true
                }
        ],
        "commonFields": [{
                        "category": "Event",
                        "businessObjects": [{
                                        "businessObject": "EVT_Span",
                                        "name": "Span",
                                        "fields": [{
                                                        "fieldName": "Length"
                                                }
                                        ]
                                }
                        ]
                }, {
                        "category": "Continuous Event",
                        "businessObjects": [{
                                        "businessObject": "EVT_Pipeline_Profile",
                                        "name": "PL - Profile",
                                        "fields": [{
                                                        "fieldName": "Top_Of_Pipe",
                                                        "name": "Top of Pipe"
                                                }, {
                                                        "fieldName": "Bottom_Of_Pipe",
                                                        "name": "Bottom of Pipe"
                                                }, {
                                                        "fieldName": "Left_Seabed",
                                                        "name": "Left Seabed"
                                                }, {
                                                        "fieldName": "Right_Seabed",
                                                        "name": "Right Seabed"
                                                }
                                        ]
                                }
                        ]
                }, {
                        "category": "Sub Event",
                        "businessObjects": [{
                                        "businessObject": "SET_Cross_Profile",
                                        "name": "PL - Cross Profile",
                                        "fields": [{
                                                        "fieldName": "Header_ID"
                                                }, {
                                                        "fieldName": "X"
                                                }, {
                                                        "fieldName": "Y"
                                                }
                                        ]
                                }
                        ]
                }, {
                        "category": "System Table",
                        "businessObjects": [{
                                        "businessObject": "Commentary",
                                        "name": "Commentary",
                                        "fields": [{
                                                        "fieldName": "Header_ID",
                                                        "name": "Event"
                                                }, {
                                                        "fieldName": "Notes"
                                                }
                                        ]
                                }, {
                                        "businessObject": "Signoff",
                                        "name": "Event Review",
                                        "fields": [{
                                                        "fieldName": "Signed",
                                                        "name": "Date \/ Time"
                                                }, {
                                                        "fieldName": "Description"
                                                }, {
                                                        "fieldName": "SU_ID",
                                                        "name": "Personnel"
                                                }
                                        ]
                                }, {
                                        "businessObject": "Finding",
                                        "name": "Finding",
                                        "fields": [{
                                                        "fieldName": "Finding_ID"
                                                }, {
                                                        "fieldName": "Header_ID",
                                                        "name": "Event"
                                                }, {
                                                        "fieldName": "Anomaly_ID",
                                                        "name": "Anomaly"
                                                }, {
                                                        "fieldName": "Bound_ID",
                                                        "name": "Trigger"
                                                }, {
                                                        "fieldName": "Code_ID",
                                                        "name": "Code"
                                                }, {
                                                        "fieldName": "Is_Bound",
                                                        "name": "Is Auto Generated"
                                                }, {
                                                        "fieldName": "Remedial_Action",
                                                        "name": "Remedial Action"
                                                }, {
                                                        "fieldName": "Anomaly_Required",
                                                        "name": "Anomaly Required"
                                                }, {
                                                        "fieldName": "Severity_ID",
                                                        "name": "Severity"
                                                }, {
                                                        "fieldName": "Reason"
                                                }, {
                                                        "fieldName": "Is_Finding_Reviewed",
                                                        "name": "Is Finding Reviewed"
                                                }, {
                                                        "fieldName": "Finding_Number",
                                                        "name": "Finding Number"
                                                }, {
                                                        "fieldName": "Has_Comments",
                                                        "name": "Has Review Comments"
                                                }
                                        ]
                                }, {
                                        "businessObject": "View_Node",
                                        "name": "Asset Location",
                                        "fields": [{
                                                        "fieldName": "CV_ID",
                                                        "name": "Asset View"
                                                }, {
                                                        "fieldName": "Component_ID",
                                                        "name": "Asset"
                                                }, {
                                                        "fieldName": "Is_Dynamic",
                                                        "name": "Is Dynamic"
                                                }, {
                                                        "fieldName": "Dynamic_Filter",
                                                        "name": "Dynamic Filter"
                                                }, {
                                                        "fieldName": "Link_ID",
                                                        "name": "Parent"
                                                }
                                        ]
                                }, {
                                        "businessObject": "BookMark",
                                        "name": "Bookmark",
                                        "fields": [{
                                                        "fieldName": "Header_ID",
                                                        "name": "Event"
                                                }, {
                                                        "fieldName": "Description"
                                                }
                                        ]
                                }, {
                                        "businessObject": "Multimedia",
                                        "name": "Multimedia",
                                        "fields": [{
                                                        "fieldName": "Name"
                                                }, {
                                                        "fieldName": "Can_Report",
                                                        "name": "Can Report"
                                                }, {
                                                        "fieldName": "Repository_ID",
                                                        "name": "Image"
                                                }, {
                                                        "fieldName": "X"
                                                }, {
                                                        "fieldName": "Y"
                                                }, {
                                                        "fieldName": "pppX",
                                                        "name": "Pixels per Point (X)"
                                                }, {
                                                        "fieldName": "pppY",
                                                        "name": "Pixels per Point (Y)"
                                                }
                                        ]
                                }
                        ]
                }, {
                        "category": "Survey Data",
                        "businessObjects": [{
                                        "businessObject": "SDT_STD_KP",
                                        "name": "Survey - Pipeline",
                                        "fields": [{
                                                        "fieldName": "KP"
                                                }
                                        ]
                                }, {
                                        "businessObject": "SDT_STD_NORM",
                                        "name": "Survey - Standard",
                                        "fields": [{
                                                        "fieldName": "Easting"
                                                }, {
                                                        "fieldName": "Northing"
                                                }, {
                                                        "fieldName": "Depth"
                                                }, {
                                                        "fieldName": "Elevation"
                                                }
                                        ]
                                }, {
                                        "businessObject": "SDT_STD_KP",
                                        "name": "Survey - Pipeline",
                                        "fields": [{
                                                        "fieldName": "KP"
                                                }
                                        ]
                                }, {
                                        "businessObject": "SDT_STD_NORM",
                                        "name": "Survey - Standard",
                                        "fields": [{
                                                        "fieldName": "Easting"
                                                }, {
                                                        "fieldName": "Northing"
                                                }, {
                                                        "fieldName": "Depth"
                                                }, {
                                                        "fieldName": "Elevation"
                                                }
                                        ]
                                }
                        ]
                }
        ],
        "preview": [{
                        "Column0": "Pipelines",
                        "Column1": "10\" Production Pipeline",
                        "Column2": "Flexible Pipe",
                        "Column3": "2012 ILI Inspection",
                        "Column4": "Span",
                        "Column5": "0.012",
                        "Column6": "3.56",
                        "Column7": "3.61",
                        "Column8": "Logo",
                        "Column9": "Logo.png"
                }, {
                        "Column0": "Pipelines",
                        "Column1": "10\" Production Pipeline",
                        "Column2": "Flexible Pipe",
                        "Column3": "2012 ILI Inspection",
                        "Column4": "Span",
                        "Column5": "0.0253",
                        "Column6": "3.77",
                        "Column7": "3.78",
                        "Column8": "",
                        "Column9": ""
                }, {
                        "Column0": "Pipelines",
                        "Column1": "10\" Production Pipeline",
                        "Column2": "Flexible Pipe",
                        "Column3": "2012 ILI Inspection",
                        "Column4": "Span",
                        "Column5": "0.0043",
                        "Column6": "4.8",
                        "Column7": "4.93",
                        "Column8": "WGIM",
                        "Column9": "wgim.bmp"
                }, {
                        "Column0": "Pipelines",
                        "Column1": "10\" Production Pipeline",
                        "Column2": "Flexible Pipe",
                        "Column3": "2012 ILI Inspection",
                        "Column4": "Span",
                        "Column5": "0.122",
                        "Column6": "7.12",
                        "Column7": "7.35",
                        "Column8": "",
                        "Column9": ""
                }, {
                        "Column0": "Pipelines",
                        "Column1": "10\" Production Pipeline",
                        "Column2": "Flexible Pipe",
                        "Column3": "2012 ILI Inspection",
                        "Column4": "Span",
                        "Column5": "",
                        "Column6": "7.42",
                        "Column7": "7.85",
                        "Column8": "",
                        "Column9": ""
                }, {
                        "Column0": "",
                        "Column1": "",
                        "Column2": "",
                        "Column3": "",
                        "Column4": "",
                        "Column5": "",
                        "Column6": "",
                        "Column7": "",
                        "Column8": "",
                        "Column9": ""
                }
        ]
}