2015 API

Engeler Marco

AddOn CurrencyUpdater

Durchführung: 20.04.2015 bis 22.05.2015

Umfeld
Die Cybersystems GmbH ist seit 18 Jahren auf dem Markt und entwickelt Lösungen rund um Microsoft Dynamics CRM. Ein Teil der Cybersystems GmbH ist CRMBricks.com. CRMBricks.com spezialisiert sich auf AddOns für Microsoft Dynamics CRM, AddOns sind standardisierte Erweiterungen welche auf jedem CRM Systems der entsprechenden Version installiert werden können. Im Rahmen der IPA soll für Microsoft Dynamics CRM 2015 das AddOn 'CurrencyUpdater' entwickelt werden.
Beim Aufsetzen eines neuen Microsoft Dynamics CRM-System muss eine Basiswährung gewählt werden. Die Umrechnungskurse werden alle auf diese Basiswährung mit dem angegebenen Kurs umgerechnet. Im CRM hat man die Möglichkeit ein Produkt zu erstellen und diesem verschiedene Preislistenelemente hinzuzufügen. Einem Preislistenelement wird unter anderem die Währung angegeben. Nun kann es sein das ein Produkt zum Beispiel drei Preislistenelemente hat, je mit den Währungen Euro, US-Dollar und CHF. Die Basiswährung ist in diesem System CHF. Bis anhin würde jetzt beim Erstellen eines solchen Preislistenelement, welches als Währung Euro hat, den selbst definierten Kurs mitgegeben. Würde man dieses Produkt drei Monate später verkaufen, dann würden der Euro-Preis nicht mehr stimmen.
Mithilfe des AddOns CurrencyUpdater, könnte man zum Beispiel diese Preislistenelemente wöchentlich aktualisieren. Somit würde immer mit dem aktuellen Umrechnungskurs gerechnet. Zudem müssten beim Erstellen einer Währunng der Kurs nicht manuell angeben werden, sondern dieser würde vom AddOn laufend aktualisiert und gesetzt werden.
Das Hauptziel der IPA ist es, das AddOn 'CurrencyUpdater' zu realisieren. Es soll ebenfalls vollständig getestet werden, damit es nachher unseren Kunden zur Verfügung gestellt werden kann.

Aufgabenstellung
Es wird das AddOn CurrencyUpdater realisiert. Das AddOn gliedert sich in 3 Hauptfunktionalitäten:

Umrechnungskurs auf der Entität Währung aktualisieren

  • Der Umrechnungskurs wird für die zur Aktualisierung definierten Währungen im System aktualisiert.

  • Die aktuellen Umrechnungskurse zu der Basiswährung im CRM - System werden mittels Webservice vom Internet abgefragt.

  • Es soll definiert werden können, wie der Umrechnungskurs gerundet wird.

  • Die Aktualisierung funktioniert automatisch und kann periodisch oder manuell ausgeführt werden.


Aktualisieren der Währung von Preislistenelementen

  • Die Preislistenelemente werden anhand des im CRM - System hinterlegten Umrechnungskurses aktualisiert.

  • Es soll definiert werden können, wie die umgerechneten Preise gerundet werden.

  • Die Aktualisierung funktioniert automatisch und kann periodisch oder manuell ausgeführt werden.


Konfigurierbarkeit
Die Grundeinstellungen für das AddOn sollen global konfigurierbar sein. Zusätzlich sollen Einstellungen für die einzelnen Jobs definiert werden können

Lösung
Das Ergebnis dieser Arbeit ist ein AddOn bestehend aus einem Plugin und zwei BatchTasks. Das Plugin holt beim Speichern der neuen Währung über den Webservice den aktuellen Umrechnungskurs und füllt diesen dann in das dafür vorgesehene Feld ab. Einer der beiden BatchTasks sorgt dafür, dass die erstellten Währungen auch auf dem aktuellen Stand bleiben. Er kann sowohl periodisch als auch manuell ausgeführt werden und geht Währung für Währung durch, holt den Umrechnungskurs über die Schnittstelle und aktualisiert das Feld. Der zweite BatchTask geht eine Preisliste nach der anderen durch und holt zu jeder die dazugehörigen Preislistenelemente. Auf diesen ist eine Währung hinterlegten. Der BatchTask geht nun alle durch und holt von der hinterlegten Währung den Wechselkurs und aktualisiert den alten. Zusätzlich wird das Betrag- Feld mit dem aktualisierten Umrechnungskurs neu ausgerechnet.
Einstellungen können über die mitgelieferte Settings-Entität vorgenommen werden.

Fazit
Das Addon CurrencyUpdater konnte mit den gewünschten Funktionen fertiggestellt werden und wird bald zum Vertrieb bereit sein.
Mit meiner Arbeit bin ich sehr zufrieden. Ich hatte Spass daran mein erstes AddOn von Grund auf selbst zu entwickeln.
Ich konnte einiges an Erfahrung sammeln. Zudem ist mir bewusst geworden, wie wichtig ein guter Zeitplan ist, an welchem man sich orientieren kann.