Pripravujeme pre Vás novú dokumentáciu, aktuálny stav nájdete tu

CDESK-SKRIPT ZUR

E-MAIL-VERARBEITUNG (DOCKER-VERSION)

Überblick

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.

Dateien und Verzeichnisse

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.

Einrichtung und Konfiguration

Erstellen von E-Mails

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.

Benutzerfeld für die Anforderung

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: 

  1. Erstellen Sie eine neue Testanforderung oder öffnen Sie eine beliebige bestehende Anforderung. 
  2. Klicken Sie im unteren Teil der Anforderungsseite auf die Schaltfläche Benutzerfelder hinzufügen.
  3. Klicken Sie in der oberen rechten Ecke auf die Schaltfläche Einfaches Benutzerfeld.
  4. Füllen Sie die Informationen gemäß dem angeführten Screenshot aus (falls verfügbar). Wenn Sie keinen konkreten Screenshot haben, geben Sie Bezeichnung, Typ und weitere erforderliche Angaben des Benutzerfeldes gemäß den Anforderungen an die E-Mail-Verarbeitung an.
  5. Drücken Sie die Schaltfläche Speichern. Es ist nicht erforderlich, die Anforderung in CDESK zu speichern, da das Benutzerfeld bereits erstellt wurde.
Erforderliche Daten aus CDESK

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

  • CDESK_LOGIN – Ihr Anmeldename für das CDESK-Konto
  • CDESK_PASSWORD – Ihr Passwort für das CDESK-Konto
  • CDESK_SERVER – Ihr CDESK-Server (zum Beispiel cdeskportal.eu)
  • COMPANY_ID – ID des Unternehmens, unter dem die Anforderungen erstellt werden
  • STATUS – Status der erstellten Anforderung (standardmäßig auf 10 – „Empfangen“ eingestellt)
  • SOLVER_ID – ID des Benutzers, der als Bearbeiter der Anforderung zugewiesen wird. Die Bearbeiter-ID finden Sie im Benutzerprofil (obere rechte Ecke in CDESK -> Mein Profil).
  • SLA_ID – ID des Service-Level-Agreement-Eintrags (SLA). Die SLA-ID finden Sie im Menü oder in den Kacheln SLA/SLO -> Liste der SLA.
  • CUSTOM_PROPERTY_ID – ID der Eigenschaft des Benutzerfeldes. Die ID des Benutzerfeldes finden Sie im Menü oder in den Kacheln Konfigurationsdatenbank (oder CMDB) -> Benutzerdefinierte Felder -> Benutzerfelder.

Suchen Sie anschließend das gewünschte Benutzerfeld, öffnen Sie es und finden Sie die ID in der URL-Adresse.

  • CUSTOM_PROPERTY_BASEPROPERTY_ID – baseproperty-ID des Benutzerfeldes

Sie finden sie im Menü / in den Kacheln -> Konfigurationsdatenbank (oder CMDB) -> Benutzerdefinierte Felder -> Basiseigenschaften

  • CUSTOM_PROPERTY_NAME – Bezeichnung des Benutzerfeldes (in diesem Beispiel standardmäßig Target place)
  • TEST – deaktiviert die Zertifikatsprüfung beim Senden von Anfragen, nur beim lokalen Testen aus Sicherheitsgründen ändern (standardmäßig False)
  • SCRIPT_NAME – Bezeichnung des Skripts, die in den Protokollen verwendet wird

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.

Einrichtungsschritte

Ä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).

Arbeitsablauf

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.

Überwachung und Protokolle

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.