Web API: Importfile: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''importfile''' operation imports data from a text file to a [[QPR_ProcessAnalyzer_Project_Workspace#Managing_Datatables|datatable]].
The '''importfile''' operation imports data from a text file to a [[QPR_ProcessAnalyzer_Project_Workspace#Managing_Datatables|datatable]].


Only UTF-8 character encoding is supported (file needs to be converted into UTF-8 to be able to import it successfully). In case some other character encoding is used, it might lead to invalid characters, which are still imported. In case invalid characters are imported, either a new import needs to be made with a corrected file, or the data needs to be cleaned using a script.
UTF-8 is the only supported character encoding, so the file needs to be converted into UTF-8 for the import. In case some other character encoding is used, it might lead to invalid characters, which are still imported. In case invalid characters are imported, either a new import needs to be made with a corrected file, or the data needs to be cleaned using a script.


HTTP request header '''Authorization''' with value '''Bearer <access token>''' needs to be in place to identify the session.  
HTTP request header '''Authorization''' with value '''Bearer <access token>''' needs to be in place to identify the session.  


<pre>
<pre>
Url: POST /api/importfile?param1=value1&param2=value2&param3=value3
Url: POST qprpa/api/importfile?param1=value1&param2=value2&param3=value3
Content-Type: multipart/form-data
Content-Type: multipart/form-data
Body: <file contents>
Body: <file contents>
</pre>
</pre>


Following parameters can be defined:
Following query parameters can be defined:
* '''fileType''' (string): Defines content format of the imported file. Options are '''csv''', '''pacm''' and '''xes'''.
* '''fileType''' (string): Defines content format of the imported file. Options are '''csv''', '''pacm''' and '''xes'''.
* '''objectId''' (integer): Datatable id. Needed when importing data to an existing datatable.
* '''objectId''' (integer): Datatable id. Needed when importing data to an existing datatable.
* '''append''' (boolean): When true, the possible previous data in the destination datatable is preserved. When false, previous data is removed and also datatable columns are deleted.
* '''append''' (boolean): When true, the possible previous data in the destination datatable is preserved. When false, previous data is removed and also datatable columns are deleted.
* '''matchByColumns''': JSON array of datatable columns that are used to match the imported rows. If a match is found, the existing row is updated. In other case, a new row is created. By default, no matching columns are defined, so all data is imported as new rows.
* '''matchByColumns''': JSON array of datatable columns that are used to match the imported rows as follows: If a matching row is found, that existing row is updated (with columns not listed by this setting). In other case, a new row is created to the datatable. By default, no matching columns are defined, so all data is imported as new rows.
* '''csvDelimiter''' (string): Column delimiter character for the csv format.
* '''csvDelimiter''' (string): Column delimiter character for the csv format.
* '''csvTimeFormat''' (string): Date format to use when interpreting date values for the csv format.
* '''csvTimeFormat''' (string): Date format to use when interpreting date values for the csv format.
Line 24: Line 24:
When importing to an existing datatable, data needs to be converted into each column's datatype. Conversions are made for each datatype as follows:
When importing to an existing datatable, data needs to be converted into each column's datatype. Conversions are made for each datatype as follows:
* String: No conversion needed.
* String: No conversion needed.
* Integer: Converting to integer.
* Integer: Convert digits to corresponding to integer.
* Float: Convert to float using period (.) as the decimal separator.
* Float: Convert to float using period (.) as the decimal separator.
* DateTime: Convert to date using the provided ''csvTimeFormat''.
* DateTime: Convert to date using the provided ''csvTimeFormat''.

Latest revision as of 10:05, 16 February 2022

The importfile operation imports data from a text file to a datatable.

UTF-8 is the only supported character encoding, so the file needs to be converted into UTF-8 for the import. In case some other character encoding is used, it might lead to invalid characters, which are still imported. In case invalid characters are imported, either a new import needs to be made with a corrected file, or the data needs to be cleaned using a script.

HTTP request header Authorization with value Bearer <access token> needs to be in place to identify the session.

Url: POST qprpa/api/importfile?param1=value1&param2=value2&param3=value3
Content-Type: multipart/form-data
Body: <file contents>

Following query parameters can be defined:

  • fileType (string): Defines content format of the imported file. Options are csv, pacm and xes.
  • objectId (integer): Datatable id. Needed when importing data to an existing datatable.
  • append (boolean): When true, the possible previous data in the destination datatable is preserved. When false, previous data is removed and also datatable columns are deleted.
  • matchByColumns: JSON array of datatable columns that are used to match the imported rows as follows: If a matching row is found, that existing row is updated (with columns not listed by this setting). In other case, a new row is created to the datatable. By default, no matching columns are defined, so all data is imported as new rows.
  • csvDelimiter (string): Column delimiter character for the csv format.
  • csvTimeFormat (string): Date format to use when interpreting date values for the csv format.
  • csvQualifier (string): Character used to enclose strings for the csv format.
  • csvStartImportFromLine (integer): The column name row in the csv file.
  • isCompressed (boolean): When true, the file is compressed using gzip format. Only csv and xes files can be provided as compressed (pacm file is already a gzip file).

When importing to an existing datatable, data needs to be converted into each column's datatype. Conversions are made for each datatype as follows:

  • String: No conversion needed.
  • Integer: Convert digits to corresponding to integer.
  • Float: Convert to float using period (.) as the decimal separator.
  • DateTime: Convert to date using the provided csvTimeFormat.
  • Boolean: Convert to boolean with true as true value and false as false value.
  • Duration: Convert to integer and interpret the value as ticks (10000 ticks is 1 millisecond).
  • Empty data is imported as null values (applies for all datatypes).

If conversion is not possible, an error is given and the import stops. Note that part of the data may have been imported successfully to the datatable.