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

reneromann

Sehr aktives Mitglied
31. August 2012
2.135
5
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

Gesperrter Benutzer
16. Juli 2018
260
85
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.135
5
Hallo Philipp,

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

Gruß,

René
 

Philipp Laumen

Gesperrter Benutzer
16. Juli 2018
260
85
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.135
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
1.215
188
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.135
5
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.
 

webksde

Aktives Mitglied
30. August 2012
60
5
32457 Porta Westfalica
Ich kann ebenfalls bestätigen, dass der Guide Datum und Uhrzeit erlaubt - was auch wünschenswert ist. Der Import wirft allerdings den Fehler:

Code:
Unbehandelte Ausnahme #5696DC3373F28979 vom Typ jtlCore.Classes.Auftragsimport.Exceptions.ValidateException in System.Collections.Generic.List`1[jtlCore.Classes.Auftragsimport.Models.CustomerOrder] Import(System.Xml.Linq.XDocument, jtlCore.Classes.Auftragsimport.ImportOptions, jtlCore.Classes.Auftragsimport.AuftragsimportRepository)
jtlCore.Classes.Auftragsimport.Exceptions.ValidateException: Fehlerhafte XML-Datei ---> System.Xml.Schema.XmlSchemaValidationException: Das Element 'dErstellt' ist ungültig - Der Wert '2021-04-07 01:32:04' ist gemäß seinem Datentyp 'MyDate' ungültig -- Der Wert '2021-04-07 01:32:04' ist gemäß den memberTypes der Union nicht gültig.. ---> System.Xml.Schema.XmlSchemaException: Der Wert '2021-04-07 01:32:04' ist gemäß den memberTypes der Union nicht gültig.
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Xml.Schema.XNodeValidator.ValidationCallback(Object sender, ValidationEventArgs e)
   bei System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(XmlSchemaValidationException e, XmlSeverityType severity)
   bei System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(String code, String[] args, Exception innerException)
   bei System.Xml.Schema.XmlSchemaValidator.CheckElementValue(String stringValue)
   bei System.Xml.Schema.XmlSchemaValidator.ValidateAtomicValue(String stringValue, XmlSchemaSimpleType& memberType)
   bei System.Xml.Schema.XmlSchemaValidator.InternalValidateEndElement(XmlSchemaInfo schemaInfo, Object typedValue)
   bei System.Xml.Schema.XNodeValidator.ValidateElement(XElement e)
   bei System.Xml.Schema.XNodeValidator.ValidateNodes(XElement e)
   bei System.Xml.Schema.XNodeValidator.ValidateElement(XElement e)
   bei System.Xml.Schema.XNodeValidator.ValidateNodes(XElement e)
   bei System.Xml.Schema.XNodeValidator.ValidateElement(XElement e)
   bei System.Xml.Schema.XNodeValidator.Validate(XObject source, XmlSchemaObject partialValidationType, Boolean addSchemaInfo)
   bei System.Xml.Schema.Extensions.Validate(XDocument source, XmlSchemaSet schemas, ValidationEventHandler validationEventHandler, Boolean addSchemaInfo)
   bei jtlCore.Classes.Auftragsimport.XmlValidator.Validate(XDocument document, String xsdString)
   bei jtlCore.Classes.Auftragsimport.XmlValidator.TryValidate(XDocument document, String xsdString, XmlSchemaValidationException& exception)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei jtlCore.Classes.Auftragsimport.XmlImporter.XmlOldWawiOrderImport.Import(XDocument document, ImportOptions importOptions, AuftragsimportRepository repository)
   bei jtlCore.Classes.Auftragsimport.XmlOrderImportExtensions.Import(IXMLOrderImport importer, String xml, ImportOptions importOptions, AuftragsimportRepository repository)
   bei jtlCore.Forms.Auftragsimport.AuftragsimportController.lZIVoBQTgVP(String  , ImportOptions  )
   bei jtlCore.Forms.Auftragsimport.AuftragsimportController.tpvVoqKcDOB()
Title = Fehlerhafte XML-Datei
Description = Der Aufbau der XML-Datei entspricht nicht den Anforderungen.

Unbehandelte Ausnahme #31255584CB6D25DB vom Typ System.Xml.Schema.XmlSchemaValidationException in Void ValidationCallback(System.Object, System.Xml.Schema.ValidationEventArgs): Das Element 'dErstellt' ist ungültig - Der Wert '2021-04-07 01:32:04' ist gemäß seinem Datentyp 'MyDate' ungültig -- Der Wert '2021-04-07 01:32:04' ist gemäß den memberTypes der Union nicht gültig..

Unbehandelte Ausnahme #32FB2D3D51A89487 vom Typ System.Xml.Schema.XmlSchemaException in : Der Wert '2021-04-07 01:32:04' ist gemäß den memberTypes der Union nicht gültig.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Import von CSV und XML (CSV=Artikel, XML=Variationen der Artikel) JTL-Ameise - Ideen, Lob und Kritik 6
Neu XML Export Artikel Stammdaten für Mercateo Schnittstellen Import / Export 1
Neu Tabellen (.csv) vor Ameise-Import automatisch ändern Schnittstellen Import / Export 14
Neu Ameise (Import) - Feld "Otto.de: Artikelname" User helfen Usern - Fragen zu JTL-Wawi 2
Neu Packtisch+ wartet nicht auf TrackingID Import Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 6
Neu Import von Lieferantenbeständen funktioniert nicht User helfen Usern - Fragen zu JTL-Wawi 8
Neu Gibt es einen Import von Artikeltexten die pro Artikel als .txt geliefert werden? JTL-Ameise - Ideen, Lob und Kritik 1
Neu Wie kann ich Artikel mit Lagerbestand 0 beim Import inaktiv setzen) JTL-Ameise - Ideen, Lob und Kritik 17
Neu DATEV Rechnungsdatenservice 2.0 - Missing scope 'datev:file:import' Schnittstellen Import / Export 2
Neu SEO Weiterleitung Import klappt nicht, seltsame Sonderzeichen ;;;;; JTL-Shop - Fehler und Bugs 1
Neu Probleme mit Größenreihenfolge beim CSV-Import User helfen Usern - Fragen zu JTL-Wawi 2
Neu Kategorisierung bei CSV-Import – Hilfe benötigt** User helfen Usern - Fragen zu JTL-Wawi 3
Kategorisierung bei CSV-Import – Hilfe benötigt** JTL-Wawi 1.8 2
Gelöst JTL-POS Datensicherung - Export/Import von Datensätzen Allgemeine Fragen zu JTL-POS 2
Neu Artikelnummern werden beim Import ersetzt Shopify-Connector 0
Neu System.ArgumentNullException bei Ameise Import (Konfigurationsgruppen zuordnen) JTL-Wawi - Fehler und Bugs 2
Nichtssagende Fehlermeldung beim Import JTL-Wawi 1.7 3

Ähnliche Themen