Axel Eberhard Leistner

Apache OFBiz

Schnellstarterbuch

1. Auflage 2014

Alle Rechte, auch für die Übersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren) ohne schriftliche Genehmigung des Verlages reproduziert, vervielfältigt oder verbreitet werden.

Alle technischen Angaben und Programme in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt. Trotzdem sind Fehler nicht ganz auszuschließen. Verlag und Autor übernehmen keine Gewähr für die Funktion einzelner Programme oder Teile derselben. Insbesondere wird keinerlei Haftung übernommen für eventuelle aus dem Gebrauch resultierende Folgeschäden.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenzeichen usw. in diesem Werk berechtigen auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutzgesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ®-Symbol in diesem Buch nicht verwendet.

Impressum:

Apache OFBiz Schnellstarterbuch
Axel Eberhard Leistner
published by: epubli GmbH, Berlin, www.epubli.de

Copyright: © 2014 Axel Eberhard Leistner
Verlag: epubli GmbH, Berlin, www.epubli.de
ISBN 978-3-8442-9251-0

Inhaltsverzeichnis

1 Vorwort

1.1 Was ist Apache OFBiz?

1.2 Warum E-Commerce?

2 Vorbereitung für den Betrieb von OFBiz

2.1 Datenbankeinrichtung: PostgreSQL

3 Anpassungen im Quellcode

4 Automatische Erstkonfiguration

5 Weitere Konfigurationen

6 Bedarfsauftrag

7 Kundenauftrag

8 Retoure des Kundenauftrags

9 Buchungen

10 Manuelle Konfiguration des Katalogs

11 Aktionen

12 Produktvarianten

13 Kombinationsprodukt

14 Weitere Anpassungen der Quellen

15 Fazit

1 Vorwort

OFBiz wird bereits seit vielen Jahren als Open Source-Lösung zum Download angeboten. Bisher habe ich aber noch kein Buch finden können, das die Bedienung dieses sehr leistungsfähigen Werkzeugs ausreichend beschreibt. In deutscher Sprache gibt es bis heute gar keine Literatur.

Diese Lücke will ich mit dem Schnellstarterbuch schließen.

Ziel dieses Schnellstarterbuches ist es, eine Konfiguration für OFBiz zu erarbeiten, mit der eine Firma einen Webshop betreiben kann. Dazu werden einfache Konfigurationen eines "Lagers" vorgenommen, Bestellungen mit "Lieferanten" durchgeführt und Aufträge von "Online-Kunden" vollständig im System bearbeitet. Dabei wird auch die Möglichkeit von Retouren gezeigt.

Im Produktkatalog kommen Kategorien zum Einsatz, mit denen Produkte getrennt werden können, wenn diese beispielsweise mit verschiedenen Mehrwertsteuersätzen abgerechnet werden müssen.

Weiterhin werden einfache Konfigurationen von "Aktionen" vorgestellt. Abschließend wird im Schnellstarterbuch neben "einfachen" Produkten die Konfiguration von Varianten-Produkten und Kombinations-Produkten aufgezeigt und ausführlich dargestellt.

1.1 Was ist Apache OFBiz?

OFBiz steht für "Open For Business" und ist ein Open Source Root-Projekt der Apache Software Foundation. Es handelt sich dabei um eine frei verfügbare betriebswirtschaftliche Standardsoftware, die bereits sehr umfangreiche Anwendungen für komplexe E-Commerce-Prozesse enthält und (mit Hilfe von Dienstleistern) flexibel an eigene Bedürfnisse angepasst werden kann.

Auch wenn OFBiz mit geringem Installations- und Konfigurationsaufwand „out of the box“ verwendet werden kann, handelt es sich nicht um ein sofort gebrauchsfähiges Software-Produkt. Vielmehr ist OFBiz ein Java-basiertes Shopping-Framework auf der Grundlage von J2EE (Java2 Enterprise Edition). OFBiz kann damit in fast jeder nur möglichen Hard- und Softwareumgebung betrieben werden.

Das Framework baut auf einem gemeinsam genutzten Unternehmensdaten-Modell und einem Geschäftsprozess auf, in das mehr als 100 Mann-Jahre Entwicklung eingeflossen sind. Es stellt die gesamte Basis-Infrastruktur bereit, auf der die Funktionalität von OFBiz aufbaut.

Das Apache Open For Business-Projekt ist ein Open Source Entwicklungsautomatisierungs-Softwareprojekt mit Lizenz nach ‚Apache License Version 2.0’. Das heißt: Open Source ERP, Open Source CRM, Open Source E-Business / E-Commerce, Open Source SCM, Open Source MRP, Open Source CMMS/EAM usw.

Apache OFBiz ist eine Grundlage für bewährte, sichere und skalierbare Unternehmenslösungen.

Apache OFBiz liefert eine große Anzahl an Funktionen wie beispielsweise:

Im Zentrum steht das Open-Source-Framework OFBiz als Core-Anwendung. Dazu gehören viele vorkonfigurierte und angepasste Module aus der OFBiz-Welt.

1.2 Warum E-Commerce?

E-Commerce ist aus der heutigen Geschäftswelt nicht mehr wegzudenken, denn E-Commerce

OFBiz ist sowohl im Endkundenbereich (Business2Customer) als auch zur engeren Anbindung von Vertriebspartnern im Großhandel einsetzbar (Business2Business).

Da OFBiz OpenSource-Software ist, kann man seine Komponenten viel einfacher und genauer an die Bedürfnisse eines Unternehmens oder einer Anwendung anpassen, als dies mit kommerziell vertriebener Software möglich wäre. Zudem bewirkt die Beteiligung der großen Benutzergemeinde von OFBiz an der Entwicklung, dass diese Entwicklung immer und überall dort kontinuierlich voranschreitet, wo es nötig ist und nicht auf die von Bereich zu Bereich schwankende Aufmerksamkeit eines einzigen Herstellers angewiesen ist.

2 Vorbereitung für den Betrieb von OFBiz

OFBiz als Apache-Projekt wird mit einer Datenbank ebenfalls aus dem Haus Apache mit dem Namen "Derby" ausgeliefert. Diese Datenbank sollte aber nur zum Test und für interne Zwecke gebraucht werden. Im produktiven Einsatz ist Derby ungeeignet, worauf Apache selbst ausdrücklich hinweist.

Oft wird im Web die offene Datenbank mySQL eingesetzt. Dies könnte man auch in Verbindung mit OFBiz tun. Jedoch sollte man davon Abstand nehmen, da im Einsatz als Massenmarkt-Webshop Inkonsistenzen im Moment der Datenspeicherung auftreten könnten. Für den Massenmarkt wurde mySQL einfach nicht konzipiert.

Sicherer und ratsam ist der Einsatz einer "relationalen Datenbank". Natürlich wäre hier ein Einsatz des kommerziellen Oracle unsinnig, weil OFBiz als Open-Source-Produkt selbst kostenlos betrieben werden kann. Aber hier gibt es ja auch Datenbanken auf Open-Source-Basis wie PostgreSQL.

Die Einrichtung von PostgreSQL ist recht einfach, jedoch nicht allgemein bekannt. Darum wollen wir uns im nächsten Kapitel die Einrichtung und Verbindung von PostgreSQL mit OFBiz genauer ansehen.

Für die Tests als "Schnellstarter" sollten Sie die Original Derby-Einrichtung verwenden, da man hier mit einfachen Kommandos die Tabellen wieder löschen kann. In der build.xml-Datei gibt es dazu den Target-Eintrag "clean-all" bzw. "clean-data". Das folgende Unterkapitel ist also für den Einsatz in der Produktivumgebung gedacht.

2.1 Datenbankeinrichtung: PostgreSQL

Die Datenbank PostgreSQL wird in Linux-Versionen - wie beispielsweise Ubuntu - bereits integriert. Für Windows oder MacOS kann man die aktuelle Version unter der Seite http://www.postgresql.org/download/ auswählen und downloaden. Die aktuelle Version trägt die Bezeichnung 9.3.2 und ist mit einem intuitiven Installationspaket leicht und schnell installiert.

Nach der Installation des Basispaketes muss man auch eine JDBC-Einrichtung vornehmen. Auf http://jdbc.postgresql.org/download.html werden verschiedene Driver-Versionen angeboten. Kopieren Sie den PostgreSQL-Treiber nach framework\entity\lib\jdbc, der zu Ihrer Java-Umgebung passt. Für 1.6 ist das die JDBC4-Version, bei Verwendung von 1.7 oder 1.8 sollten Sie die JDBC41-Version verwenden.

Die Installation mit Hilfe der Datei postgresql-9.3.2-3-windows-x64.exe sieht wie folgt aus:

Auf der Startseite klicken Sie den Schalter Next an. Ebenso bestätigen Sie das Installationsverzeichnis und das Datenverzeichnis. Dann geben Sie ein Passwort für die Datenbank ein. Bestätigen Sie die Portadresse und die Einstellung der Ländereinstellungen ("Locale").

Drücken Sie dann zum Start der Installation erneut den Schalter Next.

Nach erfolgter Grundinstallation sollen Sie den "Setup Wizard" starten, um weitere Pakete einzurichten. Wir brauchen zumindest die JDBC-Treiber, aber auch die ODBC-Treiber könnten für Sie interessant sein.

Nach dem Download der Dateien werden die Pakete eingerichtet. Bestätigen Sie die Installationsverzeichnisse und starten Sie die Einrichtung der Pakete.

Damit ist die Datenbank PostgreSQL einsatzbereit.

Starten Sie nun die Bedienungsoberfläche "pgAdmin III". Auf der linken Seite des Fensters sehen Sie den bereits startbereiten Datenbank-Server. Drücken Sie einmal auf die Zeile Server(1), so dass diese Zeile markiert wird.

Nun wählen Sie im Menü Datei aus und anschließend Server hinzufügen.

Füllen Sie die Felder so aus, wie Sie das in der folgenden Abbildung sehen. Das Passwort ist genau das, das Sie bei der Installation von PostgreSQL angegeben hatten.

Nun sehen Sie im linken Fenster zwei angelegte Server. Wählen Sie den neu angelegten Server ofbiz aus und darunter die Zeile Datenbanken (1). Drücken Sie die rechte Maustaste und aktivieren Sie den Unterpunkt Neue Datenbank.

Geben Sie nun den Namen der Datenbank, den Eigentümer und einen Kommentar ein.

Wiederholen Sie diese Einrichtung mit den Eingaben für die Tabellen ofbizolap und ofbiztenant.

Damit haben wir auf der PostgreSQL-Datenbank die Basis für OFBiz geschaffen. Jetzt brauchen wir ein paar Anpassungen in den Konfigurationsdateien von OFBiz selbst.

Wir müssen noch Änderungen in der Datei entityengine.xml vornehmen, die wir im Verzeichnis framework\entity\config finden.

Suchen Sie den Abschnitt mit diesem "delegator":

Die Zeilen für Derby müssen wir mit "<!--" und "-->" auskommentieren:

Im Gegenzug entkommentieren wir die PostgreSQL-Zeilen:

Das Gleiche machen Sie in den Abschnitten mit diesen "delegator"-Zeilen:

Als letzte Vorbereitung für den Einsatz von PostgreSQL prüfen Sie die Einträge zu den folgenden "datasource"-Abschnitten. Insbesondere müssen Sie die Passwörter prüfen und die Einstellung der Treiber.

Damit ist unsere Anbindung zwischen PostgreSQL und OFBiz abgeschlossen.

3 Anpassungen im Quellcode

Prinzipiell wollen wir in diesem Schnellstarterbuch kennenlernen, wie man OFBiz in der Fassung verwenden kann, die im Internet zum Download angeboten wird. Allerdings habe ich in einigen Dateien die deutschen Texte überarbeitet und das Einrichtungspaket leicht verändert. Zudem gibt es weitere Dateien, die ich in einer neuen deutschsprachigen Version im Austausch gegen die Originaldateien eingebunden habe.

In einem Fall, den wir uns hier in einer Übung genauer ansehen werden, ist ein Fehler aufgetreten. Das Problem sehen wir sofort im Fall eines Beschaffungsauftrages bei der Berechnung der Mehrwertsteuer. Die Behebung kann auf folgende Weise stattfinden:

Im Verzeichnis applications\accounting\src\org\accounting\tax\ suchen wir die Datei TaxAuthorityServices.java und darin die Funktion:

private static List<GenericValue> getTaxAdjustments(…)

Im folgenden Textausschnitt soll die Abfrage an die Datenbank aufgebaut werden. Hierbei wird im Original unter anderem der "Laden" als Kriterium der Suche verwendet (storeCond). Da aber bei einem Beschaffungsauftrag dieser "Laden" gar nicht zu den Eingabeparametern gehört, ist der Wert entsprechend leer und die Mehrwertsteuer kann nicht berechnet werden. Mein Vorschlag ist nun der, dass im unten markierten Text storeCond nicht mehr als Kriterium verwendet wird. Die Originalzeile des Quellcodes habe ich als kommentierte Zeile im Text belassen.

Mit dieser Änderung wird dann auch bei einem Beschaffungsauftrag die Mehrwertsteuer berechnet.

Eine weitere Quellcode-Stelle möchte ich gerne abändern, da ich während der Beispiele festgestellt habe, dass eine eigentlich korrekt berechnete Mehrwertsteuer gar nicht auf der Bildschirmseite angezeigt wird. In der Methode createAcctgTransForPurchaseInvoice im Unterverzeichnis applications\accounting\script\org\ofbiz\accounting\ledger\ in der Quellendatei GeneralLedgerService.xml finden wir folgende Passage:

An der ersten markierten Stelle habe ich eine Debug-Meldung eingebaut, die mir beim Testen bestätigt, dass an dieser Stelle noch der richtige Wert berechnet wurde. Die zweite Markierung zeigt eine auskommentierte Passage. Hier wird eindeutig der zuvor richtig berechnete Wert überschrieben. Danach ist taxAmount wieder "0". Schließlich wird die Gesamtsumme mit einem Wert invoiceTaxTotal berechnet, in dem gar kein errechneter Wert gespeichert wurde. Daher habe ich diese Stelle ersetzt mit dem Summanden taxAmount. Damit stimmt die Summe wieder.

Die Ersteinrichtung wird unterstützt durch die Datei SetupEvents.xml im Verzeichnis \applications\commonext\script\org\ofbiz\setup. Die ersten Änderungen für die hier vorgestellte DEUTSCHE Version finden wir in der Methode setupDefaultGeneralLedger. Im Wesentlichen geht es um die Namen des Steuerformulars, die Währung und zwei Stammdatendateien für die Erstellung des Buchhaltungsschemas.

Die nächsten Änderungen für die hier vorgestellte Deutsche Version finden wir in der Methode createProductStoreWithDefaultSetting. In zwei Dateien mit Stammdaten wurden hier die englischen Texte des Originals auf Deutsch übersetzt.

Die letzten Änderungen für die hier vorgestellte Deutsche Version finden wir in der Methode createUpdateProductInCategory. Hier wird die Währung auf EUR umgestellt.

Im Verzeichnis \applications\accounting\data brauchen wir eine Datei mit Namen SKR04Accounts.xml. Diese Datei ist sehr umfangreich, darum beschränke ich mich hier auf einen Auszug, der zur Durchführung der Aufgaben in diesem Schnellstarterbuch ausreichen sollte.

Im Verzeichnis \applications\commonext\data brauchen wir eine Datei mit Namen GlSetupData.xml. Diese Datei ist ebenfalls sehr umfangreich. Darum beschränke ich mich hier auf einen Auszug, der zur Durchführung der Aufgaben in diesem Schnellstarterbuch ausreichen sollte.

Damit das "Finanzamt" auch im System erkannt wird, brauchen wir eine neue Datei im Verzeichnis \applications\accounting\data. Wir nennen diese Datei DeuTaxAuthority.xml und geben in dieser Datei Folgendes ein:

Um diese Datei auch im System laden zu können, editieren wir die Datei mit Namen ofbiz-components.xml im Verzeichnis \accounting\.

Alle XML-Dateien mit der Vorsilbe "Deu" sind im Wesentlichen deutsche Übersetzungen der englischen Originaldateien. Interessant ist aber sicher auch die Datei DeuTaxAccountingGroups.xml im Datenverzeichnis:

Mit diesen Änderungen und Erweiterungen können wir die Aufgaben der folgenden Kapitel durchführen. Wenn in Ihren Bildschirmdarstellungen an Stelle der deutschen Texte dieses Buches die englischen Originaltexte zu sehen sind, macht das für die Funktion selbst keinen Unterschied. Jedoch ist es viel zu aufwendig, alle Änderungen in diesem Buch zu veröffentlichen.

4 Automatische Erstkonfiguration

Wenn alle Quelldateien vorbereitet sind, starten wir den Einrichtungs-vorgang mit einem ant-Kommando und dem Target-Modul "load-extseed". Damit werden alle Java-Dateien übersetzt und die Datenbank vollständig für den ersten Einsatz aufgebaut.

Da wir für die Administration einen "Administrator" benötigen, starten wir anschließend ein weiteres ant-Kommando mit dem Target-Modul "create-admin-user-login". Dabei öffnet sich ein Eingabefenster, in dem wir den Namen des Administrators eingeben. Standard ist dabei admin, jedoch können Sie auch jeden beliebigen anderen Namen nehmen. Das erste Passwort wird auf ofbiz gesetzt.

Die automatische Erstkonfiguration des Systems mit unseren Stammdaten starten wir im Browser mit dem Aufruf:

Dabei werden wir zur Eingabe des Namens des Administrators und des Passwortes aufgefordert.

Unmittelbar nach Drücken des Schalters Anmelden werden wir erneut zur Eingabe des ersten Passwortes aufgefordert, aber auch zur zweimaligen Eingabe eines neuen Passwortes.

Die Bildschirmausgaben hängen nun vom gewählten Layout ab. Im Original erscheint alles in einem Fenster mit schwarzem Hintergrund. Das sieht in einem Buch nicht vorteilhaft aus. Darum habe ich aus den Layoutvorlagen im OFBiz-Menü ein Layout mit dem Namen BLUELIGHT ausgewählt.

Nach der Änderung des Passwortes können wir in einer ersten Eingabemaske die wichtigsten Daten unserer Firma eingeben.

Weitere Daten unserer Firma werden wir zu einem späteren Zeitpunkt in den dazu vorgesehenen Eingabemasken vornehmen.

Nach dem Drücken des Schalters Speichern erscheint auf dem Bildschirm eine Übersichtsseite mit den bisher eingegebenen Daten unserer Firma.

Wie man schnell erkennt, sind trotz der Auswahl der deutschen Sprache noch nicht alle Elemente tatsächlich "deutsch". Das liegt nicht daran, dass ich in der Übersetzung etwas vergessen hätte. Vielmehr gibt es immer noch Quelltext, der die Ausgabe nicht in die ausgewählte Sprache übersetzt. Daran wollen wir uns hier aber nicht stören.

Auf eine Besonderheit möchte ich im Zusammenhang mit dem Eintrag im Feld "Bundesland" hinweisen. Dieses Feld ist in der Auswahl beschränkt auf die Bundesländer, die zum Staat im Feld Land passen. Im Original-OFBiz ist die USA als Standardeintrag vorgegeben. Darum müssen Sie zunächst das Land gegen "Deutschland" austauschen, bevor Sie eines der Bundesländer auswählen können.

Nach Drücken des Schalters Speichern sehen Sie die Eingaben im Profil-Übersichtsfenster für Akteure.

Nachdem wir im Unterfenster "Organisation" die Dateneingabe für die Firma abgeschlossen haben, wechseln wir in das Unterfenster Einrichtungen. Der Begriff "Einrichtung" soll hier für unser "Lager" stehen.

Hier ist allgemein der Ort gemeint, an dem wir unsere Produkte vor dem Verkauf lagern. Das kann in einem kleinen Laden auch der "Laden" selbst sein. Da wir