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

CDESK SKRIPT NA ZPRACOVÁNÍ

E-MAILŮ(VERZE PRO DOCKER)

Přehled

Tento projekt automatizuje zpracování e-mailů v systému CDESK. Zajišťuje načtení nových e-mailů, identifikaci konkrétních akcí na základě obsahu e-mailů a provádění operací, jako je vytváření diskusí nebo požadavků na základě extrahovaných informací.

Skript je vytvořen jako aplikace Azure Function App, která představuje alternativu k lokální verzi využívající Docker. Protože funguje v cloudu, logy aplikace nelze prohlížet lokálně, ale jsou dostupné ve službě Azure. V tomto manuálu je uveden postupný návod na vytvoření Function App pomocí Visual Studio Code. Pro jiné metody, pokud jsou potřeba, si prohlédněte oficiální dokumentaci od Microsoftu.

Skript slouží jako příklad zpracování údajů v CDESK a automatizace procesu vytváření objektů. V tomto případě jde o zpracování e-mailů a vytváření požadavků s diskusí.

Soubory a adresáře

function_app.py

Hlavní vstupní bod aplikace. Spouští se každých 5 minut, inicializuje připojení k systému CDESK, načítá nové e-maily, zpracovává je podle akčních kódů a zajišťuje ukončení relace po dokončení.

ConnectionController.py

Spravuje logiku připojení k API CDESK. Řeší proces přihlášení, udržuje relaci a provádí GET a POST požadavky s potřebnou autentizací.

ObjectController.py

Obsahuje metody pro interakci s objekty v CDESK, jako jsou e-maily a požadavky. Zahrnuje funkcionalitu pro načítání e-mailů, zpracování jednotlivých e-mailů a vytváření diskusí nebo požadavků na základě obsahu e-mailů.

LoggerController.yml

Slouží k tisku logovacích zpráv do logů aplikace.

docker-compose.yml

Definuje prostředí Docker pro spuštění skriptu na zpracování e-mailů. Nastavuje potřebné proměnné prostředí pro připojení k systému CDESK a specifikuje síťové konfigurace.

last_email_id.txt

Dokument s ID posledního zpracovaného e-mailu.

Nastavení a konfigurace

Vytvoření e-mailů

Nejprve byste měli mít alespoň 1 e-mail v sekci Zpracování zpráv -> Zpracování zpráv s určitým obsahem.

 

Tento e-mail (nebo e-maily) by měl obsahovat kombinaci velkých písmen a číslic s délkou 6 až 8 znaků. Tato kombinace může být uvedena buď v předmětu, nebo v obsahu e-mailu a bude představovat číslo balíku, které skript zpracuje. E-mail může také obsahovat název cílového místa (Cílové místo: Testovacia ulica 11, Bratislava), které se přidá do nově vytvořeného požadavku jako uživatelské pole.

 

Příklad předmětu a obsahu e-mailu:

Předmět: Balík ABC12345 připraven k doručení

Obsah:

Vážený zákazníku,

balík ABC12345 je připraven k doručení na cílové místo: Testovacia ulica 11, Bratislava. Děkujeme, že využíváte naše služby.

Uživatelské pole pro požadavek

Nejprve budete potřebovat uživatelské pole, které bude skript používat a které se přidá do nově vytvořeného požadavku při zpracování e-mailu. Pro vytvoření nového pole můžete postupovat podle těchto kroků: 

  1. Vytvořte nový testovací požadavek nebo otevřete jakýkoliv existující požadavek. 
  2. Ve spodní části stránky požadavku klikněte na tlačítko Přidat uživatelská pole.
  3. V pravém horním rohu klikněte na tlačítko Jednoduché uživatelské pole.
  4. Vyplňte informace podle uvedeného snímku obrazovky (pokud je k dispozici). Pokud nemáte konkrétní snímek, uveďte název, typ a další potřebné údaje uživatelského pole podle požadavků na zpracování e-mailů.
  5. Stiskněte tlačítko Uložit. Není potřeba ukládat požadavek v CDESK, protože uživatelské pole již bylo vytvořeno.
Požadované údaje z CDESK

Po vytvoření uživatelského pole bude potřeba nastavit v skriptu následující údaje z CDESK (jako proměnné prostředí v souboru docker-compose.yml):

  • CDESK_LOGIN – vaše přihlašovací jméno do účtu CDESK
  • CDESK_PASSWORD – vaše heslo do účtu CDESK
  • CDESK_SERVER – váš CDESK server (například cdeskportal.eu)
  • COMPANY_ID – ID společnosti, pod kterou budou požadavky vytvářeny
  • STATUS – stav vytvořeného požadavku (standardně nastaven na 10 – „Přijato“)
  • SOLVER_ID – ID uživatele, který bude přidělen jako řešitel požadavku. ID řešitele najdete v uživatelském profilu (pravý horní roh v CDESK -> Můj profil).
  • SLA_ID – ID záznamu Service Level Agreement (SLA). ID SLA najdete v menu nebo dlaždicích SLA/SLO -> Seznam SLA.
  • CUSTOM_PROPERTY_ID – ID vlastnosti uživ. pole. ID uživatelského pole najdete v menu nebo dlaždicích Konfigurační databáze (nebo CMDB) -> Uživatelem definovaná pole -> Uživatelská pole.

Poté najděte požadované uživatelské pole, otevřete jej a vyhledejte ID v URL adrese.

  • CUSTOM_PROPERTY_BASEPROPERTY_ID – baseproperty ID uživatelského pole

Najdete jej v menu / dlaždice -> Konfigurační databáze (nebo CMDB) -> Uživatelem definovaná pole -> Základní vlastnosti

  • CUSTOM_PROPERTY_NAME – Název uživatelského pole (v tomto příkladu standardně Target place)
  • TEST – deaktivuje kontrolu certifikátu při odesílání požadavků, měnit pouze při lokálním testování z bezpečnostních důvodů (standardně False)
  • SCRIPT_NAME – Název skriptu, který se bude používat v logách

Pro vizualizaci logů vytvořených tímto skriptem by mělo být nastaveno mapování adresáře na lokálním PC/serveru. Tímto adresářem může být například adresář /logs v aplikaci logs, speciálně vytvořený pro tento účel.

Kroky nastavení

V souboru docker-compose.yml změňte hodnoty všech uvedených proměnných tak, aby odpovídaly údajům v CDESK.

Spusťte příkaz docker-compose up –build –force-recreate pro spuštění kontejneru vytvořeného z příslušného obrazu.

V docker kontejneru uvidíte logy běžícího skriptu, které se objevují každých 5 minut (standardní nastavení cronu v Dockerfile).

Pracovní postup

Poznámka: Cron – Celý tento skript, pokud je dockerizovaný, je nastaven jako cron, který se spouští každých 5 minut.

Inicializace: Skript začíná inicializací připojení k CDESK pomocí ConnectionController.

Stahování e-mailů: Následně načte nejnovější e-maily z CDESK pomocí ObjectController.

Zpracování e-mailů: Každý e-mail se zpracuje na základě jeho stavu (nezpracované). Mezi akce patří vytváření diskusí nebo požadavků v CDESK podle obsahu e-mailu.

Vyčištění: Na závěr skript zajistí uzavření relace s CDESK.

Monitorování a logy

Během provádění skript zapisuje logy do docker logů, včetně zpráv o inicializaci, průběžných aktualizací a jakýchkoliv chyb, které se vyskytnou během procesu. Tyto logy je možné monitorovat pro sledování průběhu skriptu a řešení problémů.