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í.
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.
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.
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ů:



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):




Poté najděte požadované uživatelské pole, otevřete jej a vyhledejte ID v URL adrese.
Najdete jej v menu / dlaždice -> Konfigurační databáze (nebo CMDB) -> Uživatelem definovaná pole -> Základní vlastnosti
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.
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).
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.
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ů.