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

SKRYPT CDESK DO PRZETWARZANIA

E-MAILI (WERSJA DLA DOCKERA)

Przegląd

Ten projekt automatyzuje przetwarzanie e-maili w systemie CDESK. Zapewnia pobieranie nowych e-maili, identyfikację konkretnych akcji na podstawie treści e-maili oraz wykonywanie operacji, takich jak tworzenie dyskusji lub wniosków na podstawie wyekstrahowanych informacji.

Skrypt został utworzony jako aplikacja Azure Function App, która stanowi alternatywę dla wersji lokalnej wykorzystującej Docker. Ponieważ działa w chmurze, logów aplikacji nie można przeglądać lokalnie, ale są dostępne w usłudze Azure. W tym podręczniku przedstawiono instrukcję krok po kroku dotyczącą tworzenia Function App za pomocą Visual Studio Code. W razie potrzeby, jeśli chodzi o inne metody, zapoznaj się z oficjalną dokumentacją firmy Microsoft.

Skrypt służy jako przykład przetwarzania danych w CDESK oraz automatyzacji procesu tworzenia obiektów. W tym przypadku chodzi o przetwarzanie e-maili i tworzenie wniosków wraz z dyskusją.

Pliki i katalogi

function_app.py

Główny punkt wejścia aplikacji. Uruchamia się co 5 minut, inicjuje połączenie z systemem CDESK, pobiera nowe e-maile, przetwarza je zgodnie z kodami akcji i zapewnia zakończenie sesji po ukończeniu.

ConnectionController.py

Zarządza logiką połączenia z API CDESK. Obsługuje proces logowania, utrzymuje sesję i wykonuje żądania GET i POST z niezbędnym uwierzytelnianiem.

ObjectController.py

Zawiera metody do interakcji z obiektami w CDESK, takimi jak e-maile i wnioski. Obejmuje funkcjonalność pobierania e-maili, przetwarzania poszczególnych e-maili oraz tworzenia dyskusji lub wniosków na podstawie treści e-maili.

LoggerController.yml

Służy do drukowania komunikatów logowania do logów aplikacji.

docker-compose.yml

Definiuje środowisko Docker do uruchomienia skryptu przetwarzania e-maili. Ustawia niezbędne zmienne środowiskowe do połączenia z systemem CDESK i określa konfiguracje sieciowe.

last_email_id.txt

Dokument z ID ostatniego przetworzonego e-maila.

Ustawienia i konfiguracja

Tworzenie e-maili

Najpierw powinieneś mieć co najmniej 1 e-mail w sekcji Przetwarzanie wiadomości -> Przetwarzanie wiadomości z określoną treścią.

 

Ten e-mail (lub e-maile) powinien zawierać kombinację wielkich liter i cyfr o długości od 6 do 8 znaków. Ta kombinacja może być podana w temacie lub w treści e-maila i będzie reprezentować numer paczki, który przetworzy skrypt. E-mail może również zawierać nazwę miejsca docelowego (Miejsce docelowe: Testovacia ulica 11, Bratislava), które zostanie dodane do nowo utworzonego wniosku jako pole użytkownika.

 

Przykład tematu i treści e-maila:

Temat: Paczka ABC12345 gotowa do dostarczenia

Treść:

Szanowny Kliencie,

paczka ABC12345 jest gotowa do dostarczenia do miejsca docelowego: Testovacia ulica 11, Bratislava. Dziękujemy za korzystanie z naszych usług.

Pole użytkownika dla wniosku

Najpierw będziesz potrzebować pola użytkownika, które będzie używane przez skrypt i które zostanie dodane do nowo utworzonego wniosku podczas przetwarzania e-maila. Aby utworzyć nowe pole, możesz postępować zgodnie z poniższymi krokami: 

  1. Utwórz nowy testowy wniosek lub otwórz dowolny istniejący wniosek. 
  2. W dolnej części strony wniosku kliknij przycisk Dodaj pola użytkownika.
  3. W prawym górnym rogu kliknij przycisk Proste pole użytkownika.
  4. Wypełnij informacje zgodnie z przedstawionym zrzutem ekranu (jeśli jest dostępny). Jeśli nie masz konkretnego zrzutu ekranu, podaj nazwę, typ i inne niezbędne dane pola użytkownika zgodnie z wymaganiami przetwarzania e-maili.
  5. Naciśnij przycisk Zapisz. Nie ma potrzeby zapisywania wniosku w CDESK, ponieważ pole użytkownika zostało już utworzone.
Wymagane dane z CDESK

Po utworzeniu pola użytkownika konieczne będzie ustawienie w skrypcie następujących danych z CDESK (jako zmiennych środowiskowych w pliku docker-compose.yml):

  • CDESK_LOGIN – Twoja nazwa logowania do konta CDESK
  • CDESK_PASSWORD – Twoje hasło do konta CDESK
  • CDESK_SERVER – Twój serwer CDESK (na przykład cdeskportal.eu)
  • COMPANY_ID – ID firmy, pod którą będą tworzone wnioski
  • STATUS – status utworzonego wniosku (domyślnie ustawiony na 10 – „Przyjęte“)
  • SOLVER_ID – ID użytkownika, który zostanie przydzielony jako rozwiązujący wniosek. ID rozwiązującego znajdziesz w profilu użytkownika (prawy górny róg w CDESK -> Mój profil).
  • SLA_ID – ID rekordu Service Level Agreement (SLA). ID SLA znajdziesz w menu lub kafelkach SLA/SLO -> Lista SLA.
  • CUSTOM_PROPERTY_ID – ID właściwości pola użytkownika. ID pola użytkownika znajdziesz w menu lub kafelkach Baza danych konfiguracji (lub CMDB) -> Pola zdefiniowane przez użytkownika -> Pola użytkownika.

Następnie znajdź żądane pole użytkownika, otwórz je i wyszukaj ID w adresie URL.

  • CUSTOM_PROPERTY_BASEPROPERTY_ID – baseproperty ID pola użytkownika

Znajdziesz je w menu / kafelkach -> Baza danych konfiguracji (lub CMDB) -> Pola zdefiniowane przez użytkownika -> Właściwości podstawowe

  • CUSTOM_PROPERTY_NAME – Nazwa pola użytkownika (w tym przykładzie domyślnie Target place)
  • TEST – dezaktywuje kontrolę certyfikatu przy wysyłaniu żądań, zmieniać tylko podczas lokalnego testowania ze względów bezpieczeństwa (domyślnie False)
  • SCRIPT_NAME – Nazwa skryptu, która będzie używana w logach

Do wizualizacji logów utworzonych przez ten skrypt powinno być ustawione mapowanie katalogu na lokalnym komputerze/serwerze. Tym katalogiem może być na przykład katalog /logs w aplikacji logs, specjalnie utworzony do tego celu.

Kroki konfiguracji

W pliku docker-compose.yml zmień wartości wszystkich wymienionych zmiennych tak, aby odpowiadały danym w CDESK.

Uruchom polecenie docker-compose up –build –force-recreate, aby uruchomić kontener utworzony z odpowiedniego obrazu.

W kontenerze docker zobaczysz logi działającego skryptu, które pojawiają się co 5 minut (domyślne ustawienie crona w Dockerfile).

Procedura pracy

Uwaga: Cron – Cały ten skrypt, jeśli jest skonteneryzowany w Dockerze, jest ustawiony jako cron, który uruchamia się co 5 minut.

Inicjalizacja: Skrypt rozpoczyna od inicjalizacji połączenia z CDESK za pomocą ConnectionController.

Pobieranie e-maili: Następnie pobiera najnowsze e-maile z CDESK za pomocą ObjectController.

Przetwarzanie e-maili: Każdy e-mail jest przetwarzany na podstawie jego statusu (nieprzetworzone). Do akcji należy tworzenie dyskusji lub wniosków w CDESK zgodnie z treścią e-maila.

Czyszczenie: Na koniec skrypt zapewnia zamknięcie sesji z CDESK.

Monitorowanie i logi

Podczas wykonywania skrypt zapisuje logi do logów docker, w tym komunikaty o inicjalizacji, bieżące aktualizacje oraz wszelkie błędy, które wystąpią podczas procesu. Logi te można monitorować w celu śledzenia postępu skryptu i rozwiązywania problemów.