Danke @mvh, dann sind wir dem Fehler ja schon sehr weit auf der Spur. Ich hoffe auf eine Blitzlösung von JTL.Dann könnt ihr auch den Wert gar nicht speichern, weil in der Speicherroutine wird abgefragt, ob der Wert verändert wurde. Und wenn das Veränderungsereignis nicht abgefeuert wird, wird das Attributwert nicht übernommen.
Moin. Die Speicherroutine ist im Code und die Ereignisse auch, es kann nur JTL korrigieren.Danke @mvh, dann sind wir dem Fehler ja schon sehr weit auf der Spur. Ich hoffe auf eine Blitzlösung von JTL.
Wird die Speicherroutine aufgerufen und ruft diese eine StoredProcedure in der Bank auf? Wenn ja, könnte man als Workarround die Abfrage nach der Änderung in der StoredProcedure auskommentieren und einfach immer speichern. Denke ich da richtig?
foreach (GlobalerTextValue globalerTextValue in this.EditorViewModel.WertChangedList)
Falls ja: Wo sind diese dokumentiert?
Falls nein: Warum wurde eingegriffen?
Welche fachliche Rechtfertigung gab es, eine zentrale, produktiv genutzte Funktion umzubauen?
Warum wird an einem funktionierenden Persistenzpfad gearbeitet, statt ihn unangetastet zu lassen?
Wurde der Speichervorgang globaler Textbausteine nach der Änderung überhaupt getestet?
Auf welcher technischen Grundlage meldet die Wawi einen erfolgreichen Speichervorgang, wenn die Datenbank unverändert bleibt?
Welche Logik entscheidet, welche Sprache gespeichert wird – und warum ist diese Logik fehlerhaft?
Warum wurde ein bekannter Defekt in einer Kernfunktion über mehrere Releases hinweg ausgeliefert?
Warum werden Anwender nicht darüber informiert, dass Änderungen an globalen Textbausteinen derzeit nicht zuverlässig gespeichert werden?
Der Status für das Ticket https://issues.jtl-software.de/issues/WAWI-85988 steht seit Heute auf gelöst.
@mvh:
Eine Schadenersatzforderung ist auch nicht von heute auf morgen durchgesezt, aber angesichts des über zwei Monate bekannten Fehlers ist die Meldung des gelösten Tickets zwar schön, aber ohne eine konkrete Erklärung (mein Post #32) noch keine anfassbare Lösung.
@John
Du kannst Dir aussuchen, was für Dich das leichter zu ertragende Übel ist:
Mit den Fehlern leben oder JTL verklagen und in dem Moment die Kündigung auf dem Tisch haben.
1. Welches konkrete Problem sollte gelöst werden?
- Gab es vor Version 1.11.x:
- Datenverlust?
- falsche Darstellung?
- Performance-Probleme?
- Beschwerden zur Mehrsprachigkeit?
2. Wer entscheidet, funktionierende Kernfunktionen zu ändern?
- Handelt es sich um:
- Bugfix?
- Feature-Erweiterung?
- internes Refactoring?
- „Code-Hygiene“?
3. Warum wurde ausgerechnet der Speicherpfad verändert?
Nachweislich:
- Lesen funktioniert
- Datenmodell ist korrekt
- Nur das Schreiben ist defekt
4. Wie konnte ein solcher Fehler unentdeckt bleiben?
- Der Fehler ist:
- reproduzierbar
- versionsübergreifend
- geschäftskritisch
- Wenn ja: wie konnte der Fehler durchrutschen?
- Wenn nein: warum nicht bei einer Kernfunktion?
5. Warum zeigt das UI „Speichern erfolgreich“, obwohl nichts gespeichert wird?
Das ist kein kosmetischer Fehler.
6. Warum ist der Fehler mehrsprachig inkonsistent?
- Gleicher Textbaustein
- unterschiedliche Sprachen
- unterschiedliche Persistenz
7. Warum wurde der Fehler nicht sofort zurückgerollt?
- Meldungen existieren seit 1.11.1
- Fehler besteht in 1.11.5 weiterhin
8. Warum gibt es keine Warnung für Anwender?
- Keine Release Notes
- Keine Known Issues
- Keine Einschränkung dokumentiert
Wie lange seid ihr schon mit JTL unterwegs?
Über die grundsätzliche Situation bin ich völlig bei Dir, so einen Fehler auf die lange Bank zu schieben, ist mehr als unerfreulich.@FOC Solutions
Danke für deine Rückmeldung. Ich verstehe den grundsätzlichen Ansatz mit Testsystemen und Reifeprozessen – und genau deshalb irritiert mich die Situation hier umso mehr.
Der konkret diskutierte Fehler ist seit Version 1.11.1 (18.10.2025) bekannt. In den darauffolgenden Versionen 1.11.2, 1.11.3, 1.11.4 sowie 1.11.5 war dieser Fehler weiterhin enthalten. Ich habe daher keine frisch veröffentlichte .0-Version installiert, sondern mit der 1.11.5 eine Version, in der der Fehler bereits seit mehreren Folgeversionen bekannt war – allerdings nicht mir als Anwender. Das halte ich für problematisch, da zwischen dem erstmaligen Bekanntwerden des Fehlers und meinem Update mehr als zwei Monate lagen, in denen aus meiner Sicht ausreichend Zeit gewesen wäre, betroffene Nutzer aktiv zu informieren oder zu warnen, insbesondere wenn Globale Textbausteine im Einsatz sind. Vor diesem Hintergrund gehe ich davon aus, dass JTL grundsätzlich Kenntnis darüber hat, welche Wawi-Versionen bei den Kunden im Einsatz sind, und dass die vorhandenen Kommunikationskanäle (z. B. regelmäßige Abrechnungs-E-Mails) grundsätzlich auch für entsprechende Hinweise genutzt werden könnten.
Wenn ein Fehler über mehr als zwei Monate und 5 Releases hinweg bestehen bleibt, stellt sich für mich die Frage, wie ein Anwender damit realistisch umgehen soll:
Das ist für mich ein klassisches Catch-22: Egal wie man sich entscheidet, man trägt am Ende das Risiko – obwohl der Fehler bekannt ist und mehrfach weitergereicht wurde.
- Installiert man Updates, läuft man Gefahr, bekannte, aber nicht behobene Fehler zu übernehmen.
- Installiert man keine Updates, wird man früher oder später durch externe Abhängigkeiten (z. B. eBay-Schnittstellen, API-Änderungen, Abschaltungen alter Versionen) faktisch dazu gezwungen, doch zu aktualisieren.
Vor diesem Hintergrund fällt es mir schwer, die Verantwortung ausschließlich beim Anwender zu sehen. Gerade bei produktiven Systemen wäre aus meiner Sicht wichtig, dass bekannte, geschäftskritische Fehler entweder zeitnah behoben oder zumindest klar kommuniziert werden, inklusive belastbarer Aussagen, ab welcher Version sie tatsächlich gelöst sind.
Mich würde daher konkret interessieren, wie ihr diesen Zielkonflikt in der Praxis handhabt, wenn bekannte Fehler über mehrere Minor-Versionen hinweg bestehen bleiben und externe Plattformen parallel Aktualisierungen erzwingen und euch bewußt ist, daß ihr euch mit jedem Update ein weiteres Problem holt.