Batch Job anlegenZum Anlegen eines Batch-Jobs werden zuerst die zu verarbeitenden Daten hochgeladen. Dazu schickt man ein POST-Request mit dem enctype "multipart/form-data" an folgende Adresse: https://maps1.locr.com/batch-processing/job_v2.php?action=init- Die CSV-Daten müssen dabei als Datei in den POST-Parametern "customer" bzw. "shop" hochgeladen werden. Alle für diesen Batch-Job benötigten Adressdaten, müssen beim Anlegen des Jobs hochgeladen werden!
HTML-Formular Beispiel:
<form action="" method="post" target="Datenimport">
<input name="a ction " 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>
Benennung eines Batch-JobsBeim Anlegen eine Batch-Jobs wird eine interne Request-Id erzeugt, mit das System arbeitet. Jeder Batch-Job kann über diese Request-Id angesprochen werden. ?requestId=<1234567890123456789012345>
Es kann aber auch zusätzlich ein selbst definierte Name für eine Batch-Job angegeben werden, dieser muss EINDEUTIG über alle Batch-Jobs eines Benutzers sein! Wird der Parameter "name" mit angegeben, so kann man nach erfolgreicher Batch-Job Anlegung mit diesem Namen weiterarbeiten.
<input name="name" type="text" value="optional">
Definition der Daten- Wenn in der 1. Zeile der CSV-Datei eine Kopfzeile für Feldbezeichner Parametern angegeben werden. (false = default)
customer_header=true
shop_ header=true Entsprechen diese Feldnamen, den von locr vorgegeben Namen "id, country, city, postal, street, house ", so werden die Felder automatisch zugeordnet.
- Sind in der ersten Zeile der Adressdatei keine Feldbezeichner oder entsprechen diese nicht der locr Vorgabe, so müssen die Felder separat, in der richtigen Reihenfolge und durch Komma getrennt, zugeordnet werden! Dies geschieht durch die Parameter
customer_columns="" shop_columns=""
HTML-Formular Beispiel:
<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>
Erläuterung: <input name="shop_columns" type="text" value="id,,county,,city,,postal,street,house">
Es gibt 2 Arten von Karten die LOCALmaps und die NAVImaps, diese können ein oder max. 5 Ziele haben:
<input name="map_type" type="text" value="navimaps">
- localmaps
- navimaps
- localmaps_with_locations
Vorgabe des LandesWenn die gesamten Adressen einer Liste aus einem Land kommen, kann man dies mit den folgenden Parametern für die Listen festlegen:
- default_customer_country
- default_shop_country
<input name="default_customer_country" type="text" value="DE">
<input name="default_shop_country" type="text" value="DE">
Länder müssen nach der Norm ISO 3166 ALPHA-2 oder ISO 3166 ALPHA 3 angegeben werden.
Mindestvorgaben für GEO-KodierungUm eine GEO-Kodierung zu ermöglichen, müssen wenigstens die Felder für das Land und Stadt angegeben werden, wobei diese minimal Angaben zu ungenauen Ergebnissen führen werden.
Um eine möglichst genaue Positionierung zu erhalten, sollten alle 5 Felder LAND,STADT,PLZ,STRASSE,HAUSNUMMER angegeben werden!
Adressen mit vorhandener GEO-KodierungWenn die Adressen schon GEO-kodiert sind, also für alle Adressen die Werte für Latitude/Longitude in einer Liste vorhanden sind, kann dies mit den Parametern
in den Variablen customer_columns, shop_colums definiert werden.
<input name="customer_columns" type="text" value="id,latitude,longitude">
<input name="shop_columns" type="te xt" value="id,,county,,city,,postal,street,house,latitude,longitude">
Rückgabe bei erfolgreichem ImportWenn
der Import funktioniert hat, so bekommt man eine XML mit der Anzahl der
Datensätze und eine RequestId zurück, mit der weitergearbeitet wird.
Beispielrückgabe beim Import:
<?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>
Rückgabe bei fehlerhaften Import<?xml version="1.0" encoding="utf-8"?>
<Error type="PermissionError" subtype="ContractViolated">
<Details>permanently prohibited</Details>
</Error>
|