Aufbau der XML-Datei
Für die einfache Validierung eines Auftragsimportes in Form einer XML Datei stellen wir Ihnen gerne ein Schema bereit. Dieses Schema deckt die grundlegend erforderlichen Informationen der XML Datei ab. Diese kann jedoch nach belieben erweitert werden. Dabei können alle Tabellenfelder aus der Tabelle tbestellung in Form von Tags, bzw. deren Namen, direkt gefüllt werden
Tags
Header
Die XML Datei muss mit dieser Kopfinformation beginnen.
<?xml version="1.0" encoding="ISO-8859-1"?>
Die Datei muss in Latin-1 codiert sein, damit die Daten richtig in Datenbank übernommen werden und die Wawi das korrekt darstellen kann.
tBestellungen
Unter der Header - Zeile befindet sich der Tag <tBestellungen>, welcher beliebig viele Bestellungen zum Import bereitstellen kann.
<?xml version="1.0" encoding="ISO-8859-1"?>
<tBestellungen>
<tBestellung>
</tBestellung>
<tBestellung>
</tBestellung>
<tBestellung>
</tBestellung>
<tBestellung>
</tBestellung>
</tBestellungen>
tBestellung
Der Tag <tBestellung> enthält alle Tags die für den Import einer Bestellung verwendet werden. Zusätzlich stellt er Attribute bereit, über welchen der Import individuell gesteuert werden kann. Zum Beispiel kann hier definiert werden, ob ein Lieferschein erstellt oder gedruckt werden soll.
Attribute
Folgende Attribute müssen/können im Tag <tBestellung> für den Import angegeben werden:
<xs:attribute name="nRechnungErstellen" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="nRechnungDrucken" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="kRechnungsFormular" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="nLieferscheinErstellen" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="nLieferscheinDrucken" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="kLieferscheinFormular" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="nAuftragDrucken" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="kAuftragsFormular" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="kFirma" type`"xs:unsignedLong" use="optional" />
<xs:attribute name="tKunde_kKunde" type`"xs:unsignedLong" use="optional" />
- nRechnungErstellen: Gibt an ob eine Rechnung zum importierten Auftrag erstellt werden soll.
- nRechnungDrucken: Gibt an ob die erstelle Rechnung gedruckt werden soll (Erfordert: nRechnungErstellen = "1")
- kRechnungsFormular: Gibt die Druckvorlage zum Druck der Rechnung an (Tabelle: tFormular Feld: kFormular vom nTyp = 2)
- nLieferscheinErstellen: Gibt an ob ein Lieferschein zum importieren Auftrag erstellt werden soll.->Achtung: Detailinformationen dazu werden unter den Auftragspositionen angegeben.
- nLieferscheinDrucken: Gibt an ob der erstellte Lieferschein gedruckt werden soll. (Erfordert: nLieferscheinErstellen = "1")
- kLieferscheinFormular: Gibt die Druckvorlage zum Druck des Lieferscheins an (Tabelle: tFormular Feld: kFormular vom nTyp = 3)
- nAuftragDrucken: Gibt an ob der erstellte Lieferschein gedruckt werden soll.
- kAuftragsFormular: Gibt die Druckvorlage zum Druck des Lieferscheins an (Tabelle: tFormular Feld: kFormular vom nTyp = 1)
- kFirma: Gibt die Firma an, welche zum Auftrag hinterlegt werden soll (Tabelle: tfirma Feld: kFirma)
- tKunde_kKunde: Gibt den Kunden an, für welchen der Auftrag erstellt wird (Tabelle: tkunde Feld: kKunde) ->Achtung: Der Kunde muss in der Datenbank, in welche die XML importiert wird, vorhanden sein.
Tags
Innerhalb des Tags <tBestellung> werden die Informationen zur Bestellung hinterlegt, die übertragen werden sollen.
Dies beinhaltet zum Einen Informationen, die direkt für den Auftrag erforderlich sind und zum Anderen Auflistungen der Positionen und Zahlungen. Des Weiteren werden hier die Lieferadresse und Zahlungsinformationen hinterlegt.
Im Folgenden werden die Tags beschrieben, die unmittelbar in die Erzeugung eines Auftrags einfließen.
<tBestellung nLieferscheinErstellen="1" nLieferscheinDrucken="0" kLieferscheinFormular="4" nRechnungErstellen="1" nRechnungDrucken="0" kRechnungsFormular="3" nAuftragDrucken="0" kAuftragsFormular="2" kFirma="1" tKunde_kKunde="13">
<kSprache>1</kSprache>
<cWaehrung>EUR</cWaehrung>
<cBestellNr>BELEG 123456789</cBestellNr>
<cInetBestellNr><![CDATA[Beleg 4]]></cInetBestellNr>
<tVersandArt_kVersandArt>2</tVersandArt_kVersandArt>
<dVersandt>2012-08-01</dVersandt>
<dLieferdatum>2012-07-13</dLieferdatum>
<cAnmerkung>Anmerkung</cAnmerkung>
<dErstellt>2012-07-16</dErstellt>
<cBeschreibung>K</cBeschreibung>
<kZahlungsArt>2</kZahlungsArt>
<nZahlungsziel>14</nZahlungsziel>
- kSprache: Enthält einen Verweis auf die Sprache des Auftrags (Tabelle: tSprachen Feld: kSprache)
- cWaehrung: Währung wird hier als Text hinterlegt (im Beispiel: 'EUR')
- cBestellNr: Enthält die Bestellnummer. Sie wird automatisch über den Nummernkreis der Wawi ermittelt, sofern hier keine Bestellnummer angegeben wird.
- cInetBestellNr: Enthält eine von der Wawi abweichende Bestellnummer. z.B. die Nummer eines Kassenbons.
- tVersandArt_kVersandArt: Enthält einen Verweis auf die Versandart, mit welcher der Auftrag ausgeliefert wird. (Tabelle: tversandart Feld: kSprache) Versandarten können in den Wawi Statistiken individuell ausgewertet werden. Um importierte Aufträge auszuwerten empfiehlt sich aber die Verwendung einer Erweiterung (siehe unten) um das Tag (z.B. 151 für LS-Pos)
- dVersandt: Enthält das Datum, an welchem die Ware versendet wurde / wird. (Format: yyyy-mm-dd oder yyyy-mm-dd hh:nn:ss)
- dLieferdatum: Enthält das voraussichtliche Lieferdatum (Format: yyyy-mm-dd oder yyyy-mm-dd hh:nn:ss).
- cAnmerkung: Enthält eine Anmerkung zu Auftrag.
- dErstellt: Enthält das Datum der Auftragserstellung. (Format: yyyy-mm-dd oder yyyy-mm-dd hh:nn:ss)
- cBeschreibung: (K)Kurz- oder (L)Langbeschreibung des Artikels beim Druck.
- kZahlungsArt: Enthält einen Verweis auf die Zahlart, mit welcher der Auftrag bezahlt wird. (Tabelle: tZahlungsart Feld: kZahlungsart)
- nZahlungsziel: Das Zahlungsziel in Tagen.
tzahlung
Jeder Auftrag kann über beliebig viele Zahlungen bezahlt werden. Z.B. könnte ein Kunde einen Teil bar und einen anderen Teil per Überweisung bezahlen.
<tzahlung>
<fBetrag>93.11</fBetrag>
<nAnzahlung>0</nAnzahlung>
<kZahlungsart>0</kZahlungsart>
<cZahlungsArtName>Mit Bargeld</cZahlungsArtName>
<cHinweis><![CDATA[POS:BON-9]]></cHinweis>
</tzahlung>
<tzahlung>
<fBetrag>10.00</fBetrag>
<nAnzahlung>0</nAnzahlung>
<kZahlungsart>0</kZahlungsart>
<cZahlungsArtName>Mit Karte</cZahlungsArtName>
<nZahlungstyp>0</nZahlungstyp>
</tzahlung>
Dazu können innerhalb des <tBestellung>-Tags beliebig viele Tags von <tzahlung> enthalten sein.
Folgende Tags müssen innerhalb von <tzahlung> enthalten sein:
- fBetrag: Enthält den Zahlbetrag.
- nAnzahlung: Gibt an ob es sich um eine Anzahlung handelt ("1" = Ja und "0" = Nein).
- kZahlungsart: Enthält einen Verweis auf die Zahlungsart. (Tabelle: tZahlungsart Feld: kZahlungsart) [ Ist die Zahlungsart nicht bekannt, kann hier einfach eine "0" eingetragen werden.]
- cZahlungsArtName: Wird in kZahlungsart "0" hinterlegt, kann hier der Name der gewünschten Zahlungsart hinterlegt werden.
- cHinweis: Hinweis zur Zahlung.
- nZahlungstyp: Zahlung = 0; Mahnung = 1; Skonto=2; Standard ist immer 0 (Zahlung)
Wird keine passende Zahlungsart zum angegebenen Namen gefunden, wird diese automatisch angelegt.
tbestellpos
Jeder Auftrag beinhaltet beliebig viele Positionen, die im Tag <tbestellpos> einzeln definiert werden können. Hier bietet sich zusätzlich die Möglichkeit die Warenlagerausgänge zu einer Positionen anzugeben und somit den zu erstellenden (wenn gewünscht) Lieferschein zu definieren.
<tbestellpos>
<tArtikel_kArtikel>33968</tArtikel_kArtikel>
<cString><![CDATA[CTT_MHD]]></cString>
<cArtNr><![CTT_MHD]]></cArtNr>
<fVKNetto>4.20</fVKNetto>
<fMwSt>19.00</fMwSt>
<nAnzahl>1.00</nAnzahl>
<nType>1</nType>
<fRabatt>7.00</fRabatt>
<fEKNetto>0.0000</fEKNetto>
<tbestelleigenschaft/>
<twarenlagerausgang>
<kArtikel>33968</kArtikel>
<kWarenLagerEingang>415</kWarenLagerEingang>
<kWarenLagerPlatz>1</kWarenLagerPlatz>
<fAnzahl>1.00</fAnzahl>
<kLagerArtikel>0</kLagerArtikel>
</twarenlagerausgang>
</tbestellpos>
Folgende Tags müssen innerhalb eines <tbestellpos>-Tags enthalten sein:
- tArtikel_kArtikel: Beinhaltet einen Verweis auf den gewünschten Artikel und ist "0" bei Frei-Positionen (Tabelle: tartikel Feld: kArtikel).
- cArtNr: Beinhaltet die gewünschte Artikelnummer, die auf der Bestellung gedruckt werden soll (Im Normalfall ).
- fVKNetto: Beinhaltet den Netto-Verkaufspreis (pro Einheit) der Position. Der Brutto-Verkaufspreis ermittelt sich automatisch.
- fMwSt: Beinhaltet die Mehrwertsteuer in % (z.B. '19.00' für 19 % MwSt).
- nAnzahl: Beinhaltet die Menge der Position.
- nType: Beinhaltet den Typ der Position (0 = Freiposition 1 = Artikel 2 = Versand). Freiposition können z.B. von Kassensystem genutzt werden um Freitextpositionen zu erzeugen. Achtung: Hier wird immer Menge und Preis mit 0 gedruckt.
- fRabatt: Beinhaltet einen Rabatt auf die Position (wird automatisch vom VK abgezogen!).
- fEKNetto: Beinhaltet den Netto-Einkaufspreis, sollte für die Statistik gepflegt werden. (Tabelle: tArtikel Feld: fEKNetto)
tbestelleigenschaft
Ein Tag <tbestellpos> kann beliebig viele Tags <tbestelleigenschaft> abbilden. Diese beinhalten jeweils einen Verweis auf eine kEigenschaftwert (entspricht einer Variation) (Tabelle: teigenschaftwert Feld: kEigenschaftWert)
<tbestelleigenschaft>
<kEigenschaftWert>119</kEigenschaftWert>
</tbestelleigenschaft>
<tbestelleigenschaft>
<kEigenschaftWert>117</kEigenschaftWert>
</tbestelleigenschaft>
- kEigenschaftWert: Beinhaltet einen Verweis auf die Eigenschaft eines Variationsartikels, z.B. Größe L oder Farbe gelb.
twarenlagerausgang
Eine Position innerhalb eines Auftrags kann über verschiedene Lieferungen erfüllt werden. Diese werden über die <twarenlagerausgang>-Tags innerhalb des <tbestellpos>-Tags definiert. Wenn nichts ausgebucht werden soll, dann wird das <twarenlagerausgang>/-Tag ausgelassen.
<twarenlagerausgang>
<kArtikel>33963</kArtikel>
<kWarenLagerEingang>0</kWarenLagerEingang>
<kWarenLagerPlatz>1</kWarenLagerPlatz>
<fAnzahl>6.00</fAnzahl>
<kLagerArtikel>0</kLagerArtikel>
</twarenlagerausgang>
<twarenlagerausgang>
<kArtikel>33964</kArtikel>
<kWarenLagerEingang>0</kWarenLagerEingang>
<kWarenLagerPlatz>1</kWarenLagerPlatz>
<fAnzahl>4.00</fAnzahl>
<kLagerArtikel>0</kLagerArtikel>
</twarenlagerausgang>
Folgende Tags müssen innerhalb eines <twarenlagerausgang>-Tags enthalten sein:
kArtikel: Beinhaltet den auszuliefernden Artikel. Bei Stücklisten z.B. werden hier die Komponenten ausgeliefert und mit der tatsächlich ausgebuchten Menge angegeben.
Beispiel: Eine Stückliste als Position mit der Menge 2 mit 2 Komponenten (jeweils 2 Stück in Komponente) ergibt zwei Tags von twarenlagerausgang:
- Artikel Komponente 1 mit Menge 4 (<Menge der Stückliste> (2) * <Anzahl der Komponenten in der Stückliste> (2) = (4))
- Artikel Komponente 2 mit Menge 4 (<Menge der Stückliste> (2) * <Anzahl der Komponenten in der Stückliste> (2) = (4))
kWarenLagerEingang: Chargen- und MHD-Artikel werden immer einem Wareneingang zugeordnet, der den Eingang des Mindesthaltbarkeitsdatums-, bzw. der Charge definiert. Dazu kann der entsprechende Wert aus dem Feld kWarenLagerEingang aus der Tabelle tWarenLagerEingang mit der gewünschten Chargennummer, bzw. dem gewünschten MHD referenziert werden.
Achtung: Ein kWarenLagerEingang bezieht sich auch IMMER auf ein ein kWarenLagerPlatz (Tabelle: tWarenLagerPlatz Feld: kWarenLagerPlatz).
Um zu prüfen, ob noch genügend Bestand auf einem MHD- oder einer Charge liegt, können die kumulierten Mengen in tWarenLagerEingang, denen von tWarenLagerAusgang gegenübergestellt werden.
- kWarenLagerPlatz: Enthält den WarenLagerPlatz, von welchem die Ware geliefert wird. (Tabelle: tWarenLagerPlatz Feld: kWarenLagerPlatz) Das entsprechende WarenLager befindet sich in der Tabelle tWarenlager.
- fAnzahl: Gibt die Anzahl des Warenlagerausgangs an (Bei Seriennummernartikeln z.B. immer 1 pro Seriennummer).
- kLagerArtikel: Bei der Auslieferung von Seriennummern-Artikeln muss der entsprechende Lagerartikel angegeben werden, der die gewünschte Seriennummer enhält.
ACHTUNG: mit dem Tag <twarenlagerausgang> kann man sich ganz schnell die Bestände kaputt machen. Immer mit Vorsicht und Bedacht nutzen. Es ist z.B. nämlich möglich 2 Seriennummern-Artikel auszubuchen aber nur eine Seriennummer, somit bleibt eine Seriennummer zu viel übrig. Bei Seriennummern-Artikel muss immer ein Bestand von 1 angegeben werden. - Hier wird 2 mal die selbe Seriennummer-Artikel richtig ausgebucht
<twarenlagerausgang>
<kArtikel>15</kArtikel>
<kWarenLagerEingang>0</kWarenLagerEingang>
<kWarenLagerPlatz>1</kWarenLagerPlatz>
<fAnzahl>1.00</fAnzahl>
<kLagerArtikel>10</kLagerArtikel>
</twarenlagerausgang>
<twarenlagerausgang>
<kArtikel>15</kArtikel>
<kWarenLagerEingang>0</kWarenLagerEingang>
<kWarenLagerPlatz>1</kWarenLagerPlatz>
<fAnzahl>1.00</fAnzahl>
<kLagerArtikel>11</kLagerArtikel>
</twarenlagerausgang>
- In Zukunft wird es eine Prüfung geben, damit die Bestände nicht mehr so schnell zerstört werden können. Aktuell wird überprüft, ob genügend Bestand vorhanden ist.
tlieferadresse
Über den Tag <tlieferadresse> wird einem Auftrag die entsprechende Lieferadresse zugewiesen. Im Folgenden werden die selbsterklärenden Tags innerhalb von <tlieferadresse> angegeben, bei allen handelt es sich um Freitext-Felder.
<tlieferadresse>
<cAnrede>LCTT_Anrede</cAnrede>
<cVorname>LCTT_Vorname</cVorname>
<cNachname>LCTT_Name</cNachname>
<cTitel>LCTT_Titel</cTitel>
<cFirma>LCTT_Firma</cFirma>
<cStrasse>LCTT_Straße</cStrasse>
<cAdressZusatz>LCTT_AZusatz</cAdressZusatz>
<cPLZ>LCTT_PLZ</cPLZ>
<cOrt>LCTT_Ort</cOrt>
<cBundesland>LCTT_Bundesland</cBundesland>
<cLand>Marshallinseln</cLand>
<cTel>LCTT_Tel</cTel>
<cMobil>LCTT_Mobil</cMobil>
<cFax>LCTT_Fax</cFax>
<cMail>LCTT@jtl-software.de</cMail>
</tlieferadresse>
tzahlungsinfo
Der Tag <tzahlungsinfo> definiert zusätzliche Zahlungsinformationen zu einem Auftrag. Bei allen Tags handelt es sich ausschließlich um Textfelder.
<tzahlungsinfo>
<cBankName></cBankName>
<cIBAN></cIBAN>
<cBIC></cBIC>
<cInhaber></cInhaber>
</tzahlungsinfo>
Erweiterung um weitere Felder
Innerhalb des Tags <tbestellung> können weitere Tags angegeben werden, die in dieser Dokumentation nicht aufgeführt sind.
Dabei können alle Felder aus der Tabelle tBestellung direkt angesprochen werden.
Beispiel:
Für die Erstellung eines reinen Angebotes, kann z.B. folgender Tag hinzugefügt werden:
<cType>A</cType>
- ACHTUNG! Sobald das Tag cType mit dem Wert A verwendet wird darf keine Rechnung mehr erstellt werden. Dazu muss das Attribut nRechnungErstellen unbedingt auf 0 gesetzt werden.
- Ebenfalls darf auch kein Lieferschein mehr erstellt werden. Dazu muss das Attribut nLieferscheinErstellen unbedingt auf 0 gesetzt werden.