Neuigkeiten in der Apache OFBiz Community
Willkommen zu unserer monatlichen Vorstellung der OFBiz Neuigkeiten. In diesem Monat können wir – neben allen anderen Neuigkeiten – ein Feature vorstellen, mit dem man andere imitieren kann.
Impersonate Feature
Einer unsere Contributor, Gil Portenseigne, plante ein neues Feature für das OFBiz. Es nennt sich „Impersonate feature“ und im Folgendem werden wir kurz vorstellen, was die Idee hinter diesem Feature ist.
Man stelle sich vor, dass ein Nutzer ungewöhnliches Verhalten seitens OFBiz wahrnimmt. Damit ein Entwickler dieses Verhalten nachstellen kann, müsste dieser die Logindetails des Nutzers erfragen, um dieses Verhalten nachstellen zu können. Mit dem neuen Feature kann der Entwickler jedoch um die Erlaubnis der Imitation bitten, damit der Sachverhalt vom Entwickler untersucht werden kann.
Mit diesem Feature lassen sich diverse Szenarien testen und nachvollziehen, ohne dass Daten des Nutzers erfragt werden müssen. Diese Art von Funktionalität ist durchaus gängig, da es z.B. auch im Gitlab zu finden ist.
Dieses Feature wurde von einem unsere Service Provider entwickelt und wurde im Anschluss für die OFBiz Community freigegeben.
„Dieses Feature ist nun so einfach zu nutzen, dass sogar in Produktionsplanungen und Integrationsumgebungen dieses täglich genutzt wird. Dabei können spezifizierte Konfigurationen imitiert werden, ohne dass man sich Passwörter merken muss… Es ist auf einem so grundlegendem Weg implementiert; eine neue Berechtigung wir erstellt und einem autorisiertem Nutzer bereitgestellt, sodass ein Nutzerlogin imitieret werden kann.“
[„This feature became so easy to use that even in preproduction or integration environments we use it daily to impersonate specific configured userlogin without trying to remember the password… It’s implemented in a very basic way; a new permission is created and can be granted to an authorized user, that will be offered a way to select a userlogin to impersonate.“]
Wenn sie dieses neue Feature testen bzw. nutzen möchten, schauen sie sich bitte das Jira-Ticket OFBIZ-10515 an.
Wir bedanken uns bei Gil Portenseigne für die Bereitstellung des Features für das OFBiz.
Planung der Bestandszuweisung
In diesem Monat diskutierte die Community zudem über eine Idee vorhandene Güter des Inventars zu verwalten. Zu dem sollen hier künftige Lieferungen, getätigte Kundenbestellungen und deren erwartete Lieferzeiten genutzt werden, um eine realitätsnahe Planung zu ermöglichen. Es sollen noch weitere Faktoren wie Bestellpriorität, Kundenpräferenzen usw. berücksichtigt werden.
Derzeit wird die Planung so vollzogen, dass der vom Nutzer ausgewählte Algorithmus wie z.B. das LIFO(Last in First Out)- oder das FIFO(First in First Out)-Verfahren verwendet werden, um Güter des Inventars zu reservieren. Kommt es nun zu nicht planmäßigen Vorkommnissen im Bestellprozess, kann es passieren, dass die Bestandszuweisung ineffizient erfolgt und die Nachfrage das Angebot überragt.
Mit Hilfe dieser neuen Modifikation kann die Effizienz gesteigert werden. Den aktuellen Stand zu diesem Thema und Designvorschläge finden sie im Jira-Ticket OFBIZ-10518
Wir bedanken uns an dieser Stelle bei Deepak Nigam für seinen Anstoß zur Entwicklung dieses Themas, aber auch bei allen anderen, die ihre Ideen und ihr Feedback geteilt haben.
Neue Features und Verbesserungen
Funktionelle Erweiterungen und Optimierungen sowie Updates von Bibliotheken und Source Code Refactoring:
Framework
- Überarbeitet das aussortieren doppelter „use-when“ Felder im „FormRenderer“ (OFBIZ-10502).
- Überarbeitet FormRenderer::getFieldListsByPosition (OFBIZ-10503).
- Verbessert das MapContext Objekt an mehreren Stellen (OFBIZ-10485).
Entfernt den Constructor und die Factory Methode „getMapContext“ weil sie redundant ist und keinen Mehrwert hat. Ersetzt for-Schleifen für Collections in mehreren Methoden durch einfache Stream – Aufrufe, die deklarativ angewandt für besser lesbaren Code sorgen. Entfernt umfassend die individuelle ListSet Datenstruktur mit einem HashSet. - Benutzt die Stream API im FormRenderer (OFBIZ-10505).
- Überarbeitet MapContext und MapStack weiter (OFBIZ-10485).
Benennt stackList in contexts (die Datenstruktur, die das context Deque beinhaltet) um. Überarbeitet size Funktion um Streams zur Summierung aller Keys zu benutzen. Führt die Funktion „entryStream()“ ein, welche einen Stream aller Keys in der richtigen fortlaufenden Reihenfolge. Diese wird in mehreren anderen Funktionen verwandt. Gestaltet die get-Funktion der Context Map um, damit sie eine generische Funktion mit dem funktionalen Interface „withMapContainingKey“ nutzt. - Entfernt alles unnötige boxing and unboxing in Java Klassen (OFBIZ-10504).
- Fügt die fehlende ASL2 Lizenz hinzu.
- Unterbindet DTDs für XML-RPC Requests (OFBIZ-10509).
Sperrt alle doctype Angaben in XML-RPC Requests an OFBiz um Performanz und Sicherheit zu verbessern. - Rendert unterschiedliche HTML Container Typen mit ScreenRenderer (OFBIZ-10495).
- Ersetzt #assign mit #local in allen ftl Macros (OFBIZ-10516).
- Benutzt den Input type=submit für Form Submission (OFBIZ-10482).
- Ändert Font Titel um mit der initialen Implementation übereinzustimmen. (OFBIZ-10513).
- Verbessert das Hauptmenü (OFBIZ-10521).
- Führt neues Favicon ein (OFBIZ-10522).
- Entfernt org.apache.tomcat.util.net.secure_protocol_version aus dem json Output (OFBIZ-10443) und fügt es zu ignoreAttrs hinzu.
- Fügt Methoden Attribut zur Request-Map hinzu, um sicherzustellen, dass eine uri nur über GET oder POST aufgerufen werden kann (OFBIZ-10438).
- Entfernt die Überprüfung auf nur 250 Zeichen beim speichern einer URL in VisitHandler.getVisit() & ServerHitBin.saveHit() (OFBIZ-10508).
- Fügt Unterstützung zur Berechnung des Anzahlungs Preises bei Erstellung eines Shopping Cart Items hinzu (OFBIZ-7482).
- Überarbeitet ContactMechWorker.get[Entity]ContactMechValueMaps Funktion um Verarbeitungsgeschwindigkeit zu verbessern (OFBIZ-10514).
- Verbessert niederländische Labels in OrderUiLabels.xml (OFBIZ-10543).
- Entfernt zusätzlichen unbenutzten Code um das fromDate zu setzen um doppelte Primary Keys in mysql zu vermeidenl (OFBIZ-9337).
- Entfernt Kommentar aus ServerHitBin.java der Bezug auf das Problem nimmt, das mysql mit Teilwerten von Sekunden hat. Dieser wurde in (OFBIZ-9337) behoben.
Bugfixes
Funktionelle und technische Fehlerbehebungen:
Framework
- Dateiübertragungsverwaltung mit communicationEvent und dem neuen contactMech FTP_ADDRESS (OFBIZ-10245)
- Initialisierung des hasLoggedOut Flags beim Login (OFBIZ-10506).
- Layered-modal funktioniert nicht mit Parameter (OFBIZ-10511).
- Apache Tomcat to 9.0.10 wegen CVE-2018-8037 updaten (OFBIZ-10517).
Wenn ein asynchroner Request von der Anwendung zur gleichen Zeit beendet wird, zu der Container einen Timeout auslöst, entsteht eine Racing-Condition, die dazu führen kann dass ein Nutzer ein Antwort sehen kann, die für einen anderen bestimmt ist. Zudem haben in diesem Fall die NIO und NIO2 Connectoren Probleme, das Schließen einer Verbindung korrekt zu verfolgten. - Doppelter Code in der main rainbowstone less Datei.
- Build scripts für Plugins funktionieren nicht.
- Es kann keine neue Payment Group erstellt werden (OFBIZ-10523).
- In Ecommerce funktioniert die Suchfunktion nicht mehr (OFBIZ-10531).
- Standard und leere Catch Blöcke in Java und Groovy Dateien mit Inhalt versehen (OFBIZ-8341).
- Null Pointer Exception in ShipmentWorker.calcPackageWeight wenn ein Produkt keinen productWeight Wert hat.
Plugins
- Auswahl von Virtual Product in WebPos nicht möglich (OFBIZ-7719).
- Party Suche lässt Billing Address und Shipping Address außer acht. (OFBIZ-7709).
- Die Simple-Method createWorkEffortSkillStandard kann nicht gefundend werden, weil Sie als Simple-Method aufgerufen wird, aber zu entity-aut service konvertiert wurde. (OFBIZ-10524).
- Suche in Ecommerce funktioniert nicht mehr (OFBIZ-10531).
- Nach der Eingabe von Daten in der Rechnungserstellung werden diese als Java-Objekte dargestsellt (OFBIZ-10425).