Batch process create/import data
Create a batch-job
To generate a new batch-job it is essential to upload the address-files. This will be made by a POST-Request with enctype "multipart/form-data" and the action init.
https://maps1.locr.com/batch-processing/job_v2.php?action=init
The CSV-Data will be send as file with the POST-parameter "customer" and/or "shop" to upload the addresses. All for the batch-job nessesary addresses must be send by the first batch-job initialization!
HTML-formular-example:
<form action="" method="post" target="Datenimport">
<input name="action" type="text" value="init">
<input name="name" type="text" value="optional">
<input name="customer_header" type="text" value="true">
<input name="shop_header" type="text" value="true">
<input name="configuration" type="file">
<input name="customer" type="file">
<input name="shop" type="file">
<input name="map_type" type="text" value="navimap_with_one_route">
</form>
Define your own batch-job-name
When you create a batch-job there is automatically created a request-Id for internal use for the system. Each batch job can be addressed by these request-Id.
?requestId=<1234567890123456789012345>
Additional it is possible to generate a user-defined name. The name must be CLEARLY for all given batch jobs of a user.
If the parameter "name" is used, you can continue to work after a successful batch-job generation, with this name.
<input name="jobname" type="text" value="optional">
Define the data structure
If in the first line from the CSV file the header field names are parameters, they must be defined by following parameter. (false = default).
customer_header=true
shop_header=true
If these field names correspond to locr field names "id, country, city, street, postal, house", so theses will be automatically to assign the fields.
If the first line of the address file does not correspond to field names or those of locr default, the fields must be separately allocated in the correct order and separated by a comma! This is done by the parameters:
customer_columns=""
shop_columns=""
HTML-formular-example:
<form action="" method="post" target="Datenimport">
<input name=" action " type="text" value="init">
<input name="customer_header" type="text" value="false">
<input name="customer_columns" type="text" value="id,county,city,postal,street,house">
<input name="shop_header" type="text" value="false">
<input name="shop_columns" type="text" value="id,,county,,city,,postal,street,house">
<textarea name="customer">...</textarea>
<textarea name="shop">...</textarea>
<input name="map_type" type="text" value="navimap_with_one_route">
</form>
Comment:
<input name="shop_columns" type="text" value="id,,county,,city,,postal,street,house">
Field1 = id
Field2 = -
Field3 = country
Field4 = -
Field5 = city
Field6 = -
Field7 = postal
Field8 = street
Field9 = house
Define the map type
There are two different map the LOCALmaps and the NAVImaps:
<input name="map_type" type="text" value="navimaps">
Parameter:
localmaps
navimaps
localmaps_with_locations
Define a country for the address-lists
It is possible to define the country internally of an address list. If all the addresses are from one county, you can define them by extra parameter.
default_customer_country
default_shop_country
<input name="default_customer_country" type="text" value="DE">
<input name="default_shop_country" type="text" value="DE">
Countries must be defined by the standard ISO 3166-1 ALPHA-2 or ISO 3166-1 ALPHA-3 code.
http://en.wikipedia.org/wiki/ISO_3166-1
Minimum requirements for GEOcoding
To make geocoding for an address list the fields of the country and the city must be defined, these are the minimal information to get an results.
To obtain the most accurate positioning, all 5 fields COUNTRY, CITY, POSTAL, STREET, NUMBER are specified!
Addresses existing GEOcoding
If the addresses are already geocoded, that means that for all addresses the latitude/longitude values are in a list are available, it can be imported by the parameters:
latitude
longitude
Use this parameter additional in the variables customer_columns/shop_columns.
<input name="customer_columns" type="text" value="id,latitude,longitude">
<input name="shop_columns" type="text" value="id,,county,,city,,postal,street,house,latitude,longitude">
Example return by an successful generation and import
If the import worked, you get an XML with the number of records and a requestId back.
<?xml version="1.0" encoding="utf-8"?>
<BatchProcessing>
<Response>
<MetaInfo>
<RequestId>4fec2eb23a16880b77000000</RequestId>
<Name>jobname</Name>
<Created>2012-06-01 12:00:00</Created>
</MetaInfo>
<Status>submitted</Status>
<Geocoding>
<Customers>
<TotalCount>1</TotalCount>
<ProcessedCount>0</ProcessedCount>
<ValidCount>0</ValidCount>
<InvalidCount>0</InvalidCount>
</Customers>
<Shops>
<TotalCount>1</TotalCount>
<ProcessedCount>0</ProcessedCount>
<ValidCount>0</ValidCount>
<InvalidCount>0</InvalidCount>
</Shops>
</Geocoding>
<Routing>
<TotalCount>0</TotalCount>
<ProcessedCount>0</ProcessedCount>
<ValidCount>0</ValidCount>
<InvalidCount>0</InvalidCount>
</Routing>
<Maps>
<TotalCount>1</TotalCount>
<ProcessedCount>0</ProcessedCount>
<ValidCount>0</ValidCount>
<Invalid>0</Invalid>
</Maps>
</Response>
</BatchProcessing>
Return by incorrect import
<?xml version="1.0" encoding="utf-8"?>
<Error type="PermissionError" subtype="ContractViolated">
<Details>permanently prohibited</Details>
</Error>