BATCH-Jobs‎ > ‎

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.

    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>


    Comments