Moin,
wir importieren per SQL die XML Daten eines Auftrages in die Tabelle tXMLBestellimport, das funktioniert auch alles schon seit Wawi 1.5. Der Worker verarbeitet die dann. Beim altem Worker 1.0 war es so, daß er bei fehlerhaften XML Daten abstürzte, der neue 2.0 ignoriert diese.
Natürlich validieren wir die XML gegen die XSD, daher sollten keine ungütligen XML herauskommen, aber trotzdem:
Der Worker 2.0 läuft durch und sagt
Es verbleiben dann die ungültigen Bestellungen in der Tabelle. Finde ich schonmal gut.
Aber trotzdem sollte Worker 2.0 einen Fehler werfen. In der Tabelle [Worker].[tErrorlog] steht nix, in [Worker].[tStatus] steht auch nix, was mir weiterhilft. Da steht auch kein Eintrag zur Uhrzeit 10.25, nur 08:25:20.943 (OK, ggf. UTC vs. lokale Zeit), das einzige was halbwegs hinkommt ist
kMandant nAbgleichstyp kZiel dZeitstempelUtc nStatus cProgressText
3 13 -1 2023-04-07 08:25:20.943 3 NULL
Leider finde ich nirgends die Zuordnung nAbgleichstyp noch nStatus. Oder schaue ich in der falschen Tabelle?
Natürlich kann ich erstmal die Tabelle tXMLBestellimport prüfen ob Leichen verbleiben, aber eigentlich MUSS der Worker im Status den Fehler melden, am besten auch relativ detailliert wie der manuelle Import.
Legt der Worker 2.0 ggf. ein Logfile an, daß man checken kann?
Der manuelle Auftragsimport per XML meckert brav die fehlerhafte XML an.
Sowas MUSS der Worker 2.0 auch machen, denn Fehler sind Fehler
Hier ein Bespiel einer ungültigen XML (atBestellung anstatt tBestellung, schon geht nix mehr^^)
wir importieren per SQL die XML Daten eines Auftrages in die Tabelle tXMLBestellimport, das funktioniert auch alles schon seit Wawi 1.5. Der Worker verarbeitet die dann. Beim altem Worker 1.0 war es so, daß er bei fehlerhaften XML Daten abstürzte, der neue 2.0 ignoriert diese.
Natürlich validieren wir die XML gegen die XSD, daher sollten keine ungütligen XML herauskommen, aber trotzdem:
Der Worker 2.0 läuft durch und sagt
07.04.2023 10:25 | Information | Status: Erfolgreich beendet |
Es verbleiben dann die ungültigen Bestellungen in der Tabelle. Finde ich schonmal gut.
Aber trotzdem sollte Worker 2.0 einen Fehler werfen. In der Tabelle [Worker].[tErrorlog] steht nix, in [Worker].[tStatus] steht auch nix, was mir weiterhilft. Da steht auch kein Eintrag zur Uhrzeit 10.25, nur 08:25:20.943 (OK, ggf. UTC vs. lokale Zeit), das einzige was halbwegs hinkommt ist
kMandant nAbgleichstyp kZiel dZeitstempelUtc nStatus cProgressText
3 13 -1 2023-04-07 08:25:20.943 3 NULL
Leider finde ich nirgends die Zuordnung nAbgleichstyp noch nStatus. Oder schaue ich in der falschen Tabelle?
Natürlich kann ich erstmal die Tabelle tXMLBestellimport prüfen ob Leichen verbleiben, aber eigentlich MUSS der Worker im Status den Fehler melden, am besten auch relativ detailliert wie der manuelle Import.
Legt der Worker 2.0 ggf. ein Logfile an, daß man checken kann?
Der manuelle Auftragsimport per XML meckert brav die fehlerhafte XML an.
Sowas MUSS der Worker 2.0 auch machen, denn Fehler sind Fehler
Hier ein Bespiel einer ungültigen XML (atBestellung anstatt tBestellung, schon geht nix mehr^^)
XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<tBestellungen>
<atBestellung cRechnungsNr="aaa" kFirma="1">
<cSprache>eng</cSprache>
<cWaehrung>EUR</cWaehrung>
<cBestellNr>aaa</cBestellNr>
<cExterneBestellNr>exta</cExterneBestellNr>
<cVersandartName>DHL</cVersandartName>
<cVersandInfo/>
<dVersandDatum/>
<cTracking/>
<dLieferDatum>2023-03-20</dLieferDatum>
<cKommentar>API Import - 06/04/2023, 08:57:57</cKommentar>
<cBemerkung/>
<dErstellt>2023-03-19</dErstellt>
<cZahlungsartName>IC</cZahlungsartName>
<dBezahltDatum>2023-03-19</dBezahltDatum>
<fBezahlt>0.00</fBezahlt>
<twarenkorbpos>
<cName><![CDATA[Bosch Demoprodukt]]></cName>
<cArtNr>S5013</cArtNr>
<cBarcode/>
<cSeriennummer/>
<cEinheit/>
<fPreisEinzelNetto>133.7</fPreisEinzelNetto>
<fMwSt>19.00</fMwSt>
<fAnzahl>1.00</fAnzahl>
<cPosTyp>standard</cPosTyp>
<fRabatt>0.00</fRabatt>
</twarenkorbpos>
<twarenkorbpos>
<cName>DHL</cName>
<cArtNr/>
<cBarcode/>
<cSeriennummer/>
<cEinheit/>
<fPreisEinzelNetto>0.00</fPreisEinzelNetto>
<fMwSt>20.00</fMwSt>
<fAnzahl>1.00</fAnzahl>
<cPosTyp>versandkosten</cPosTyp>
<fRabatt>0.00</fRabatt>
</twarenkorbpos>
<tkunde>
<cKundenNr>55</cKundenNr>
<cAnrede/>
<cTitel/>
<cVorname/>
<cNachname/>
<cFirma/>
<cStrasse/>
<cAdressZusatz/>
<cPLZ/>
<cOrt/>
<cBundesland/>
<cLand/>
<cTel/>
<cMobil/>
<cFax/>
<cMail/>
<cUSTID/>
<cWWW/>
<fRabatt>0.00</fRabatt>
<cHerkunft/>
</tkunde>
<tlieferadresse>
<cAnrede/>
<cVorname/>
<cNachname><![CDATA[Max Mustermann]]></cNachname>
<cTitel/>
<cFirma/>
<cStrasse><![CDATA[Mustergasse 4]]></cStrasse>
<cAdressZusatz/>
<cPLZ><![CDATA[11111]]></cPLZ>
<cOrt><![CDATA[Musterstadt]]></cOrt>
<cBundesland/>
<cLand><![CDATA[DE]]></cLand>
<cTel><![CDATA[+49123 456]]></cTel>
<cMobil><![CDATA[+49123 456]]></cMobil>
<cFax/>
<cMail/>
</tlieferadresse>
<tzahlungsinfo>
<cBankName/>
<cBLZ/>
<cKontoNr/>
<cKartenNr/>
<dGueltigkeit/>
<cCVV/>
<cKartenTyp/>
<cInhaber/>
<cIBAN/>
<cBIC/>
</tzahlungsinfo>
</tBestellung>
</tBestellungen>