Dieses Projekt automatisiert die Verarbeitung von E-Mails im System CDESK. Es sorgt für das Laden neuer E-Mails, die Identifizierung konkreter Aktionen anhand des E-Mail-Inhalts und die Ausführung von Operationen wie das Erstellen von Diskussionen oder Anforderungen auf Basis der extrahierten Informationen.
Das Skript ist als Azure Function App erstellt, die eine Alternative zur lokalen Version darstellt, die Docker verwendet. Da sie in der Cloud läuft, können die Anwendungsprotokolle nicht lokal eingesehen werden, sondern sind im Dienst Azure verfügbar. In diesem Handbuch wird eine Schritt-für-Schritt-Anleitung zum Erstellen einer Function App mithilfe von Visual Studio Code beschrieben. Für andere Methoden, falls erforderlich, sehen Sie sich die offizielle Dokumentation von Microsoft an.
Das Skript dient als Beispiel für die Verarbeitung von Daten in CDESK und die Automatisierung des Prozesses der Objekterstellung. In diesem Fall handelt es sich um die Verarbeitung von E-Mails und das Erstellen von Anforderungen mit Diskussion.
function_app.py
Der Haupteinstiegspunkt der Anwendung. Er wird alle 5 Minuten gestartet, initialisiert die Verbindung zum System CDESK, lädt neue E-Mails, verarbeitet sie anhand der Aktionscodes und sorgt für das Beenden der Sitzung nach Abschluss.
ConnectionController.py
Verwaltet die Logik der Verbindung zur API von CDESK. Er regelt den Anmeldevorgang, hält die Sitzung aufrecht und führt GET- und POST-Anfragen mit der erforderlichen Authentifizierung aus.
ObjectController.py
Enthält Methoden zur Interaktion mit Objekten in CDESK, wie E-Mails und Anforderungen. Umfasst die Funktionalität zum Laden von E-Mails, zur Verarbeitung einzelner E-Mails und zum Erstellen von Diskussionen oder Anforderungen anhand des E-Mail-Inhalts.
LoggerController.yml
Dient zum Ausgeben von Protokollmeldungen in die Anwendungsprotokolle.
docker-compose.yml
Definiert die Docker-Umgebung zum Ausführen des Skripts zur E-Mail-Verarbeitung. Es legt die erforderlichen Umgebungsvariablen für die Verbindung zum System CDESK fest und gibt die Netzwerkkonfigurationen an.
last_email_id.txt
Ein Dokument mit der ID der zuletzt verarbeiteten E-Mail.
Zunächst sollten Sie mindestens 1 E-Mail im Bereich Nachrichtenverarbeitung -> Nachrichtenverarbeitung mit einem bestimmten Inhalt haben.
Diese E-Mail (oder E-Mails) sollte eine Kombination aus Großbuchstaben und Ziffern mit einer Länge von 6 bis 8 Zeichen enthalten. Diese Kombination kann entweder im Betreff oder im Inhalt der E-Mail angegeben sein und stellt die Paketnummer dar, die das Skript verarbeitet. Die E-Mail kann auch die Bezeichnung des Zielorts enthalten (Zielort: Testovacia ulica 11, Bratislava), die als Benutzerfeld zur neu erstellten Anforderung hinzugefügt wird.
Beispiel für Betreff und Inhalt der E-Mail:
Betreff: Paket ABC12345 versandbereit
Inhalt:
Sehr geehrter Kunde,
das Paket ABC12345 ist zur Zustellung an den Zielort bereit: Testovacia ulica 11, Bratislava. Vielen Dank, dass Sie unsere Dienste nutzen.
Zunächst benötigen Sie ein Benutzerfeld, das das Skript verwenden wird und das bei der Verarbeitung der E-Mail zur neu erstellten Anforderung hinzugefügt wird. Zum Erstellen eines neuen Feldes können Sie folgende Schritte ausführen:



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




Suchen Sie anschließend das gewünschte Benutzerfeld, öffnen Sie es und finden Sie die ID in der URL-Adresse.
Sie finden sie im Menü / in den Kacheln -> Konfigurationsdatenbank (oder CMDB) -> Benutzerdefinierte Felder -> Basiseigenschaften
Zur Visualisierung der von diesem Skript erstellten Protokolle sollte eine Verzeichniszuordnung auf dem lokalen PC/Server eingerichtet werden. Dieses Verzeichnis kann zum Beispiel das Verzeichnis /logs in der Anwendung logs sein, das speziell zu diesem Zweck erstellt wurde.
Ändern Sie in der Datei docker-compose.yml die Werte aller angeführten Variablen so, dass sie den Daten in CDESK entsprechen.
Führen Sie den Befehl docker-compose up –build –force-recreate aus, um den aus dem entsprechenden Image erstellten Container zu starten.
Im Docker-Container sehen Sie die Protokolle des laufenden Skripts, die alle 5 Minuten erscheinen (Standardeinstellung des Cron in der Dockerfile).
Hinweis: Cron – Dieses gesamte Skript ist, wenn es dockerisiert ist, als Cron eingerichtet, der alle 5 Minuten gestartet wird.
Initialisierung: Das Skript beginnt mit der Initialisierung der Verbindung zu CDESK mithilfe des ConnectionController.
Herunterladen von E-Mails: Anschließend lädt es die neuesten E-Mails aus CDESK mithilfe des ObjectController.
Verarbeitung von E-Mails: Jede E-Mail wird anhand ihres Status (unverarbeitet) verarbeitet. Zu den Aktionen gehört das Erstellen von Diskussionen oder Anforderungen in CDESK gemäß dem E-Mail-Inhalt.
Bereinigung: Zum Abschluss sorgt das Skript für das Schließen der Sitzung mit CDESK.
Während der Ausführung schreibt das Skript Protokolle in die Docker-Protokolle, einschließlich Meldungen zur Initialisierung, laufenden Aktualisierungen und etwaigen Fehlern, die während des Prozesses auftreten. Diese Protokolle können überwacht werden, um den Verlauf des Skripts zu verfolgen und Probleme zu beheben.