7.7.3 Import any external Delivery Data

This article describes a asynchronous interface to import data using CSV files into Salesforce/Advendio. Additionally you have the option to enter 4.13 Manual Delivery Data.

Configuration in Salesforce

For each field you need to import create records under

Setup - Develop - Custom Metadata Types

  • Data Import Mapping (ADvendio__DataImportMapping__mdt) 

 to define your individual mapping. By clicking manage you can add new records. These have the following fields:

Name

Api Name

Function

Comment

Feature
ADvendio__Feature__c

Selects the interface function/feature

To import pls enter „GenericDataPushImport“

Source
ADvendio__Source__c

Name of data source out of your CSV file header

If not in imported csv this field gets ignored

Target
ADvendio__Target__c

API name to the field in which the

data gets written into


Target Object
ADvendio__TargetObject__c

Object to be filled

You can set up multiple import mappings for more than one object, but one CSV will always fill only one object at a time.

Required
ADvendio__Required__c

If checked the import verified that the csv header contains this field otherwise an error is reported and the upload is cancelled.


Unique Key
ADvendio__UniqueKey__c

Marks this field as a unique key

If checked the import can be handled by a Salesforce UPSERT instead of an import.

Comment
ADvendio__Comment__c

Comment, no function for the interface.


Label
MasterLabel

Salesforce default - not used


Data Import Mapping Name
DeveloperName

Salesforce default - not used


Send a request

Please view example code at: 7.7.3.1 Sample Code for Data Importer

Submit a  "multipart/mixed" https post request to https://altona.advendio.com:8080/AdServerGateway_2.73/startJob.

First part of Request

XML which includes the Job Configuration:

Name

Type

Comment

endpoint
String (URL)

salesforce login - end point or session end point

password
String

Salesforce password (not necessary for if you use session)

username
String

Salesforce user name (not necessary for if you use session)

token
String

Salesforce login token (not necessary for if you use session)

sessionId
String

Salesforce SessionId (not necessary for if you use password, username and token)

orgId
String

Salesforce Organisation ID

dataType
String

here only CSV allowed

operation
String

"GenericDataPushImport"

objectName
String

Pls use the „Data Import Mapping“ Target Object you like to import data into.

fmail
String (; separierte email)

Email address for error messages, if empty Email of field smail is used.

smail
String (; separierte email)

Email address for success messages.

After process has finished a Link to the result page will be sent.

Second Part Request

Second part of the request is the CSV which includes all data to be imported. Header and their respective columns which are not mapped will be ignored.

Answer

You will receive an immediate answer in XML (default) or JSON if that type was requested. The answer JobStatus will have the following data:

Name

Type

Comment

jobId
Integer
ID
status
Integer
0 = queued, 1 = in progress, 2 = completed, 3 = failed
message
String
Description
progress
Float
0 - 1 showing the progress
start
DateTime
start time of job
end
DateTime
end time of job
request
String
Used JobConfiguration
orgId
String
Salesforce Org (JobConfiguration)
operation
String
refer to JobConfiguration


Monitor Progress

Request

To monitor the status and progress of your request you can send an „application/xml“ or „application/json“ https post request to https://altona.advendio.com:8080/AdServerGateway_2.73/getJobStatus.

The JobIdentifier needs the following data:

Name

Type

Comment

jobId
Integer
refer to JobStatus
orgId
String
refer to JobConfiguration and JobStatus

Answer

The answer is an updated JobStatus. (please refer to the above description under Answer)


Fetch Results

To pull the results even if the job has not finished you can send an „application/xml“ or „application/json“ https post request to https://altona.advendio.com:8080/AdServerGateway_2.73/getJobResults.

Please refer to JobIdentifier above.

The JobResults answer looks like this:

Name

Type

Comment

status

JobStatus

refer to JobStatus

results

List<JobResult>

refer to JobResult


which contains of JobResult:

Name

Typ

Kommentar

data
Object

Data of the typ dataType

dataType
String

Typ of data (e.g. GenericDataPushImportLineResult, ForceBulkJobInfoResult)

created
DateTime

created date


with Type GenericDataPushImportLineResult:

Name

Typ

Kommentar

lineNr
Integer

Position in CSV File including header

success
Boolean

false if error (successful lines will not be recorded)

message
String

Error message or other information for that line


and with Type ForceBulkJobInfoResult:

Name

Typ

Kommentar

id

String

refer: Setup - Jobs - Bulk Data Load Jobs - Job ID