Tento projekt automatizuje spracovanie emailov v systéme CDESK. Zabezpečuje načítanie nových emailov, identifikáciu konkrétnych akcií na základe obsahu emailov a vykonávanie operácií, ako je vytváranie diskusií alebo požiadaviek na základe extrahovaných informácií.
Skript je vytvorený ako aplikácia Azure Function App, ktorá predstavuje alternatívu k lokálnej verzii využívajúcej Docker. Keďže funguje v cloude, logy aplikácie nemožno prezerať lokálne, ale sú dostupné v službe Azure. V tomto manuáli je uvedený postupný návod na vytvorenie Function App pomocou Visual Studio Code. Pre iné metódy, ak sú potrebné, si pozrite oficiálnu dokumentáciu od Microsoftu.
Skript slúži ako príklad spracovania údajov v CDESK a automatizácie procesu vytvárania objektov. V tomto prípade ide o spracovanie emailov a vytváranie požiadaviek s diskusiou.
function_app.py
Hlavný vstupný bod aplikácie. Spúšťa sa každých 5 minút, inicializuje pripojenie k systému CDESK, načítava nové emaily, spracováva ich podľa akčných kódov a zabezpečuje ukončenie relácie po dokončení.
ConnectionController.py
Spravuje logiku pripojenia k API CDESK. Rieši proces prihlásenia, udržiava reláciu a vykonáva GET a POST požiadavky s potrebnou autentifikáciou.
ObjectController.py
Obsahuje metódy na interakciu s objektmi v CDESK, ako sú emaily a požiadavky. Zahŕňa funkcionalitu na načítavanie emailov, spracovanie jednotlivých emailov a vytváranie diskusií alebo požiadaviek na základe obsahu emailov.
LoggerController.yml
Slúži na tlač logovacích správ do logov aplikácie.
docker-compose.yml
Definuje prostredie Docker na spustenie skriptu na spracovanie emailov. Nastavuje potrebné premenné prostredia na pripojenie k systému CDESK a špecifikuje sieťové konfigurácie.
last_email_id.txt
Dokument s ID posledného spracovaného emailu.
Najskôr by ste mali mať aspoň 1 email v sekcii Spracovanie správ -> Spracovanie správ s určitým obsahom.
Tento email (alebo emaily) by mal obsahovať kombináciu veľkých písmen a číslic s dĺžkou 6 až 8 znakov. Táto kombinácia môže byť uvedená buď v predmete, alebo v obsahu emailu a bude predstavovať číslo balíka, ktoré spracuje skript. Email môže taktiež obsahovať názov cieľového miesta (Cieľové miesto: Testovacia ulica 11, Bratislava), ktoré sa pridá do novovytvorenej požiadavky ako používateľské pole.
Príklad predmetu a obsahu emailu:
Predmet: Balík ABC12345 pripravený na doručenie
Obsah:
Vážený zákazník,
balík ABC12345 je pripravený na doručenie na cieľové miesto: Testovacia ulica 11, Bratislava. Ďakujeme, že využívate naše služby.
Najskôr budete potrebovať používateľské pole, ktoré bude používať skript a ktoré sa pridá do novovytvorenej požiadavky pri spracovaní emailu. Na vytvorenie nového poľa môžete postupovať podľa týchto krokov:
Po vytvorení používateľského poľa bude potrebné nastaviť nasledujúce údaje z CDESK v skripte (ako environmentálne premenné v súbore docker-compose.yml):
Potom nájdite požadované používateľské pole, otvorte ho a vyhľadajte ID v URL adrese.
Nájdete ho v menu / dlaždice -> Konfiguračná databáza (alebo CMDB) -> Užívateľsky definované polia -> Základné vlastnosti
Na vizualizáciu logov vytvorených týmto skriptom by malo byť nastavené mapovanie adresára na lokálnom PC/serveri. Tento adresár môže byť napríklad adresár /logs v aplikácii logs, špeciálne vytvorený na tento účel.
V súbore docker-compose.yml zmeňte hodnoty všetkých uvedených premenných tak, aby zodpovedali údajom v CDESK.
Spustite príkaz docker-compose up –build –force-recreate na spustenie kontajnera vytvoreného z príslušného obrazu.
V docker kontajneri uvidíte logy bežiaceho skriptu, ktoré sa objavujú každých 5 minút (predvolené nastavenie cronu v Dockerfile).
Poznámka: Cron – Celý tento skript, ak je dockerizovaný, je nastavený ako cron, ktorý sa spúšťa každých 5 minút.
Inicializácia: Skript začína inicializáciou pripojenia k CDESK pomocou ConnectionController.
Sťahovanie emailov: Následne načíta najnovšie emaily z CDESK pomocou ObjectController.
Spracovanie emailov: Každý email sa spracuje na základe jeho stavu (nespracované). Medzi akcie patrí vytváranie diskusií alebo požiadaviek v CDESK podľa obsahu emailu.
Vyčistenie: Na záver skript zabezpečí uzavretie relácie s CDESK.
Počas vykonávania skript zapisuje logy do docker logov, vrátane správ o inicializácii, priebežných aktualizácií a akýchkoľvek chýb, ktoré sa vyskytnú počas procesu. Tieto logy je možné monitorovať na sledovanie priebehu skriptu a riešenie problémov.