Nuclet für Währungsumrechnungen und Wechselkursfunktionalität
| Name: | Exchange Rates |
|---|---|
| Package: | org.nuclet.exchangerates |
| Namensraum: | EXR |
| Version: | 1.0.0 |
| Datum: | 12.08.2013 |
Das Wechselkurs-Nuclet beinhaltet keine Währungsentität mehr. Eine Währungsentität muss im Ziel-Nuclet also existieren oder im Rahmen einer Integration angelegt werden. Zwingend notwendig für diese Währungsentität ist, dass ein Attribut existiert, in dem der dreistellige ISO-4217-Währungscode als Identifizierungsmerkmal gespeichert wird (siehe dazu auch Wikipedia). Weitere Voraussetzungen an die Währungsentität entnehmen Sie bitte dem Abschnitt "Integration" auf dieser Seite. Es ist möglich und vorgesehen, die Währung aus dem Currency-Nuclet zu nutzen. |
Das Wechselkurs-Nuclet bietet die Möglichkeit
Wechselkurse zu pflegen
Währnungsbeträge von einer Währung in eine andere zu konvertieren
Wechselkurse über eine Schnittstelle bei der Europäischen Zentralbank (EZB) täglich aktualisieren zu lassen
Das Wechselkurs-Nuclet war bislang mit dem Währungs-Nuclet ("Currency") gebündelt, die Währungsentität wurde nun von der Wechselkursfunktionalität getrennt.
Das Wechselkurs-Nuclet ist geeignet, mit allen Währungsentitäten im Zusammenspiel zu funktionieren.
Das Currency-Nuclet umfasst im Rahmen der .nuclet-Datei
zwei Entitäten (für Wechselkurse und einen Währungsrechner),
zwei Layouts,
diverse Java-Regeln (verteilt auf Packages),
zwei Jobsteuerungen (zur Steuerung des EZB-Schnittstelle einerseits, für Tests andererseits),
eine Strukturdefinition (für den Import von Stammdaten) und
eine Nuclet-Abhängigkeit.
Darüberhinaus werden in der ZIP-Datei folgende Komponenten mitgeliefert:
eine CSV-Datei für Objektimporte
Typ | Name, englisch | Name, deutsch | Kurzbeschreibung |
|---|---|---|---|
Entität | Currency Converter | Währungsrechner |
|
| Exchange Rate | Wechselkurs |
|
Layout | Currency Converter |
| Layout für Entität „Currency Converter“ |
| Exchange Rate |
| Layout für die Entität „Exchange Rate“ |
Java-Package | org.nuclet.exchangerates.facade |
| Java-Regeln für Datenbankzugriffe je Entität |
| org.nuclet.exchangerates.job |
| Java-Regeln zur Steuerung von Jobs („Jobsteuerung“) |
| org.nuclet.exchangerates.logic |
| Geschäftslogik |
| org.nuclet.exchangerates.rule |
| Regeln für Insert-,Update- und Delete-Events |
| org.nuclet.exchangerates.test |
| Java-Regeln zur Steuerung von Tests |
| org.nuclet.exchangerates.wrapper | Wrapper-Klassen als Nuclet-Schnittstelle | ||
| org.nuclet.exchangerates.xml |
| XML-Parserfunktionalität für die EZB-Schnittstelle |
Jobsteuerung | Currency Converter Test |
| Test-Job für Währungskonvertierungen |
| ECB Exchange Rates |
| Fristenjob für die Aktualisierung von Wechselkursen |
Strukturdefinition | Currency Converter |
| Importstruktur für Entität „Currency Converter“ |
Nuclet-Abhängigkeit | org.nuclet.Common |
| allgemeine Helferfunktionalität |
Objektimport | Currency_Converter.csv |
| Stammdatensätze für Entität „Currency Converter“ |
Tabelle 1: Nuclet-Bestandteile
Die Java-Regeln sind in sieben Packages unterteilt:
Regeln für maskengesteuerte Events (org.nuclet.exchangerates.rule)
Regeln zur Steuerung von System-Jobs (org.nuclet.exchangerates.job)
Regeln für die Geschäftslogik (org.nuclet.exchangerates.logic)
Fassaden-Klassen für die Ausführung von Datenbankabfragen je Enität (org.nuclet.exchangerates.facade)
Regeln zum Einlesen und Verarbeiten von MT940-Dateien (org.nucletexchangerates.xml)
Regeln für die Ausführung von Tests (org.nuclet.exchangerates.test)
Die Abhängigkeiten der Packages sind in der folgenden Abbildung veranschaulicht.

Das Wechselkurs-Nuclet ist Java-seitig voll funktionsfähig. Hier eine Übersicht über die auf die einzelnen Packages verteilten Java-Klassen:
Java-Package | Java-Klasse | Kurzbeschreibung |
org.nucket.exchangerates.facade | AbstractCurrencyFacade | Schnittstellendefinition für Datenbankzugriffe auf eine Währungsentität |
| CurrencyFacade | konkrete Ausprägung für Datenbankzugriffe auf eine Währungsentität | |
| CurrencyFacadeFactory | Factory-Klasse für die CurrencyFacade | |
| ExchangeRateFacade | Datenbankzugriffe auf die Entität „Exchange Rate“ |
org.nuclet.exchangerates.job | EcbExchangeRateImporter | Importer-Klasse für die EZB-Schnittstelle |
| EcbExchangeRatesJob | Job für den Aufruf des EZB-Schnittstellenimports |
org.nuclet.exchangerates.logic | CurrencyConverterLogic | Logik für Währungskonvertierungen |
| CurrencyLogic | Validierungslogik für Währungen |
org.nuclet.exchangerates.rule | ConvertCurrencyAmount | Konvertierung in der Währungsrechner-Maske |
| ValidateBaseCurrency | Validierungen hinsichtlich der Existenz einer Basis-Währung |
| SwapCurrencies | Währungstausch (Basis- und Zielwährung) in der Währungsrechner-Maske |
org.nuclet.exchangerates.test | CurrencyConverterTest | Test-Klasse zum Testen von Währungskonvertierungen |
| CurrencyConverterTestJob | Job zum aufruf des Tests von Währungskonvertierungen |
| org.nuclet.exchangerates.wrapper | AbstractCurrencyWrapper | Wrapper-Objekt für Schnittstellendefinition auf Währungsentität |
| CurrencyWrapper | konkrete Implementierung des Wrapper-Objektes für Währungen | |
org.nuclet.exchangerates.xml.sax | EcbExchangeRate | Wrapper-Klasse für den Import über die EZB-Schnittstelle |
| EcbExchangeRateHandler | XML-Handler für die EZB-Schnittstelle |
Tabelle 2: Java-Package-Struktur
Anwendungsspezifische Anpassungen sollten in den Java-Regeln i.A. nicht notwendig sein.
Die Integration des Wechselkurs-Nuclets erfolgt in 10 Schritten:
Download
Nuclet-Import
Objektimport anlegen
Objektimport ausführen
Zuordnung von Regeln im Regelmanagement
Alle Integrationschritte werden im folgenden im Detail erläutert.
Schritt 1: Download
Download der ZIP-Datei „ExchangeRates-v1.0.0.zip“ auf der Nuclos-Webpage unter „Nuclos Services“ > „Download“ > „Nuclet Download“. Das ZIP anschließend lokal entpacken.
Schritt 2: Nuclet-Import
Import des MT940-Nuclets unter „Konfiguration“ > „Nuclet Management“ > „Importieren“ in Ihre bestehende Nuclos-Instanz, Auswahl der Datei „ExchangeRates-v1.0.0.nuclet“
Beim Import werden Warnhinweise erscheinen, weil die Währungsentität als Referenzentität in den Entitäten "Wechselkurs" und "Währungsrechner" fehlt. Dazu mehr im Schritt 4. |
Schritt 3: Anlegen einer Währungsentität oder Import des Currency-Nuclets
Voraussetzung für das Funktionieren des Wechselkurs-Nuclet ist die Existenz einer Währungsentität mit folgenden Pflichtfeldern:
| Attribut | Funktion | Umsetzung im Currency-Nuclet |
|---|---|---|
| ISO-4217-Code | Identifizierung der Währung über den dreistelligen Währungscode (siehe Wikipedia) | iso4217Code |
| Anzahl der Nachkommastellen | die Anzahl der Nachkommastellen des Währungssystems bestimmen die Nachkommastellen der Wechselkurse | numberOfDigits |
| Basiswährung? | Definition einer system-eindeutigen Basiswährung (hier: EUR) | isBaseCurrency |
Die Währungsentität "Currency" im Currency-Nuclet genügt diesen Voraussetzungen.
Schritt 4: Anpassungen im Entitäten-Wizard
Über den Entitäten-Wizard muss dann die tatsächlich genutzte Währungsentität als Referenzentität in die Attribute "Basiswährung" und "Zielwährung" der beiden Entitäten "Wechselkurs" und "Währungsrechner" eingetragen werden.
Schritt 5: Objektimporte anlegen
Objektimport („Konfiguration“ > „Import & Export“) anlegen zur Strukturdefinition „Currency Converter“. Dazu kann die mitgelieferte CSV-Dateien „Currency_Converter.csv“ (zu finden im Unterverzeichnis „data“ der ZIP-Datei) verwendet werden.
Achtung: Voraussetzung ist die Existenz der zwei Währungen EUR und USD. |
Schritt 7: Zuordnung von Regeln im Regelmanagement
Über das Regelmanagement muss die Java-Regel ValidateBaseCurrency der tatsächlich genutzten Währungsentität zugeordnet werden:
| Quellnuclet | Regeltyp | Regel | Zielnuclet | Entität |
|---|---|---|---|---|
| ExchangeRates | Aktualisieren | ValidateBaseCurrency | das Nuclet, in dem die tatsächlich von Ihnen genutzte Währungsentität liegt | ihre eigene Währungsentität |
| ExchangeRates | Anlegen | ValidateBaseCurrency | das Nuclet, in dem die tatsächlich von Ihnen genutzte Währungsentität liegt | ihre eigene Währungsentität |
| ExchangeRates | Löschen | ValidateBaseCurrency | das Nuclet, in dem die tatsächlich von Ihnen genutzte Währungsentität liegt | ihre eigene Währungsentität |
Schritt 8: Anpassungen in den Java-Regeln
Schritt 9: Layout-Anpassungen
Im Layout "Currency" können Sie die Wechselkurse als Unterformular einbinden.
Schritt 10: aktuelle Wechselkurse einlesen
Über den Job ECB Exchange Rates lassen sich nun die aktuell gültigen Wecheselkurse einlesen. Es werden nur diejenigen Währungen berücksichtigt, die im System vorliegen.
Einrichten der Jobsteuerung
Öffnen der Jobsteuerung „ECB Exchange Rates“ unter „Administration“ > „Jobsteuerung“
Konfiguration von Startdatum, Startzeit, Intervall, E-Mail-Benachrichtigung und Optionen zum Löschen des Log-Infos.
Jobsteuerung aktivieren, falls der Job im konfigurierten Rhythmus automasiert ausgeführt werden soll. Alternativ lässe sich der Job über die Jobsteuerung auch manuell ausführen.
Betrieb
Die importierten Daten werden in der Entität für Wechselkursee („Exchange Rate“) gespeichert.
Die Masken für Währungen und Wechselkurse sind unter dem Menüpunkt „Wechselkurse“ zu finden. Dies ist über den Entitäten-Wizard jederzeit zu ändern.
Der Währungsrechner ist ebenfalls unter dem Menüpunkt „Wechselkurse“ zu finden. Sollten Sie ihn nicht nutzen wollen, dann können Sie ihn über den Entitäten-Wizard aus dem Menü entfernen.
Das Nuclet ist zur Zeit so eingestellt, dass alle Wechselkurse in der Basiswährung des System angezeigt werden. Da die Aktualisierung über die EZB-Schnittstelle läuft, ist der Euro (EUR) als Basiswährung hinterlegt. Sie können das Nuclet auch leicht so einstellen, dass in jeder Währung der Wechselkurs zum Euro angezeigt wird: Dazu öffnen Sie das Layout „Currency“ und tauschen den eingetragenen Wert im Feld „Fremdschlüssel“ (Unterformular „Exchange Rates“) von „baseCurrency“ auf „counterCurrency“.
Einrichten von Benutzerrechten (optional)
Zugriffsrechte für existierende Benutzergruppen für Layouts, Entitäten, Attribute und Attributgruppen können in Nuclos wie üblich über drei Wege festgelegt werden (siehe dazu http://wiki.nuclos.de):
allemeine Einstellungen für Entitäten unter „Administration“ > „Benutzergruppen“
statusabhängige Einstellungen für Attribute/Attributgruppen unter „Konfiguration“ > „Statusmodell“
datensatzspezifische Einstellungen unter „Konfiguration“ > „Datenquellen“ > „Datensatzfreigabe“
Für einfache Tests von Währungskonvertierungen steht die Währungsrechner-Maske zur Verfügung.
Für erweiterte Tests von Währungskonvertierungen nutzen Sie bitte die Klasse org.nuclet.currency.test.CurrencyConverterTest. Diese können Sie auch gerne auf Ihre eigenen Bedürfnisse anpassen und erweitern. Die Klasse wird vom org.nuclet.currency.test.CurrencyConverterTestJob aufgerufen, und dieser lässt sich über die Jobsteuerung „Currency Converter Test“ bei Bedarf (am besten manuell) ausführen.
| Version | Datum | Typ | Änderungen |
|---|---|---|---|
| 1.0.0 | 12.08.2013 | initiale Version | Trennung von Wechselkursfunktionalität und Währungsentität aus Currency-Nuclet |