Optimierte Bearbeitung und Performance
JTL Simon Käufling Simon

Entwickler JTL-Wawi

Veröffentlicht am: 27. April 2018

Überarbeitete Ausgabe in JTL-Wawi 1.4

Weiter geht es mit unseren Entwicklertagebüchern zum Projekt 2.0 von JTL-Wawi 1.4. Diesmal rücken wir die Ausgabe in den Fokus. Dafür stellen wir aktuell eine ganze Reihe Dokumente in der Warenwirtschaft auf den Kopf, um diese für andere Systeme künftig einlesbar zu machen ebenso wie die Performance und die Möglichkeit zur Bearbeitung von Vorlagen verbessern. Mehr dazu schildern wir im Folgenden.

Vorlagen – was ist das?

Unsere Warenwirtschaft beinhaltet Vorlagen für alle verwendeten Geschäftspapiere wie zum Beispiel Angebote, Rechnungen oder Lieferscheine. Die Vorlagen lassen sich nach Wunsch an das eigene Geschäft anpassen oder für bestimmte Kundengruppen erstellen. Zusätzlich lässt sich einstellen, wer was erhalten soll und in welcher Form. Soll der Kunde die Rechnung per Mail erhalten oder doch nur in Print-Form? Dafür gibt es bei uns die Vorlagenverwaltung. Mehr dazu findet ihr in unserem Guide:

Vorlagen in JTL-Wawi verwalten

Der Ansatzpunkt

Wer unsere Vorlagen bei hohem Versandvolumen verwendet oder auf besonders rasches Handeln im Tagesgeschäft angewiesen ist, hat vielleicht bemerkt, dass die Ausgabe in diesen Fällen auf Performance-Probleme stößt. Die Ursache: Die aktuelle Ausgabe arbeitet mit Variablen, die Daten einzeln aus der Datenbank holen. Dafür gehen jede Menge Anfragen an den Server, die alle ein bestimmtes Maß an Zeit für den Dialog mit dem Server benötigen. Ja nach Vorlage können weit über 100 SQL-Abfragen abgesetzt werden. Unter Umständen erzeugt beispielsweise ein Lieferschein mit circa 200 Positionen plötzlich 3.500 SQL-Abfragen. Dass dies die Performance beeinflusst, ist kaum verwunderlich, aber auch nicht optimal, insbesondere, da dies weitere Fehler zur Folge haben kann.

Auch einfache Änderungen an den Vorlagen gehen nicht immer leicht von der Hand – für eine Logoänderung oder das Anpassen einer Anschrift muss der eine oder andere Kunde schon einen Servicepartner hinzuziehen. Des Weiteren hören wir von Kunden immer wieder den Wunsch, unsere aus dem System erstellten Dokumente importierbar zu gestalten – gerade für Fälle wie ZUGFerd oder XRechnung. Das lässt sich doch machen, dachten wir, und haben es uns mit dem Projekt Ausgabe 2.0 auf den Zettel gesetzt.

Das Konzept

Wie ihr seht, haben wir das Projekt in drei Bereiche gegliedert – Bausteine und Variablenbaum, die Performance sowie maschinenlesbare Dokumente.

Bausteine und Variablenbaum

Hiermit wollen wir die Möglichkeit, Vorlagen zu modifizieren adressieren. Dafür schaffen wir einen vorlagenübergreifenden Variablenbaum, der zunächst eine Vereinheitlichung für alle Variablen-Elemente in den Vorlagen schafft. Wir ergänzen das ganze dann um die Bausteinverwaltung. Als Baustein bezeichnen wir einzelne Teile einer Vorlage wie das Logo, das Briefpapier oder die Anschrift. Fügt ihr dann später einen Baustein in die Vorlagen ein, greifen sie auf die darin enthaltenen Variablen zu. Eine Änderung an den Variablen führt folglich zu globalen Änderungen an allen Vorlagen, die den jeweiligen Baustein verwenden.

JTL Wawi 1.4
Prototyp JTL-Bausteinverwaltung

Keine Sorge: Die bisherigen Vorlagen unterstützen wir auf unbestimmte Zeit weiterhin. Der einzige Haken in diesem Falle ist, dass die Änderungen von JTL-Wawi 1.4 an den Vorlagen in diesem Falle nicht rückwirkend greifen. Die alten Vorlagen profitieren also nicht von den neuen Bausteinen. Wer jedoch auf die neuen Vorlagen setzt, dem sollte die Bearbeitung in Zukunft einfacher und schneller von der Hand gehen. Für Änderungen an den Bausteinen wird künftig List & Label genutzt.

Die Performance

Leistungstechnisch möchten wir gern stark an den Stellschrauben drehen. Unser oben genanntes Beispiel mit 3.500 SQL-Abfragen wollen wir mit Ausgabe 2.0 auf unter 10 SQL-Abfragen pro Formular reduzieren. Der sportliche Unterschied macht sich direkt beim Packen eurer Pakete bemerkbar. Denn die geringere Abfragemenge sorgt für eine schnellere Übermittlung des Druckformulars an den Drucker, der Packer erhält dementsprechend schneller die Dokumente für das jeweilige Paket.

Möchte ein Händler momentan einen Auftrag mit 500 Positionen drucken, benötigen die Datenbankabfragen für den Auftrag 32 Sekunden, für die Rechnung ganze 43. Nach unseren Anpassungen möchten wir die Geschwindigkeit hierfür auf rund 2 Sekunden für Aufträge und Rechnung, aber auch für Picklisten reduzieren.

Maschinenlesbare Dokumente

Hier planen wir speziell die Integration von ZUGFeRD, das Format elektronischer Rechnungen, das wir als XML an die Rechnung anhängen. Da das Format nicht nur im deutschsprachigen, sondern im internationalen Raum von großer Bedeutung ist, beziehungsweise sich als Standard etabliert, wollen wir dies im Rahmen der Zukunftssicherheit bereits für unsere Dokumente bereitstellen.

Aktueller Entwicklungsstand

Einige Elemente der Vorlagenbearbeitung sind bereits soweit in trockenen Tüchern, dass wir diese auf der diesjährigen Partner Convention vorstellen konnten. Unser Hauptaugenmerk bei der Entwicklung galt dem Variablenbaum samt Bausteinen. Eine Hürde stellt für uns momentan der Performance-Gewinn dar. Wir prüfen die Möglichkeiten, ein möglichst effizientes Auslesen der Daten zu gewährleisten und dadurch die Menge der SQLs zu reduzieren. Ein solches Herangehen ist jedoch besonders zeitaufwendig. Der Grund dafür: Wir möchten mit wenigen Zugriffen möglichst viele Daten ziehen können. Denn dieser Ansatz reduziert die Kommunikation mit dem Server auf ein Minimum. Dafür müssen die Daten Server-seitig aber entsprechend aufbereitet sein. Wir haben uns in diesem Bereich hohe Ziele gesteckt und versuchen natürlich, diesen so nah wie möglich zu kommen.

Als letzten Schritt nach der Leistungsverbesserung gilt es für uns, ein maschinenlesbares Format zu integrieren. Hier rechnen wir mit relativ wenig Schwierigkeiten. Mit der Veröffentlichung des Release Candidates für JTL-Wawi 1.4 soll natürlich die Ausgabe 2.0 in vollständiger Form enthalten sein.

Unsere neue Version der Warenwirtschaft wird noch weitere Vorteile bieten. Über diese werden wir euch auch in den kommenden Wochen weiter in Form dieser kurzen Entwicklertagebücher auf dem Laufenden halten. Nach der Veröffentlichung des RC von JTL-Wawi 1.4 stellen wir euch die neuen Funktionen in ihrem dann vollintegrierten Zustand in unseren Feature Previews im Detail vor.



Wie hat Euch dieser Beitrag gefallen?
Ø 0 (0 Bewertungen)
Vielen Dank für die Bewertung!