Jump to content

Recommended Posts

Hallo allerseits,

ich hatte bereits beim Support nach einer Lösung für diese Anforderung nachgefragt. Leider ist so etwas derzeit nicht möglich/vorgesehen.

Ich habe eine Smap zur Erfassung von Leistungsbelegdaten unserer Servicetechniker erstellt. In dem daraus resultierenden Report sind einige Informationen enthalten, die die Kunden nicht erhalten sollen/müssen.
Daher war es meine Frage, ob es möglich ist, aus einer Smap zwei unterschiedliche Reports zu genrieren und die dann auch an unterschiedliche Empfänger zu senden.

Da das derzeit nicht möglich/vorgesehen ist, habe ich eine Alternativlösung gesucht.

Die Lösung ist, die Daten aus der Smap in eine Word-Datei einzutragen, diese dann als PDF-Datei abzuspeichern und per eMail an die Kunden zu senden.

Manuell ist das natürlich kein Problem. Man kann sich aus dem Report ja alles herauskopieren und in ein neues Dokument einsetzen. Aber wir wollen durch die Digitalisierung ja weniger Arbeit haben und nicht mehr.

Nach einigen Recherchen und Tests habe ich eine zufriedenstellende Lösung über VBA-Makros erstellt.

Da die Reports per eMail hereinkommen und auch wieder per eMail verschickt werden, habe ich das in Outlook programmiert.

In der Smap habe ich dazu einen eMailversandbaustein eingebaut, der alle relevanten Daten mit entsprechenden Bezeichnungen in den Text schreibt. Weiterhin wird hier der Standard-Report als Word-Datei eingefügt.

Die eMail wird auf einem virtuellen Rechner mit Outlook 365 empfangen.
Im Outlook habe ich im Visual Basic Editor (zu starten über Alt+F11) im Projekt-Explorer (Anzeige über Strg+R) unter "Microsoft Outlook Objekte" > "ThisOutlookSession" das Makro "Sub Application_Startup()" hinzugefügt, das jeweils beim Start von Outlook ausgeführt wird.
Über den Taskmanager lasse ich Outlook zyklisch starten.
Das Makro Übernimmt dann alle Daten aus dem eMailtext und speichert sie in eine Text-Datei (Der Dateiname enthält zur Identifikation die Auftragsnummer des Einsatzes und den Zeitpunkt des Einsatzbeginns).
Weiterhin wird der Report unter dem gleichen Dateinamen (nur eine andere Extension) gespeichert und per Makro mit Word geöffnet. Aus der geöffneten Word-Datei kann ich die Unterschriften von Servicetechniker und Kunde als Bilddatei speichern. Wie das geht, habe ich bereits unter dem Thema Unterschrift als Bilddatei gepostet.
Auf dem Empfangsrechner ist die eMail damit abgearbeitet und kann gelöscht werden (den vollständigen Report als PDF habe ich mit einem separaten eMailversandbaustein an unsere Serviceabteilung gesendet).

Die nachfolgenden Schritte könnten grundsätzlich auch auf dem Empfangsrechner ausgeführt werden. Aber da wir die Leistungsbelege über eine NoReply-eMailadresse versenden wollen, ist es geschickter, dafür einen zweiten virtuellen Rechner zu verwenden, auf dem diese eMailadresse eingerichtet ist.

Auf dem virtuellen Versandrechner ist ebenfalls Outlook 365 eingerichtet. Auch hier wird Outlook zyklisch gestartet und ein Autostartmakro ausgeführt.
Wenn eine Textdatei mit Leistungsdaten identifiziert wird, werden die Daten ausgelesen und zusammen mit den Unterschriftsdateien in eine Word Vorlage (mit Platzhalten für die entsprechenden Daten) eingetragen.
Diese Word-Datei wird dann für die weitere Bearbeitung (Abrechnung) unter der Auftragsnummer als PDF gespeichert und gleichzeitig per eMail als PDF an den Kunden gesendet.
Zum Schluss werden noch die Textdatei und die Bilddateien zu diesem Auftrag gelöscht.

So lange Textdateien mit Abrechnungsdaten vorhanden sind, wird das Makro wiederholt.

Wenn der entsprechende Ordner leer ist, wird Outlook beendet und ist für den nächsten zyklischen Start bereit.

Den gesamten VBA-Code hier zu posten würde wohl den Rahmen sprengen. Wenn aber jemand Interesse hat, würde ich versuchen, den VBA-Code um sich wiederholdende Arbeitsschritte zu reduzieren und das dann zu posten.  


 

Edited by Rolf Thielmann
Textkorrektur
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...