Description
Use this method to upload records into the relational tables that have been created using the account.addRelationalTable method. You can also specify an email address that will receive the system notification either when the data file has been loaded into the relational table or when the upload is aborted due to error.
This method references an ASCII text file that contains the actual records to be loaded into the relational table. The only allowable file extensions include .txt., .csv., .tab., .zip, and .gzip.
The data file must have a header row and must use the same delimiter as the one specified in <delimiter> element of this method call. Each column name specified in the header row must be identical to the one passed in the <column_name> element of the account.addRelationalTable method call when the table was initially created. If a column name in the header row is not recognized, then the system will ignore that field when loading the data into the relational table.
Note also that regardless of what display format you choose for the date field in your relational table, the actual date value included in the uploaded data file must be formatted as YYYY-MM-DD.
Some additional itEmpower to note include:
- When data is loaded, all existing data in the relational table will be deleted prior to loading in the new data.
- Up to a maximum of 500,000 records can be inserted into a single relational table.
- When a record does not have a value for a String column, two double quotes should be entered.
- When a record does not have a value for a Number column, a zero should be entered.
Arguments
Field | Description | Field Type | Required | Example |
---|---|---|---|---|
table_name | The programmatic name of the table that the records from the data file will be loaded into. The table name must be same one used when the relational table was initially created using the account.addRelationalTable method call. | String | Yes | concert_info |
delimiter | An ASCII text character indicating the delimiter used by the data file containing the records to be loaded into the relational table. Two additional special values are permitted:
|
String | Yes | , |
compression | Only include this element if the data file uses compression. The valid compression types are:
|
String | No | zip |
data_url | The fully qualified URL of the data source. Include this element only if you are using HTTP or HTTPS as the transfer protocol.
The only allowable file extensions of the data file include .txt., .csv., .tab, .zip, and .gzip. |
String | Conditional; Required only if you are using http(s) as the transfer protocol. | https://www.example.com/data/myFileName.txt |
ignore_error_rows | This boolean value allows the entire file to process, even if there are rows that generate errors (e.g. improperly formatted data, invalid data type, etc.) where:
|
Number | No | 1 |
ftp_server | IP address or host name of the FTP server hosting the data file. | String | Conditional. Required only if you are using FTP as the transfer protocol. | ftp.example.com |
ftp_user_name | User name of the FTP site | String | Conditional. Required only if you are using FTP as the transfer protocol. | ftp_user |
ftp_user_pass | Password of the FTP site | String | Conditional. Required only if you are using FTP as the transfer protocol. | ftp_pass |
sftp | Indicator of whether connection is via the sFTP protocol where:
|
boolean | No | 1 |
ftp_ssl | Indicator of whether FTP with a valid SSL certificate should be applied where:
NOTE: if both <sftp> and <ftp_ssl> are set to "1", then the connection will be via sFTP protocol. |
boolean | No | 1 |
filename | The name of the data file on the FTP server. The file name can also include the FTP directory path to the file. The only allowable file extensions of the data file include .txt., .csv., .tab, .zip, and .gzip. | String | Conditional. Required only if you are using FTP as the transfer protocol. | datafile.txt or /path/to_file/datafile.txt |
reply_email | An email address that will receive the system notification when the data load has either completed or aborted due to error. | String | Yes | jsmith@example.com |
Response
Field | Description | Example |
---|---|---|
table_name | The name of the relational table just updated. | concert_info |
reply_email | The email address receiving the notification email. | jsmith@example.com |
error_rows | The number of records skipped in the data file due to error. This element is only included in the response message when the <ignore_error_rows> element is set to '1'. | 13 |
Response Codes
Error Condition | responseCode | responseText |
---|---|---|
Successful data file upload | 641 | Table data successfully imported |
One or more records in the data file contained fields where the value did not match the data type of the column or that the value was improperly formatted | 642 | Action not taken, improperly formatted data |
The <delimiter> element specified an invalid delimiter or the delimiter of the data file does not match the one specified. | 643 | Action not taken, invalid delimiter |
The <compression> element specified an invalid compression or the one used on the data file does not match the one specified. | 644 | Action not taken, invalid compression |
If HTTP(s) is the transfer protocol, then the fully qualified URL is missing. If FTP is the transfer protocol, then the host name or IP address of the FTP server is missing. | 645 | Action not taken, data_url or ftp_server is required |
Both elements were included in the parameters. To eliminate ambiguity, the parameters needs to include one or the other. | 646 | Action not taken, cannot pass both data_url and ftp_server |
FTP is the transfer protocol and the user name and/or password are missing | 647 | Action not taken, FTP user name and password is required |
FTP is the transfer protocol and the filename is missing | 648 | Action not taken, filename is required |
The file extension of the data file is not supported. | 649 | Action not taken, invalid file type |
The name of the relational table is missing or the name provided in the parameters does not match with the one in the database. | 651 | Action not taken, table_name does not exist |
One or more column headers provided in the data file does not match the column name of the relational table in the database. | 652 | Action not taken, invalid column specified in import file |
A generic error returned in the extremely rare case that a system-level error exists at the time of the data load attempt. | 653 | Action not taken, database exception |
There was an error in retrieving the data file from either the web or the ftp server. This error could arise for any number of reasons including invalid URL or FTP server, invalid FTP username and/or password, the host web server or FTP server are unavailable, etc. | 654 | Action not taken, data file was not copied |
The data file is missing records | 655 | Action not taken, data file was empty |
The data file contains more than the maximum 500,000 records. | 656 | Action not taken, number of records exceeds 500,000 |
This error message is returned only when the <sftp> option is set to "1". If the sFTP connection fails, the system automatically checks to see whether the <ftp_server> value has a valid FTP connection. This error code occurs if the FTP (non-SFTP) connection succeeds. | 657 | ftp_server provided has a valid FTP connection, but no sFTP connection |
This error message is returned only when the <sftp> option is set to "1". If the sFTP connection fails, the system automatically checks to see whether the <ftp_server> value has a valid FTP connection. This error code occurs if the FTP (non-SFTP) connection also fails. | 658 | login attempt to sFTP failed |
Example Post
<methodCall>
<methodName>account.importrelationaltabledata</methodName>
<table_name>full_contacts</table_name>
<delimiter>,</delimiter>
<filename>side_table_test_data.txt</filename>
<ftp_server>ftp.example.com</ftp_server>
<ftp_user_name>ftp_user</ftp_user_name>
<ftp_user_pass>ftp_pass</ftp_user_pass>
<reply_email>jsmith@example.com</reply_email>
</methodCall>
Example Response
<methodResponse>
<item>
<methodName><![CDATA[account.importrelationaltabledata]]></methodName>
<responseCode><![CDATA[641]]></responseCode>
<responseText><![CDATA[Table data successfully imported]]></responseText>
<responseData>
<table_name><![CDATA[full_contacts_test]]></table_name>
<reply_email><![CDATA[jsmith@example.com]]></reply_email>
<error_rows><![CDATA[0]]></error_rows>
</responseData>
<responseNum><![CDATA[1]]></responseNum>
</item>
</methodResponse>
Example Error
<methodResponse>
<item>
<methodName><![CDATA[account.importrelationaltabledata]]></methodName>
<responseCode><![CDATA[651]]></responseCode>
<responseText><![CDATA[Action not taken, table_name does not exist]]></responseText>
<responseData>
<table_name><![CDATA[full_contacts]]></table_name>
<reply_email><![CDATA[jsmith@example.com]]></reply_email>
<error_rows></error_rows>
</responseData>
<responseNum><![CDATA[1]]></responseNum>
</item>
</methodResponse>