Dieses Projekt automatisiert die Verarbeitung von E-Mails im Rahmen des Systems CDESK. Es umfasst das Laden neuer E-Mails, die Identifizierung konkreter Aktionen auf Basis des E-Mail-Inhalts und die Durchführung von Operationen wie die Erstellung von Diskussionen oder Anforderungen gemäß den gewonnenen Informationen.
Das Skript ist als Azure Function App erstellt, als Alternative zur lokalen dockerisierten Version. Da es in der Cloud läuft, können die Logs der Anwendung nicht über eine lokale Anwendung angezeigt werden; stattdessen sind sie im Azure-Dienst verfügbar. Dieses Handbuch bietet eine schrittweise Anleitung zur Erstellung einer Function App mithilfe von Visual Studio Code. Für andere Methoden, falls erforderlich, sehen Sie sich die offizielle Dokumentation von Microsoft an.
Dieses Skript dient als Beispiel für die Verarbeitung von Daten in CDESK und die Automatisierung der Objekterstellung – in diesem Fall die Verarbeitung von E-Mails und die Erstellung von Anforderungen mit Diskussion.
function_app.py
Der Haupteinstiegspunkt der Anwendung. Das Skript wird alle 5 Minuten ausgeführt, initialisiert die Verbindung zu CDESK, lädt neue E-Mails, verarbeitet jede E-Mail gemäß dem Aktionscode und meldet sich nach Abschluss ab.
ConnectionController.py
Regelt die Verbindung zur CDESK-API. Verwaltet den Anmeldevorgang, hält die Sitzung aufrecht und führt GET- und POST-Anfragen mit der nötigen Authentifizierung aus.
ObjectController.py
Enthält Methoden zur Interaktion mit CDESK-Objekten wie E-Mails und Anforderungen. Es umfasst Funktionen zum Laden von E-Mails, zu deren Verarbeitung und zur Erstellung von Diskussionen oder Anforderungen auf Basis des E-Mail-Inhalts.
LoggerController.yml
Wird zur Ausgabe von Log-Meldungen in die Logs der Function App verwendet.
docker-compose.yml
Definiert die Docker-Umgebung für die Ausführung des Skripts zur Verarbeitung von E-Mails. Es legt die nötigen Umgebungsvariablen für die Verbindung zu CDESK fest und spezifiziert die Netzwerkkonfigurationen.
last_email_id.txt
Ein Dokument mit der ID der zuletzt verarbeiteten E-Mail.
Zuerst müssen Sie mindestens eine E-Mail im Bereich Nachrichtenverarbeitung -> Nachrichtenverarbeitung mit einer bestimmten Inhaltskombination haben.
Diese E-Mail sollte eine Kombination aus Großbuchstaben und Zahlen mit einer Länge von 6 bis 8 Zeichen enthalten. Diese Kombination kann entweder im Betreff oder im Text der E-Mail angegeben sein und stellt die Paketnummer dar, die das Skript verarbeitet. Außerdem kann die E-Mail Wörter über den Zielort enthalten (z. B. Zielort: Testovacia 11, Bratislava), die der neu erstellten Anforderung als benutzerdefiniertes Feld hinzugefügt werden.
Beispiel einer E-Mail:
Betreff: Versandbenachrichtigung NK123455
Text: Versandbenachrichtigung NK123455. Zielort: Nová 34, Bratislava. Nur für Testzwecke verwendet.
Zuerst benötigen Sie ein Benutzerfeld, das das Skript verwendet und das bei der Verarbeitung einer E-Mail der neu erstellten Anforderung hinzugefügt wird. Zur Erstellung eines neuen Feldes können Sie nach diesen Schritten vorgehen:


Nach der Erstellung des Benutzerfeldes müssen die folgenden Daten aus CDESK im Skript eingestellt werden (als Umgebungsvariablen in der Datei docker-compose.yml):



Sie finden sie im Menü / in den Kacheln -> Konfigurationsdatenbank (oder CMDB) -> Benutzerdefinierte Felder -> Benutzerfelder.
Finden Sie anschließend das gewünschte Benutzerfeld, öffnen Sie es und suchen Sie in der URL-Adresse seine ID.
Finden Sie anschließend das gewünschte Benutzerfeld, öffnen Sie es und suchen Sie in der URL-Adresse seine ID.
Sie finden sie im Menü / in den Kacheln -> Konfigurationsdatenbank (oder CMDB) -> Benutzerdefinierte Felder -> Basiseigenschaften
Außerdem muss zur Visualisierung der von diesem Skript generierten Logs ein Volume-Mapping auf ein Verzeichnis auf dem lokalen PC oder Server eingestellt werden. Dieses Verzeichnis kann /logs in der Logs-Anwendung sein, das speziell zu diesem Zweck erstellt wurde.
Suchen und installieren Sie die folgenden Erweiterungen:


Name: ein beliebiger Ressourcenname, zum Beispiel my-email-processing-script
Runtime stack: Wählen Sie, wenn möglich, eine neuere Python-Version, zum Beispiel Python 3.11.
Standort der Ressourcen: Wählen Sie einen Standort, der geografisch in Ihrer Nähe liegt.





Hinweis: Cron – Dieses gesamte Skript ist, wenn es dockerisiert ist, als Cron eingestellt, der alle 5 Minuten ausgeführt wird.
Während der Ausführung generiert das Skript Logs, die in den docker logs verfolgt werden können. Diese Logs enthalten Initialisierungsmeldungen, Fortschrittsaktualisierungen und etwaige Fehler.