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ü Dateiaus und anschließend Server hinzufügen.
Füllen Sie die Felder so aus, wie Sie das in der folgenden Abbildung sehen. Das Passwortist 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 ofbizaus 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 ofbizolapund 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.xmlvornehmen, die wir im Verzeichnis framework\entity\configfinden.
Suchen Sie den Abschnitt mit diesem " delegator":
Die Zeilen für Derby müssen wir mit "" 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.javaund darin die Funktion:
private static List 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 storeCondnicht 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 createAcctgTransForPurchaseInvoiceim Unterverzeichnis applications\accounting\script\org\ofbiz\accounting\ledger\in der Quellendatei GeneralLedgerService.xmlfinden 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 taxAmountwieder "0". Schließlich wird die Gesamtsumme mit einem Wert invoiceTaxTotalberechnet, in dem gar kein errechneter Wert gespeichert wurde. Daher habe ich diese Stelle ersetzt mit dem Summanden taxAmount. Damit stimmt die Summe wieder.
Читать дальше