Neu XML-Import -- Datumsfelder unterstützen (entgegen dem Guide) keine Uhrzeiten

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

reneromann

Sehr aktives Mitglied
31. August 2012
2.133
5
#1
Beim Import von Aufträgen per XML-Import über den Worker als auch über die entsprechende Funktion im Verkaufsmenü wird der Import der XML abgelehnt, sofern die Datumsfelder nicht nur ein Datum, sondern zusätzlich auch eine Uhrzeit enthalten.

Beispiel-XML, welches NICHT importiert wird (Verweis auf das Feld dErstellt, welches nicht dem Typ "MyDate" entsprechen würde):
XML:
<?xml version="1.0" encoding="iso-8859-1"?>
<tBestellungen>
    <tBestellung kFirma="5">
        <cSprache>ger</cSprache>
        <cWaehrung>EUR</cWaehrung>
        <cBestellNr />
        <cExterneBestellNr>EXT123</cExterneBestellNr>
        <cVersandartName />
        <cVersandInfo />
        <dVersandDatum />
        <cTracking />
        <cLogistiker />
        <dLieferDatum />
        <cKommentar />
        <cBemerkung />
        <dErstellt>2019-04-30 15:32:14</dErstellt>
        <cZahlungsartName>Überweisung</cZahlungsartName>
        <dBezahltDatum />
        <fBezahlt>0</fBezahlt>
        <twarenkorbpos kArtikel="813">
            <cName>TESTPRODUKT</cName>
            <cArtNr>TESTEAN</cArtNr>
            <cBarcode />
            <cSeriennummer />
            <cEinheit />
            <fPreisEinzelNetto>0</fPreisEinzelNetto>
            <fPreis>0</fPreis>
            <fMwSt>19</fMwSt>
            <fAnzahl>1</fAnzahl>
            <cPosTyp>standard</cPosTyp>
            <fRabatt>0</fRabatt>
        </twarenkorbpos>
        <tkunde>
            <cKundenNr />
            <cAnrede>Herr</cAnrede>
            <cTitel />
            <cVorname>Max</cVorname>
            <cNachname>Mustermann</cNachname>
            <cFirma />
            <cStrasse>Musterstraße 33</cStrasse>
            <cAdressZusatz />
            <cPLZ>12345</cPLZ>
            <cOrt>Musterhausen</cOrt>
            <cBundesland />
            <cLand>DE</cLand>
            <cTel />
            <cMobil>123456789</cMobil>
            <cFax />
            <cMail>test@test.de</cMail>
            <cUSTID />
            <cWWW />
            <dGeburtstag>1960-01-01</dGeburtstag>
            <cHerkunft />
            <dErstellt>2019-04-30</dErstellt>
        </tkunde>
        <tlieferadresse>
            <cAnrede>Herr</cAnrede>
            <cVorname>Max</cVorname>
            <cNachname>Mustermann</cNachname>
            <cTitel />
            <cFirma />
            <cStrasse>Musterstraße 33</cStrasse>
            <cAdressZusatz />
            <cPLZ>12345</cPLZ>
            <cOrt>Musterhausen</cOrt>
            <cBundesland />
            <cLand>DE</cLand>
            <cTel />
            <cMobil>123456789</cMobil>
            <cFax />
            <cMail>test@test.de</cMail>
        </tlieferadresse>
        <tzahlungsinfo>
            <cBankName />
            <cBLZ />
            <cKontoNr />
            <cKartenNr />
            <dGueltigkeit />
            <cCVV />
            <cKartenTyp />
            <cInhaber />
            <cIBAN />
            <cBIC />
        </tzahlungsinfo>
    </tBestellung>
</tBestellungen>
Sobald das Feld dErstellt von
XML:
<dErstellt>2019-04-30 15:32:14</dErstellt>
zu
XML:
<dErstellt>2019-04-30</dErstellt>
abgeändert wird, wird der Auftrag auch importiert.
Im Guide hingegen wird explizit genannt, dass für Datumsfelder auch das Format "yyyy-MM-dd HH:mm:ss" erlaubt sei.

Verwendete Wawi-Version 1.4.26.0
 

Philipp Laumen

Moderator
Mitarbeiter
16. Juli 2018
32
7
#2
Hallo,

allerdings, da hat sich wohl ein Fehler im Guide eingeschlichen. In der XSD Datei wird es ebenfalls ohne Uhrzeit definiert.
Werde ich anpassen lassen.

Danke!
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.133
5
#3
Hallo Philipp,

lieber wäre mir die andere Richtung, d.h. Erweiterung des Imports um die Uhrzeit ;)

Gruß,

René
 

Philipp Laumen

Moderator
Mitarbeiter
16. Juli 2018
32
7
#4
Hallo Rene,

der Import wurde zur 1.4 ja schon angepasst. Du kannst das Feld alternativ auch weglassen, dann wird da vom SQL der Timestamp reingesetzt.
Wenn wir da erweitern, befürchte ich ist die Uhrzeit Pflichtangabe.

Vielleicht erklärst du wofür du das brauchen würdest.

Gruß,
Philipp
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.133
5
#5
Wir nutzen den XML-Import für eine Schnittstelle mit einer Online-Kursverwaltung...
Die Kursverwaltung legt ihrerseits Kursbuchungen an und wir ziehen diese per XML-Import in die Wawi zum Erstellen der Rechnungen, während die eigentliche Zuweisung der Kursteilnehmer dann rein im Online-Tool erfolgt.
Und da wir im Online-Tool sowohl den Buchungstag als auch die -uhrzeit aufgezeichnet haben, wäre es schön, wenn man diese mit übernehmen könnte...

Und zum Thema Timestamp - bisher hängt ihr ja auch einfach 00:00:00 hinten dran (dürfte der Default im SQL-Server sein, wenn man aus einem Date ein DateTime macht) - insofern könnte man auch in Zukunft weiterhin beide Optionen anbieten.

In C# wäre das dann z.B. ein
bool valid = DateTime.TryParseExact(inputString, {"yyyy-MM-dd","dd.MM.yyyy","yyyy-MM-ddTHH:mm:ss", "dd.MM.yyyy HH:mm:ss", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-ddTHH:mm:ssK", "yyyy-MM-dd HH:mm:ssK", "dd.MM.yyyy HH:mm:ssK" }, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal | DateTimeStyles.AdjustToUniversal, out value);

Im Fall eines einfachen Datums gibt die Funktion ein 00:00:00 zurück, ansonsten die geparste Uhrzeit -und- sie wandelt es intern gleich nach UTC um, sofern kein Zeitformat angegeben ist...

P.S.: In der Datenbank generell UTC - ansonsten gibt's beim Umzug in eine andere Zeitzone -oder- selbst bei der Sommer- und Winterzeitumstellung nur Hauen und Stechen. Den Spaß mit lokalen Zeiten in der Bank hab ich selbst schon hinter mir und seit dem geht nur noch UTC in die Bank... ;)
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
931
107
#6
Ein einfaches
Code:
UPDATE dbo.tBestellung SET dErstellt = GETDATE() WHERE cInetBestellNr = :cInetBestellNr
nach erfolgreichen Import löst Dein Problem. Bleiben noch die anderen Bugs im XML-Import (Zahlungsziel, cZusatz in der Lieferadresse, nSort der Auftragspositionen)
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.133
5
#7
Ein einfaches
Code:
UPDATE dbo.tBestellung SET dErstellt = GETDATE() WHERE cInetBestellNr = :cInetBestellNr
nach erfolgreichen Import löst Dein Problem.
Ist mir schon klar - nur nicht Sinn und Zweck der Aktion. Zumal das auch einen weiteren Aufwand bedeutet - nämlich die Prüfung, ob der Auftrag schon importiert wurde, um dann im Anschluss das Update-Statement laufen lassen zu können. So reicht ein einfaches "Einkippen" in die tXmlImport und der Wawi- Worker macht den Rest.

Immerhin könnte man ja auch die Kundendaten (die derzeit nicht funktionieren) per INSERT direkt in die Bank hauen - man darf sich bei Manipulationen in der Bank nur nicht wundern, wenn man nicht alle Stellen erwischt und damit einen ungültigen Stand hinterlässt.
 
Ähnliche Themen Forum Antworten Erstelldatum des Themas
Schnittstellen Import / Export 1

Ähnliche Themen