Import von Adressbucheinträgen

◄ Zurück zu Weiteres Beispiel für Zuordnungskriterien


Arbeitsschritte auf dieser Seite:


Dieses Beispiel setzt Zugriff auf die Lobster_data-Installation, auf der Lobster Data Platform / Orchestration betrieben wird, ebenso voraus wie Grundkenntnisse in der Bedienung von Lobster_data (Profile anlegen).


Zum Abschluss des Tutorials kann die folgende Aufgabenstellung ausgeführt werden, um das Zusammenspiel zwischen Lobster_data und Lobster Data Platform / Orchestration kennenzulernen (s. a. Integration Lobster_data).

Konkret soll eine im CSV-Format vorliegende Liste von Adressen in Lobster Data Platform / Orchestration importiert werden, um einem bestehenden Adressbuch neue Adressbucheinträge hinzuzufügen oder bestehende zu aktualisieren.

Vorbereitungen für den Import

CSV-Datei anlegen

Die zu importierenden Daten sollen im CSV-Format als Datei vorliegen. Als Trennzeichen zwischen Spalten wird der Strichpunkt (";") erwartet. Folgende Spalten sollen je Zeile befüllt sein:

  • ADNR → eine Kennziffer für die Adresse, die beim Import in das Feld "Kontonummer" (accNumber) der Adresse übernommen wird.
    WICHTIG◄ Über diese Kennziffer soll festgestellt werden, ob bereits ein Adressbucheintrag für eine Adresse besteht, den der Import aktualisieren soll. Sie sollte also innerhalb der Liste eindeutig sein!

  • NAME1 → der Text für das primäre Namensfeld "Name 1" (name1) der Adresse

  • STR → der Text für das Feld "Straße 1" (street1) der Adresse

  • NR → der Text für das Feld "Hausnummer" (streetNo) der Adresse

  • CC → der Text für das Feld "Länder-Kz" (countryCode) der Adresse (s. Dynamische Aufzählung Land)

  • ZIP → der Text für das Feld "Postleitzahl" (zipcode) der Adresse

  • PLACE → der Text für das Feld "Stadt" (city) der Adresse

Die folgenden Beispieldaten können verwendet werden, um eine entsprechende Datei zu erzeugen. Natürlich kann eine Datei mit derselben Struktur auch mit eigenen Daten vorbereitet werden.

ADNR;NAME1;STR;NR;CC;ZIP;PLACE
1234;Duck, D.;Waltstr.;23;DE;26725;Emden-Hausen
1252;Oliver, Roy;Burbank-Platz;71;DE;88316;Isny
1860;Torpodofaktur KG;Blauweisswalder Str.;186;DE;81060;Giesing
1968;SpringTimers sro;U Vesna;218;CZ;19068;Praha
1999;Rogers, N.;Tafkap Drive;1958;US;55488;Minneapolis (MN)

Bereiten Sie aus diesen Daten oder nach diesem Vorbild eine CSV-Datei für den Import vor und speichern Sie sie in einem lokalen Verzeichnis unter dem Namen VIP_ADDR.csv!


Adressbuch erstellen

Als Ziel für den Adressimport soll ein eigenständiges Adressbuch eingerichtet werden.

Über den Menüpfad Verwaltung / Stammdaten / Adressbücher gelangen sie zur Übersicht für Adressbücher. Legen Sie ein neues Adressbuch mit Name "Empfänger" an und weisen sie diesem die im Bild ersichtlichen Typen (s. Firmentyp) zu:

images/download/attachments/62856514/image2020-11-19_18-23-15-version-1-modificationdate-1605806597852-api-v2.png

Dem neu angelegten Adressbuch beim Speichern eine eindeutige interne ID (id) zugewiesen. Diese ganzzahlige Kennung wird in späteren Schritten verwendet, um das Adressbuch zu identifizieren.

HINWEIS◄ Das Bild für die Spalte "ID" den Wert 105. Verwenden Sie den davon abweichenden ID-Wert Ihres Adressbuchs, wenn dieser Wert in den folgenden Schritten verwendet wird!

Import-Profil erstellen

Für den Import der Adressbucheinträge muss in Lobster_data ein neues Profil angelegt und dann wie in den folgenden Abschnitt beschrieben konfiguriert werden.

Basis-Daten

Parametrieren Sie den Reiter "Basis-Daten" des neuen Profils wie folgt:

  • Name → ein "sprechender" Name für die Aufgabe des Profils z. B. "ADDR_IMPORT_CNE" ("CNE" ist das interne Kürzel für den Firmentyp "Empfänger", s. Firmentyp)

  • Dokumentenart → CSV

images/download/attachments/62856514/image2020-11-19_18-27-28-version-1-modificationdate-1605806850793-api-v2.png

Phase 1: Eingangsagent

Wählen Sie aus der Kategorie "Eventgesteuert" den Eingangsagenten Manu. Hochladen aus.

images/download/attachments/62856514/image2020-11-18_16-3-23-version-1-modificationdate-1605711805370-api-v2.png

Phase 2: Parser

Für den Parser können die abgebildeten Standardeinstellungen bis auf eine Ausnahme übernommen werden:

  • Der Wert für Beginne bei Zeile sollte von 1 auf 2 erhöht werden, da die CSV-Datei Spaltennamen in der ersten Zeile beinhaltet, die natürlich nicht als Adressdaten gelesen werden sollen.

images/download/attachments/62856514/image2020-11-18_16-13-4-version-1-modificationdate-1605712386873-api-v2.png

Phase 3: Mapping (Quellstruktur)

Die Quellstruktur für das Mapping in Phase 3 kann über die Funktion Struktur aus Datei-Analyse erzeugen weitgehend automatisch erstellt werden, indem die Datei "VIP_ADDR.csv" importiert und ausgewertet wird:

images/download/attachments/62856514/image2020-11-18_16-17-51-version-1-modificationdate-1605712673604-api-v2.png

Die Funktion wird über das Menü unterhalb des Bereichs für die Quellstruktur aufgerufen. Sie ermöglicht den "Import" der lokal gespeicherten Datei über einen Dateibrowser oder per Drag & Drop.

Für die im Zuge der Datei-Analyse wählbaren Parameter im Dialog Datei analysieren können die Standardeinstellungen beibehalten werden:

images/download/attachments/62856514/image2020-11-18_16-20-10-version-1-modificationdate-1605712812927-api-v2.png

  • Der Wert 1 für Zeile(n) bewirkt hier, dass im Unterschied zur Parser-Konfiguration (s. o.) die erste Zeile verarbeitet werden soll, um die Spaltennamen als Feldnamen zu interpretieren.

  • Mit den Optionen Als neue Testdatei hinzufügen und Testdaten laden und anzeigen gesetzt sind, steht die Datei für Tests zur Verfügung.

Die Datei-Analyse ergibt mit den Beispieldaten folgende Quellstruktur (inkl. der Anzeige von Test-Daten und Datentyp):

images/download/attachments/62856514/image2020-11-18_16-26-31-version-1-modificationdate-1605713194041-api-v2.png

  • Der Knoten Row1 wurde automatisch eingefügt, um die Felder zusammenzufassen.

  • Für diesen Knoten ist als Satzarterkennung "Ist nicht: _____ nothing _____" festgelegt. Es werden also alle Zeilen der Datei als "Zeile" mit den gegebenen Feldern ausgewertet.

Phase 3: Mapping (Zielstruktur)

Vorlagen importieren

Die Zielstruktur muss passend für den geplanten Import aufgebaut werden. Dabei kommen in zwei Schritten Lobster_pro Vorlagen zum Einsatz:

  • Da ein Batch-Import ausgeführt werden soll, muss zunächst die Vorlage core:BatchImport in die Zielstruktur geladen werden.

    images/download/attachments/62856514/image2020-11-18_16-43-12-version-1-modificationdate-1605714194910-api-v2.png
  • Danach muss in den batch-Knoten der so erzeugten Zielstruktur noch die Vorlage base:AddressBookEntry mit der Option Struktur als Unterknoten einfügen geladen werden:

    images/download/attachments/62856514/image2020-11-18_16-44-35-version-1-modificationdate-1605714277836-api-v2.png

Einstellungen für den "BatchImport":

In der "Kopfebene" der BatchImport-Struktur muss im Feld trx_Control_attr die gewünschte Option für die Transaktionssteuerung (SINGLE oder BATCH) gewählt werden:

images/download/attachments/62856514/image2020-11-18_16-53-17-version-1-modificationdate-1605714799298-api-v2.png

  • Mit der per Fixwert im Feld ausgewählten Option BATCH wird der Import aller Zeile insgesamt als Transaktion behandelt. Der Import ist dann entweder für alle "Zeilen" erfolgreich oder scheitert komplett.

  • Mit der alternativen Option SINGLE würde jede importierte Zeile als unabhängige Transaktion behandelt, die jeweils erfolgreich importiert werden kann oder nicht.

Im batch-Knoten wird die in der Schleife für alle importierten Zeilen wiederholte Import-Aktion definiert:

images/download/attachments/62856514/image2020-11-18_17-3-41-version-1-modificationdate-1605715424020-api-v2.png

  • Im Feld action_attr wird hier als Fixwert CREATE_OR_UPDATE zugewiesen, da nur neue Adressbucheinträge entstehen sollen, wenn kein "passender" für eine Aktualisierung gefunden wird.

  • Alternative Optionen wären hier CREATE (nur neue hinzufügen), UPDATE (nur vorhandene aktualisieren) und DELETE (vorhandene löschen).

  • Der Knoten eventStorage wird nicht benötigt. Er kann gelöscht oder inaktiv gesetzt werden (s. o.).

Weitere Details sind für den Single-Import dokumentiert, der einer einzelnen Wiederholung des batch-Knotens entspricht.

WICHTIG◄ Damit der batch-Knoten überhaupt für jede importierte Zeile wiederholt wird, muss dieser sich über einen Pfad auf den Knoten Row1 in der Zielstruktur beziehen.

  • Um diesem Pfad zu setzen, kann man entweder per drag & drop den Eingangsknoten auf den Zielknoten ziehen oder den Quellknoten im Feld Pfad in den Eigenschaften für Zielfeld/knoten angeben (im Bild gelb schattiert).

images/download/attachments/62856514/image2021-12-13_14-1-1-version-1-modificationdate-1639400461909-api-v2.png

Suche nach "bekannten" Adressbucheinträgen definieren

Für den Import mit der Aktion CREATE_OR_UPDATE soll der search-Unterknoten werden, um eine Suche zu definieren, die für jede Quelldaten-Zeile prüft, ob ein eindeutiges Ziel für ein UPDATE identifiziert werden kann, oder per CREATE ein neuer Adressbucheintrag anzulegen ist.

Im konkreten Anwendungsfall sollen dazu folgende Kriterien untersucht werden:

  1. Die als ADNR gelesene Kennung soll exakt gleich dem Wert des Adressfelds "Kontonummer" (address.accNumber) im Adressbucheintrag sein.

  2. Der Adressbucheintrag soll in dem Adressbuch enthalten sein, das oben angelegt wurde. Dann erscheint dessen interne ID (im Beispiel: 105) im Feld addressBookId des Adressbucheintrags.

Die entsprechende Suche kann mit dem Abfragekonfigurator bequem aufgebaut und getestet werden, der in Lobster Data Platform / Orchestration über den Menüpfad Verwaltung / System / Abfragekonfigurator gestartet wird.

Als Gegenstand der Suche wird die Entität "Adressbucheintrag" ausgewählt.



  • Die erste Einfache Feld Einschränkung schränkt die Suche hier auf das relevante Ziel-Adressbuch ein. Hier muss für den Long Wert anstelle des Werts 105 die ID des Adressbuchs angegeben werden, das vorher Ihrem System angelegt wurde.


  • Die zweite Einfache Feld Einschränkung schränkt die Suche weiter ein (aufgrund der UND-Verknüpfung innerhalb des vordefinierten Adressbuchs), indem das Adressfeld "Kontonummer" verglichen wird. Der als Vergleichswert eingetragene Long Wert 1234 dient hier nur als Platzhalter. Im Profil muss hier im Mapping eine Referenz auf das Quellfeld ADNR verwendet werden. Sofern Ihr Ziel-Adressbuch bereits Einträge enthält, können Sie hier zum Test die "Kontonummer" eines bestehenden Eintrags verwenden.

images/download/attachments/62856514/image2020-11-19_11-10-22-version-1-modificationdate-1605780623809-api-v2.png

Wenn die Suche wie beschrieben aufgebaut und per "Ausführen" (im Ribbon) erfolgreich getestet ist, kann ihre Definition in das Lobster_data-Profil übernommen werden:

  • Der Reiter XML im Abfragekonfigurator zeigt die interne Definition der mit dem grafischen Editor aufgebauten Abfrage als XML-Struktur an.


  • Für den search-Knoten innerhalb der Zielstruktur des Importprofils ist nur der Inhalt des core:Search-Elements relevant. Auf den storage-Knoten kann dabei verzichtet werden, so dass nur die UND-Verknüpfung mit den enthaltenen Einschränkungen (s. Bedingung im Editor) benötigt wird.


  • Dieser Abschnitt kann wie im Screenshot dargestellt selektiert und über die Zwischenablage des Betriebssystems kopiert werden, um diese Definitionen in der Zielstruktur unterhalb des search-Knotens einzufügen.

HINWEIS◄ Es ist alternativ auch möglich, dort dieselbe Struktur über das Einfügen von Lobster_pro Vorlagen für die enthaltenen Strukturen (core:SearchJunction, core:SimplePropertySearch) "nachzubauen" und entsprechend zu parametrieren. Allerdings ist diese Methode zumindest für etwas komplexere Suchen mit Sicherheit zeitaufwändiger und schwieriger fehlerfrei durchzuführen als das Kopieren und Einfügen über die Zwischenablage.

images/download/attachments/62856514/image2020-11-19_14-38-36-version-1-modificationdate-1605793118174-api-v2.png

Zum Einfügen in die Zielstruktur des Lobster_data-Profils sollte dort der search-Knoten selektiert sein. Dann wird die Funktion Lobster_pro Vorlagen aus dem Menü für die Zielstruktur gewählt.

WICHTIG◄ Im daraufhin geöffneten Dialog muss die Option Struktur als Unterknoten einfügen ausgewählt werden. Der Konten search sollte aufgrund der Selektion in der Zielstruktur bereits ausgewählt sein.

  • Anders als beim Einfügen einer Vorlage wird hier keine Entität ausgewählt, sondern die kopierte XML-Struktur aus der Zwischenablage in das Feld Xml/Json in statische Struktur eingefügt.


  • Per Klick auf Anwenden wird die entsprechende Struktur unterhalb des search-Knotens aufgebaut.

images/download/attachments/62856514/image2020-11-19_14-41-13-version-1-modificationdate-1605793275522-api-v2.png

Nun muss noch die Verknüpfung vom Quellfeld ADNR zum Vergleichswert für das "Kontonummer"-Feld innerhalb der zweiten "Einfachen Feldeinschränkung" (PropertyProjection) hergestellt werden.

  • Nachdem - wie im Bild zu sehen - das Quellfeld (1) und das Zielfeld (2) selektiert wurden, muss dazu lediglich auf den Button (3) zum Verknüpfen geklickt werden.

HINWEIS◄ Alternativ kann die Verknüpfung auch per Drag & Drop vom Quellfeld (1) zum Zielfeld (2) hergestellt werden.


  • Abschließend muss noch der aus der Zwischenablage übernommene Fixwert (4) für das Zielfeld (2) gelöscht werden, der sonst zur Laufzeit die Zuordnung übersteuert.

HINWEIS◄ Erst wenn dieser entfernt ist und das Eigenschaftenfeld Fixwert wieder verlassen wurde verschwindet das "Schloss"-Symbol für das betreffende Feld und der Wert (1234) in der Spalte Fixwert (soweit eingeblendet).

images/download/attachments/62856514/image2020-11-19_14-49-42-version-1-modificationdate-1605793784280-api-v2.png

Mapping für die Adressdaten

Abschließend muss noch das "Mapping", also die Zuordnung zwischen Quell- und Zielfelder für die eigentlichen Nutzdaten, eingerichtet werden. Dies kann wie im vorigen Schritt durch Selektieren und Verknüpfen oder per Drag & Drop erreicht werden.

  • Das Quellfeld ADNR soll mit dem Zielfeld accNumber_attr verknüpft werden (siehe Selektion im Bild)


  • Die weiteren Verknüpfungen sind anhand der Beschriftungen selbsterklärend. Im Bild rechts erscheinen die "zugeordneten" Felder jeweils mit einem grünen Punkt. Die Feldreihenfolge rechts entspricht dabei der Abfolge der Felder abwärts von NAME1 links.


  • Zusätzlich muss für das Zielfeld addressBookId noch die interne ID des Adressbuchs als Fixwert angegeben werden, auf das sich der Import beziehen soll (hier: 105; verwenden Sie Ihre Adressbuch-ID).

images/download/attachments/62856514/image2020-11-19_15-8-16-version-1-modificationdate-1605794898642-api-v2.png

Phase 5: Integration Unit

Für die Aufbereitung der Zielstruktur muss in Phase 5 die Option Integration Unit & Nachbehandlung benutzen aktiviert werden, damit eine Integration Unit ausgewählt werden kann.

Da für den Import in Lobster Data Platform / Orchestration eine XML-Struktur erwartet wird, muss hier die XMLNoTemplateUnit zum Erzeugen ausgewählt werden.

  • Die Standardwerte der Konfiguration können hier beibehalten werden, nur der Root node name muss auf den relevanten "Wurzelknoten" in der Zielstruktur verweisen. Das ist hier der Knoten "BatchImport".

images/download/attachments/62856514/image2020-11-19_15-18-35-version-1-modificationdate-1605795517194-api-v2.png

Phase 6: Antwortweg

Die Minimalkonfiguration für die Phase 6 ist ein Antwortweg vom Typ "Eigene Klasse", für den die Klasse ImportResponder (_data-Responder) ausgewählt wird.

Kopiert, ...

<base:LobsterDataLoginRequest [...] userName="admin" selectedRole="101" selectedCompany="51" ... />

... ergänzt:

<base:LobsterDataLoginRequest xmlns:base="SCM.BASE" [...] userName="admin" selectedRole="101" selectedCompany="51" ... />

images/download/attachments/62856514/image2020-11-19_17-32-9-version-1-modificationdate-1605803532145-api-v2.png

Im zweiten Reiter Inhalts-Einstellungen muss für den Inhalt die Option "Ausgabe von IU" ausgewählt werden, damit das BatchImport-XML aus Phase 5 an den Responder übergeben wird.

  • Anschließend muss die Konfiguration für den Antwortweg per Antwortweg übernehmen übernommen werden, bevor das Profil insgesamt gespeichert wird.

images/download/attachments/62856514/image2020-11-19_16-57-36-version-1-modificationdate-1605801458517-api-v2.png

Import-Profil ausführen

Das Profil kann nun per "Neudurchlauf" mit der Datei "VIP_ADDR.csv" ausgeführt werden, um die enthaltenen Adressen zu importieren.

Wird dieser Vorgang mit einer überarbeiteten Version der Datei oder einer identisch strukturierten Datei mit anderen Daten wiederholt, sollten "bekannte" Adressbucheinträge aktualisiert und nur "neue" ergänzt werden.