CDESK SKRIPT NA SPRACOVANIE
E-MAILOV(VERZIA PRE DOCKER)

Prehľad

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.

Súbory a adresáre

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.

Nastavenie a konfigurácia

Vytvorenie emailov

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.

Používateľské pole pre požiadavku

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: 

  1. Vytvorte novú testovaciu požiadavku alebo otvorte akúkoľvek existujúcu požiadavku. 
  2. V spodnej časti stránky požiadavky kliknite na tlačidlo Pridať používateľské polia.
  3. V pravom hornom rohu kliknite na tlačidlo Jednoduché používateľské pole.
  4. Vyplňte informácie podľa uvedenej snímky obrazovky (ak je k dispozícii). Ak nemáte konkrétnu snímku, uveďte názov, typ a ďalšie potrebné údaje používateľského poľa podľa požiadaviek na spracovanie emailov.
  5. Stlačte tlačidlo Uložiť. Nie je potrebné ukladať požiadavku v CDESK, pretože používateľské pole už bolo vytvorené.
Požadované údaje z CDESK

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

  • CDESK_LOGIN – vaše prihlasovacie meno do účtu CDESK
  • CDESK_PASSWORD – vaše heslo do účtu CDESK
  • CDESK_SERVER – váš CDESK server (napríklad cdeskportal.eu)
  • COMPANY_ID – ID spoločnosti, pod ktorou budú požiadavky vytvárané
  • STATUS – stav vytvorenej požiadavky (predvolene nastavený na 10 – „Prijaté“)
  • SOLVER_ID – ID používateľa, ktorý bude pridelený ako riešiteľ požiadavky ID riešiteľa nájdete v používateľskom profile (pravý horný roh v CDESK -> Môj profil).
  • SLA_ID – ID záznamu Service Level Agreement (SLA) ID SLA nájdete v menu alebo dlaždiciach SLA/SLO -> Zoznam SLA.
  • CUSTOM_PROPERTY_ID – ID vlastnosti použ. poľa ID používateľského poľa nájdete v menu alebo dlaždiciach Konfiguračná databáza (alebo CMDB) -> Používateľom definované polia -> Používateľské polia.

Potom nájdite požadované používateľské pole, otvorte ho a vyhľadajte ID v URL adrese.

  • CUSTOM_PROPERTY_BASEPROPERTY_ID – baseproperty ID používateľského poľa

Nájdete ho v menu / dlaždice -> Konfiguračná databáza (alebo CMDB) -> Užívateľsky definované polia -> Základné vlastnosti

  • CUSTOM_PROPERTY_NAME – Názov používateľského poľa (v tomto príklade predvolené Target place)
  • TEST – deaktivuje kontrolu certifikátu pri odosielaní požiadaviek, meniť iba pri lokálnom testovaní z bezpečnostných dôvodov (predvolené False)
  • SCRIPT_NAME – Názov skriptu, ktorý sa bude používať v logoch

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.

Kroky nastavenia

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

Pracovný postup

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.

Monitorovanie a logy

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.