Import

Der Import in mercaware kann nicht wie der Export als Datenbank-Operationen durchgeführt werden, da mercaware umfangreiche Formulare besitzt, die erweiterte Funktionen bereitstellen (beispielsweise das Ermitteln des Preises aus Menge und Artikelpreis in einer Bestellung).
Deshalb werden die Importe über die Masken von mercaware automatisiert durchgeführt. Dazu wird eine spezielle Schnittstelle genutzt, der die Kommandos übergeben werden können (Maskenwechsel, Button-Klicks, Felder ausfüllen, etc.).

Diese Aktionen geschehen allerdings automatisch im Hintergrund. Der Import erwartet lediglich XML-Dateien in einem ungefähr vorgegebenen Format, deren Inhalt anhand von Regeln in die korrekten Felder auf den Masken von mercaware gefüllt wird.

Die Masken von mercaware stellen wiederum zunächst die Möglichkeit bereit, verschiedene Systeme (mit unterschiedlichen Feldern und Dateinamen) einzurichten (Maske xmlimport).
Im folgenden werden analog zum XML den verschiedenen XML-Tags und deren Attributen über die Masken die korrekten Masken- und Feldnamen eingetragen.

Dabei sieht das XML für den Import von neuen Aufträgen in die Maske ATRK beispielsweise so aus (Datei magento-1328622659.xml):

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<import>
        // Create-Sektionen ensprechen neuen Datensätzen, das target-Attribut bestimmt die Zielmaske
        <create target="orders">
                // Jeder einzelne Datensatz ist stets in ein item als Gruppierung verpackt
                <item>
                        // Das Feld debitor auf der oben angegebenen Maske muss mit dem Wert 10428 befüllt werden
                        <debitor>10428</debitor>
                        // Der Auftrag enthält auch Auftragspositionen, die allerdings in einer anderen Tabelle landen
                        <create target="order positions">
                                <item>
                                        // Die Felder Artikel-Nummer und Menge müssen befüllt werden
                                        <article>2002</article>
                                        <quantity>17</quantity>
                                </item>
                                <item>
                                        <article>2000</article>
                                        <quantity>5</quantity>
                                </item>
                        </create>
                </item>
                <item>
                        <debitor>10427</debitor>
                        <create field="positions" target="order positions">
                                <item>
                                        <article>2015</article>
                                        <quantity>19</quantity>
                                </item>
                                <item>
                                        <article>2012</article>
                                        <quantity>9</quantity>
                                </item>
                        </create>
                </item>
        </create>
</import>

Hiermit sind nun zwei neue Aufträge erzeugt worden. Die Bezeichnungen für Masken und Felder (order positions, article, etc.) entsprechen Zuordnungen, die in mercaware eingerichtet sind (siehe Screenshots).

Wenn das PHP-Programm nun diese Datei einliest, ist der Ablauf im Hintergrund folgendermaßen:

  • Verbindung zu Mercaware wird hergestellt.
  • Verschiedene andere Dateien werden verworfen.
  • Die Datei „magento-1328622659.xml“ wird geöffnet und das XML geparst.
  • Zur Maske „/MENUVERK/ATRK“ (orders) springen.
  • Die Maske wird geleert.
  • Feld „DEBNR_ATRK_ATRK“ (debitor) mit Wert „10428“ befüllen.
  • Button „Einfügen“ betätigen.
  • Auf dem Feld „SUBMASK1_ATRK“ in die Submaske „/MENUVERK/ATRK/ATRP“ (order positions) wechseln.
  • Die Maske wird geleert.
  • Feld „VNR_ATRP_ATRP“ (article) mit Wert „2002“ befüllen.
  • Feld „ANZ_ATRP_ATRP“ (quantity) mit Wert „17“ befüllen.
  • Button „Einfügen“ betätigen.
  • Die Maske wird geleert.
  • Feld „VNR_ATRP_ATRP“ (article) mit Wert „2000“ befüllen.
  • Feld „ANZ_ATRP_ATRP“ (quantity) mit Wert „5“ befüllen.
  • Button „Einfügen“ betätigen.
  • Eine Maske zurückwechseln.
  • Die Maske wird geleert.
  • Feld „DEBNR_ATRK_ATRK“ (debitor) mit Wert „10427“ befüllen.
  • Button „Einfügen“ betätigen.
  • Auf dem Feld „SUBMASK1_ATRK“ in die Submaske „/MENUVERK/ATRK/ATRP“ (order positions) wechseln.
  • Die Maske wird geleert.
  • Feld „VNR_ATRP_ATRP“ (article) mit Wert „2015“ befüllen.
  • Feld „ANZ_ATRP_ATRP“ (quantity) mit Wert „19“ befüllen.
  • Button „Einfügen“ betätigen.
  • Die Maske wird geleert.
  • Feld „VNR_ATRP_ATRP“ (article) mit Wert „2012“ befüllen.
  • Feld „ANZ_ATRP_ATRP“ (quantity) mit Wert „9“ befüllen.
  • Button „Einfügen“ betätigen.
  • Eine Maske zurückwechseln.
  • Eine Maske zurückwechseln.
  • Die Verbindung zu Mercaware wird getrennt

Außer der Sektion create gibt es auch noch die Sektionen update und delete. Diese können Einträge verändern und löschen. Dazu wird auf der Maske statt der Leerung (wie oben) eine Suche nach dem korrekten Datensatz durchgeführt.

Dazu sieht das XML in diesem Fällen leicht anders aus:

<update target="order positions">
        <item article="2000" vktyp="16800">
                <quantity>4</quantity>
        </item>
</update>

Die Attribute des item-Tags beziehen sich dabei auf die Felder, die bei der Suche ausgefüllt werden, um einen Datensatz zu finden, und stellen die Werte dar, die der entsprechende Datensatz für diese Felder besitzt.
Eine Besonderheit stellt hierbei das Attribut vktyp dar, das auf das mercaware-Feld VTYP_ATRP_ATRP zeigt. Dieses Feld ist ein Dropdown verschiedener Werte, die 16800 sind hierbei der Code eines Sprachstrings.

mod_xmlimexport/import.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: