Batch-Job anlegen / Datenimport

Batch Job anlegen

Zum 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="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>

Benennung eines Batch-Jobs

Beim 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">

Feld1 = id

Feld2 = -

Feld3 = country

Feld4 = -

Feld5 = city

Feld6 = -

Feld7 = postal

Feld8 = street

Feld9 = house

Angabe des Karten-Typs

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">

Parameter:

    • localmaps

    • navimaps

    • localmaps_with_locations

Vorgabe des Landes

Wenn 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.

http://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste

Mindestvorgaben für GEO-Kodierung

Um 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-Kodierung

Wenn 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

      • latitude

      • longitude

in den Variablen customer_columns, shop_colums definiert werden.

<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">

Rückgabe bei erfolgreichem Import

Wenn 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>