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

CDESK-SKRIPT ZUR

E-MAIL-VERARBEITUNG (AZURE-VERSION)

Überblick

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.

Dateien

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.

Einrichtung und Konfiguration

Erstellung von E-Mails

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.

Benutzerfeld für die Anforderung

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:

  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 Daten nach Ihren Präferenzen aus und klicken Sie auf Speichern.

Erforderliche Daten aus CDESK

Nach der Erstellung 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 ID des Bearbeiters finden Sie im Benutzerprofil (obere rechte Ecke in CDESK -> Mein Profil).
  • SLA_ID – ID des Service-Level-Agreement-Datensatzes (SLA). Die SLA-ID finden Sie im Menü oder in den Kacheln SLA/SLO -> Liste der SLA.
  • CUSTOM_PROPERTY_ID – ID des Benutzerfeldes

    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.

  • 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 – Name des Benutzerfeldes (in diesem Beispiel standardmäßig Target place)
  • TEST – deaktiviert die Zertifikatsprüfung beim Senden von Anfragen; aus Sicherheitsgründen nur beim lokalen Testen ändern (standardmäßig False)
  • SCRIPT_NAME – Name des Skripts, der in den Logs verwendet wird

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.

Einrichtungsschritte
Schritt 1: Installation der erforderlichen Erweiterungen in Visual Studio Code
  1. Öffnen Sie Visual Studio Code. Gehen Sie zur Ansicht Erweiterungen, indem Sie auf das Erweiterungssymbol in der Activity Bar an der Seite klicken oder Ctrl+Shift+X drücken.

Suchen und installieren Sie die folgenden Erweiterungen:

  • Azure Functions von Microsoft
  • Python von Microsoft
  • Azure Account von Microsoft

Schritt 2: Anmeldung bei Azure und Erstellung einer „remote function app resource“
  1. Gehen Sie zur Registerkarte Azure (Ctrl+Shift+A).
  2. Klicken Sie mit der rechten Maustaste auf Function App -> Create Function App in Azure.
    1. Folgen Sie den Aufforderungen, die Sie zur Erstellung einer Function App auffordern:

    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.

Schritt 3: Vorbereitung und Bereitstellung des lokalen Skripts
  1. Klicken Sie in der Registerkarte der Azure-Erweiterung in VS Code im Arbeitsbereich auf das Blitzsymbol, um eine Function App zu erstellen.
  2. Wählen Sie den Python-Interpreter (z. B. 3.11) und brechen Sie die weitere Auswahl ab, wenn Sie zur Auswahl einer Funktionsvorlage aufgefordert werden (drücken Sie Esc).
  3. Stellen Sie die Anwendung über das Cloud-Symbol bereit.
Schritt 4: Einstellung der Umgebungsvariablen im Azure-Portal
  1. Gehen Sie zu https://portal.azure.com/ und finden Sie die neu erstellte Function App.
  2. Gehen Sie in der Function App zu Einstellungen -> Umgebungsvariablen und fügen Sie alle zuvor in dieser Anleitung erwähnten Umgebungsvariablen hinzu.
  3. Ihr Skript ist zur Ausführung bereit. Wenn Sie die Logs anzeigen möchten, gehen Sie oben zur Registerkarte Overview, wo Sie im Bereich Essentials den Auslöser Ihrer Anwendung finden (standardmäßig timer_trigger genannt), und klicken Sie auf Invocations and more.

Arbeitsablauf

Hinweis: Cron – Dieses gesamte Skript ist, wenn es dockerisiert ist, als Cron eingestellt, der alle 5 Minuten ausgeführt wird.

  1. Initialisierung: Das Skript verbindet sich über den ConnectionController mit CDESK.
  2. Laden von E-Mails: Es ruft neue E-Mails mithilfe des ObjectController ab.
  3. Verarbeitung von E-Mails: Es erstellt Anforderungen oder Diskussionen auf Basis des E-Mail-Inhalts.
  4. Beendigung: Das Skript beendet die Sitzung mit CDESK.

Überwachung und Logs

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.