Fortuna Entwickler Blog

Hier wird Ihnen geholfen

Mails über VWS Mailer versenden

Um aus Webanwendungen E-Mails über den VWS Mail Dienst zu verschicken, benötigt man lediglich die Assembly "Fortuna.Communication.VwsMail". In dieser Assembly gibt es die Klasse "VwsMail" mit der Methode "CreateMail". 

Die Methode wird statisch verwendet:

var mailId = VwsMail.CreateMail(styleKz, ausfuehrung, absender, empfaenger, cc, bcc, betreff, anhaenge, variablenTexte, objRefs);

Die Parameter haben folgende Bedeutung:

Parameter

Beschreibung

styleKzDie ID des E-Mail Styles / HTML Templates, welches für die Mail verwendet werden soll.
ausfuehrungDas Datum und die Uhrzeit, wann diese Mail frühestens verschickt werden soll
absenderDie E-Mail-Adresse des Absenders, z.B. "info@mylife-leben.de
empfaengerDie E-Mail-Adresse(n) des / der Empfänger durch Semikolon getrennt, z.B. "test@mylife-leben.de;bcc@mylife-leben.de"
ccDie E-Mail-Adresse(n) des / der CC-Empfänger durch Semikolon getrennt. Kann auch NULL sein.
bccDie E-Mail-Adresse(n) des / der BCC-Empfänger durch Semikolon getrennt. Kann auch NULL sein.
betreffDer Betreff dieser E-Mail

Weitere
Parameter

Beschreibung

anhaengeListe mit Anhängen, die mitgeschickt werden sollen. Kann auch NULL sein.
variablenTexteListe mit Texten, um die Platzhalter im verwendeten Style zu befüllen. Kann auch NULL sein, wenn es keine Platzhalter gibt, die befüllt werden müssen.
objRefsListe mit OBJ-Nummern, die mit der Mail verknüpft werden sollen, z.B. Versicherungsverträge oder Honorarverträge. Kann auch NULL

Der VWS Scheduler auf IASPROD2 hat einen Job, der alle zwei Minuten nachschaut, ob eine Mail verschickt werden muss. Er erkennt dies am Status 1. Bereits versendete Mails haben den Status 99. Zurück liefert die Methode die ID, unter der die zu verschickende Mail in der Datenbank abgelegt wird.

Wenn eine Mail versendet wird, wird sie auch als PDF in der Tabelle GUTINGIA.MAIL_HEADER archiviert.

Die Styles / Templates, die man zum Versenden nutzen möchte, müssen in der Tabelle GUTINGIA_MAIL_STYLE_KZ vorher angelegt werden. 

Im Modus DEBUG und TEST wird der Empfänger immer durch test@mylife-leben.de ersetzt. Gleiches geschieht mit CC und BCC, sollten diese Felder belegt sein.

ACHTUNG: Stand aktuell gibt es auf Entwicklung und Test keinen Scheduler Job, der die Mails dann auch wirklich verschickt. Dieser existiert nur auf Produktion!!!


Scheduler updaten

Allgemein

Im derzeitigen System existieren zwei Scheduler Services, die für Web-Tasks auf dem Server WEB3 und für VWS-Tasks auf IASPROD2 laufen. Beide Scheduler Programme sind Windows Services und befinden sich in der selben Solution:

Fortuna Scheduler updaten

Um den Fortuna Scheduler zu updaten, muss man zunächst die Solution öffnen. Anschließend stellt man sicher, dass die Build-Configuration auf RELEASE steht für eine Produktivübergabe (Testübergaben finden bei Scheduler in der Regel nicht statt).

Anschließend die gesamte Solution builden. Ist dies erfolgreich, so wechselt man in das Release-Verzeichnis des Projektes "Fortuna.Scheduler.Service". Von hier kopiert man alle DLL-Dateien und die "Fortuna.Scheduler.Service.exe" in ein TEMP-Verzeichnis auf dem Server WEB3.

Nun muss man sich per Remote Desktop auf WEB3 anmelden und den Dienst zunächst stoppen


Wenn dies erledigt ist, können die DLL-Dateien aus dem TEMP-Verzeichnis in das Arbeitsverzeichnis des Scheduler Service kopiert und die vorhandenen Dateien überschrieben werden (Sicherung vorher bietet sich an). Das Arbeitsverzeichnis befindet sich auf WEB3 hier: "C:\Program Files\Fortuna Scheduler"

Sind neue Jobs hinzugekommen oder muss die Konfiguration bestehender Jobs angepasst werden, so muss dies in der Datei "jobconfig.xml" durchgeführt werden. Anschließend kann der Service wieder gestartet werden. Über das Ereignisprotokoll des Betriebssystems kann festgestellt werden, ob der Dienst fehlerfrei gestartet wurde, oder ob Fehler aufgetreten sind. Einige Fehler stellen sich aber auch erst heraus, wenn die ersten Jobs zum ersten Mal ausgeführt werden.

VWS Scheduler updaten

Bei dem VWS Scheduler läuft es ähnlich ab. Nach dem lokalen Builden auf RELEASE-Config, wechselt man in das Release-Verzeichnis des Projekts "Fortuna.Scheduler.VWS". Auch hier nimmt man alle DLL-Dateien und die "Fortuna.VWS.Scheduler.Service.exe" und kopiert sie zunächst in ein TEMP-Verzeichnis auf der Maschine IASPROD2.

Auch hier muss man sich per Remotedesktop anmelden und als erstes den Dienst stoppen. 

Nun werden die DLL-Dateien aus dem TEMP-Verzeichnis in das Arbeitsverzeichnis des Scheduler kopiert (Sicherung vorher). Das Arbeitsverzeichnis ist hier: "C:\myLife\Tools\Scheduler". Wenn Anpassungen an den Jobs durchzuführen sind, dann wird dies ebenfalls in der "jobconfig.xml" gemacht. Nun kann auch dieser Service wieder gestartet werden. Fehler werden im Ereignisprotokoll festgehalten.

Probleme mit DevArt

Hin und wieder kann es bei einer Produktivübergabe zu Problemen mit DevArt kommen. Die äußern sich dadurch, dass es bei der ersten Ausführung eines Jobs nach einer Übergabe zu Fehlern beim Zugriff auf die DB kommt:


Dies liegt daran, dass die Lizenz nicht korrekt in die Anwendung integriert wurde. Um dies zu beheben, muss man im Visual Studio in der Scheduler Solution die Lizenz neu in die Anwendung integrieren:

Bei allen fehlerhaften Assemblies muss der "Fix-Button" gedrückt werden:


Anschließend muss die Solution erneut kompiliert werden und die Dateien im Arbeitsverzeichnis des Scheduler auf WEB3 oder IASPROD2 noch einmal ausgetauscht werden (Dienst vorher beenden und nach dem Kopieren neustarten). 

Scan Programm

Mit der Umstellung auf DBDok wurde es auch notwendig, die Applikation zum Scannen von Dokumenten zu aktualisieren.

Hierzu wurde eine neue Applikation unter .NET erstellt; die Quellen sind im TFS unter /VWS/Tools/ScanToPDF abgelegt. Die Applikation verwendet iTextSharp (über nuget) und TwaiDotNet (referenziert aus /Fortuna/External/DLL) und zudem DevArt. Bei Letzterem ist darauf zu achten, daß die Lizenzinformationen mitgeliefert werden; dies geschieht in Visual Studio 2013 im Projekt über Tools -> Oracle -> License Information.

Danach kann man einfach eine Version als Release erstellen und das bin/Release-Verzeichnis auf den Ziel-PC kopieren. Ggf. kann man in der app.config noch Optionen anpassen; ansonsten ist die Anwendung sofort einsatzbereit.