Microsoft Dynamics 365 CRM Code Activity zur Erstellung von E-Mails mit PDF-Anhang und Ablage SharePoint.
Die Erzeugung des XRechnung-Descriptors sowie der ZUGfeRD PDF/A Dateien erfolgt auf Basis der Nuget Pakete von s2-industries.com.
Das Leistungspaket Azure Function - ZUGfeRD Rechnungen im Dynamics 365 CRM und Lösungspaket E-Mail Code Activity wird unter MIT Lizenz angeboten, jedoch mit der Einschränkung, dass nur eine ausführbare Version kostenfrei zur Verfügung steht. Der entsprechende Quellcode wird nicht veröffentlicht.
Im Rahmen des Dienstleistungsangebotes der froMOS GmbH kann die Lösung kundenspezifisch erweitert und angepasst werden. Gleichzeitig unterstützt die froMOS GmbH bei der Integration in die Microsoft Dynamics 365 CRM Umgebung und bei der Konfiguration der Azure Function und des Sharepoint.
Dienstleistungen der froMOS GmbH werden auf freiberuflicher Basis von Jens Froherz zum vereinbarten Stundensatz umgesetzt.
Ich freue mich über Ihre Kontaktaufnahme
Je nach gesetzten Parametern kann man mit der Azure Function zu einer Microsoft Dynamics 365 CRM Entität und der vorgegebenen Word-Vorlage eine PDF Datei erzeugen. Handelt es sich bei der Entität umd eine Rechnung, wird automatisch eine XRechnung als ZUGfeRD 2.3 Comfort Format erzeugt und als PDF/A Datei zurückgegeben. Falls ein Sharepoint Scope und eine Seite angegeben sind, wird die PDF Datei im Sharepoint gespeichert und mit der Entität verknüpft. Sharepoint muss so konfiguriert sein im Dynamics CRM, dass die Entität direkt auf die Seite verweist.
Parametername/Typ | Beschreibung |
---|---|
entityId Eingang |
GUID String der einen Dynamics 365 CRM Datensatz in der jeweiligen Entität referenziert |
eln Eingang |
Logischer Name der Dynamics 365 CRM Entität. Wird eine Entität vom Typ invoice übergeben, erfolgt automatisch eine Gernerierung der Rechnung im ZUGfeRD Format |
keysafename Eingang |
Name des Azure Key Vaults, der zur Speicherung von Zugangsdaten und Verkäuferdaten verwendet wird. |
keyset Eingang |
Präfix eines Schlüsselsets im Azure Key Vault, der zur Authentifizierung bei der Erstellung des PDF-Dokuments verwendet wird. Zum Beispiel würde keyset=01 ein geheimnis URL01 abrufen. Über den Keyset Parameter kann die Azure Function mit unterschiedlichen Dynamics 365 CRM Tenants verwendet werden. |
templateId Eingang |
Name des zu verwendenden Word-Templates der Dynamics 365 CRM Entität. |
FileDate Ausgang |
Rückgabe der erzeugten PDF Datei als application/pdf String im Base64 Format |
https://name-der-function-app.azurewebsites.net/api/GetZUGfeRDInvoice?entityId=520b2495-a2b9-ef11-b8e8-7c1e5260e04b&eln=invoice&keysafename=fromoskeysafe&keyset=01&templateId=Rechnung
Die Azure Function benötigt zur Anmeldung im Dynamics 365 CRM Authentifizierungsparameter, die von der Funktion aus dem Azure Key Vault gelesen werden, dessen name als Paramter der Funktion übergeben wurde.
Für die Erzeugung der XRechnung können Verkäuferdaten als Geheimnisse im Key Vault hinterlegt werden.
Die in der Tabelle beschriebenen Geheimnisnamen müssen jeweils im Key Vault mit einer Kombination aus Geheimnis und Keyset gespeichert werden. Für das Geheimnis URL und das Keyset 01 muss z.B. im Key Vault ein Geheimnis URL01 hinterlegt werden.
Die folgenden Geheimnisse-Namen können im Azure Key Vault hinterlegt werden:
Geheimnis | Beschreibung |
---|---|
CLIENTID Pflicht |
Client-Id der Azure App Registrierung mit API Berechtigung Dynamics CRM user_impersonation und Microsoft.Graph User.Read |
SECRETID Pflicht |
Secret-Id der Azure App Registrierung mit API Berechtigung Dynamics CRM user_impersonation und Microsoft.Graph User.Read |
TENANTID Pflicht |
Tenant-Id der Azure App Registrierung mit API Berechtigung Dynamics CRM user_impersonation und Microsoft.Graph User.Read |
URL Pflicht |
URL des relevanten Dynamics 365 CRM Tenants |
SHAREPOINTSCOPE Optional |
Name des SharePoint Scopes: z.B. unternehmen.sharepoint.com |
SHAREPOINTSITE Optional |
Name des SharePoint Seite, für den Dynamics 365 CRM Tenant mit direkter Entitätszuordnung (nicht auf Entitätsbasis Firma oder Kontakt) konfiguriert ist (z.B. CRMDokumente) |
SELLERNAME Optional |
Name Verkäufers zur Verwendung in der XRechnung |
SELLERTAXID Optional |
MehrwertsteuerID des Verkäufers zur Verwendung in der XRechnung |
SELLERVATID Optional |
Steuer-ID des Verkäufers zur Verwendung in der XRechnung |
SELLERCITY Optional |
Stadt des Verkäufers zur Verwendung in der XRechnung |
SELLERZIP Optional |
PLZ des Verkäufers zur Verwendung in der XRechnung |
SELLERSTREET Optional |
Straße des Verkäufers zur Verwendung in der XRechnung |
SELLERGLOBALID Optional |
Global-Id Verkäufers zur Verwendung in der XRechnung |
SELLERGLOBALIDSCHEME Optional |
Schema der Global-Id des Verkäufers zur Verwendung in der XRechnung |
Die EmailAutomationAction Code Activity ist eine Dynamics 365 CRM Code Activity, die in einem Workflow oder einem Plugin aufgerufen werden kann. Sie erzeugt eine E-Mail auf Basis eines Dynamics 365 CRM E-Mail Templates und fügt einen PDF-Anhang hinzu, der auf einem Word-Template basiert. Die Code Activity kann auch ohne Azure Function verwendet werden, um E-Mails mit PDF-Anhang im Format ZUGfeRD XRechnung zu erzeugen und zu versenden. Wahlweise kann die Code Activities auch Anhänge im E-Mail verwenden, die bereits im E-Mail Template hinterlegt wurden sind.
Parametername/Typ | Beschreibung |
---|---|
EmailTemplateName Eingang |
Name des Microsoft Dynamics 365 E-Mail Templates auf dessen Grundlage ein E-Mail erzeugt und gesendet werden soll. |
EmailFromSenderUrlString Eingang |
Dynamische Url der Absender Entität (User / Team) |
EmailFromSenderQueueName Eingang |
Name der Dynamics 365 Warteschlange, die als Absender der E-Mail verwendet wird. Wenn dieser Wert gesetzt ist, wird der EmailFromSenderUrlString Parameter ignoriert. |
WordTemplateName Eingang |
Name des Microsoft Dynamics 365 CRM Word Template auf dessen Grundlage der E-Mail PDF Dateianhang erzeugt wird. |
EmailToDestinationReferenceUrlString Eingang |
Dynamische Url der Dynamics 365 CRM Entität, aus der die E-Mail Adresse des Empfängers der E-Mail gelesen wird. (Kunde, Kontakte, Angebot, Auftrag, Rechnung) |
EmailCCDestinationAddressString Eingang |
E-Mail Adress-String für CC Empfängeradresse |
RegardingEntityReferenceUrlString Eingang |
Dynamics 365 CRM Bezugs-Entität, die mit dem Typ der Vorlagen für E-Mail und Anhangerstellung übereinstimmen muss. |
WithEmailTracingId Eingang |
Erzeugt eine Tracing Id für das E-Mail |
DirectEmailFromTemplate Eingang |
Wenn dieser Wert True ist, werden die Attachments verwendet, die bereits im E-Mail Template definiert sind. Bei False wird das Word Template verwendet, um ein PDF zu erzeugen und als Anhang hinzuzufügen. |
AzureKeyVaultName Eingang |
Bei Aufruf der Azure Function zur Erzeugung von ZUGfeRD XRechnungen sowie Speicherung im Sharepoint, werden Konfigurationsdaten aus dem Azure Key Vault gelesen. Der Name des Azure Key Vault wird hier übergeben. |
AzureKeyVaultSetId Eingang |
Gibt ein Präfix an, mit dem im Azure Key Vault unterschiedliche Parametersets für zur Verwendung von mehreren Dynamics 365 CRM Tenants definiert werden können. |
AzureFunctionKey Eingang |
Gibt den x-functions-key an, der zur authentifizierten Aufruf der Azure ZUGfeRD Function notwendig ist. |
PDFFunctionUrl Eingang |
Definiert die Url der ZUGfeRD XRechnung Azure Function (https://name-der-funktion.azurewebsites.net) |
EmailTracingId Ausgang |
Gibt den String Wert der Tracing-Id an. |
CreatedEmailId Ausgang |
Gibt die Dynamics 365 CRM Id der erzeugten E-Mails an. |
CreatedEmailError Ausgang |
Enthält eine Fehlermeldung, falls bei der Ausführung ein Problem auftritt. |