Custom Functions, czyli funkcje niestandardowe w ServiceDesk Plus Cloud
11.05.2023
Autor: Dawid Mroczkowski
Kategorie: Aktualności,Artykuł
Każda organizacja ma swoje potrzeby i swój przepływ pracy związany z obsługą zgłoszeń, akceptacjami, czy rozwiązywaniem problemów, a to, co standardowo oferuje system, niekiedy nie jest dostatecznie wystarczające. Zawsze potrzebna jest niestandardowa automatyzacja czy funkcjonalność, która dla administratorów czy samych techników jest po prostu niezbędna.
Na szczęście w IT nie ma rzeczy niemożliwych, gdy w grę wchodzi programowanie. W każdym systemie, jeżeli chcemy poszerzyć jego funkcjonalność, musimy sami sobie stworzyć odpowiednie skrypty. Ale i tutaj pojawiają się problemy. Jakiego języka użyć? Jak napisać skrypt? Jak go połączyć z systemem i donieść się do jego danych? Niby prosta rzecz do skonfigurowania staje się nagle bardzo trudna i czasochłonna. Lecz w ServiceDesk Cloud i na to mamy rozwiązanie.
Custom Functions…
…czyli funkcje niestandardowe, pozwalają nam w łatwy i prosty sposób rozszerzyć funkcjonalności naszej aplikacji, i wymagana jest do tego tylko podstawowa wiedza z zakresu programowania.
Bezpośredni dostęp do funkcji uzyskamy, wchodząc w ustawienia administratora – > obszar dewelopera – > funkcje niestandardowe.
W pierwszym widoku będziemy mieli do dyspozycji funkcje niestandardowe związane ze zgłoszeniami do użytku w regułach biznesowych lub czasomierzach. Klikając na nazwę obok napisu „Funkcje niestandardowe”, uzyskamy listę modułów dla których możemy stworzyć takowe funkcje. W tym artykule przedstawię kilka przykładów użytkowych funkcji niestandardowej dla modułu zgłoszeń w zastosowaniu dla wyzwalaczy i cyklu życia zgłoszenia.
Dla stworzenia nowej funkcji klikamy w przycisk „Nowa funkcja niestandardowa”. Wyświetli nam się widok z edytorem skryptu. Język, w którym będziemy pisać to Deluge.
Zmienne i ich wartości
Do dyspozycji mamy od razu gotowe do wstawienia przykładowe komendy, widoczne po lewej stronie. Samo pisanie skryptu będzie bazować na danych umieszczonych w zmiennej typu Map, requestObj. Jest to zmienna, która zawiera dane z przesłanego przez użytkownika zgłoszenia. Jej typ Map określa, że jest to mapa nazw z przypisanymi do nich wartościami. Dla przykładu wartość requestObj dla podstawowego zgłoszenia będzie wyglądać następująco:
Na początek możemy te informacje sobie wypisać, aby sprawdzić wszystkie informacje zawarte w zmiennej requestObj. Aby, wypisać dane użyjemy komendy info oraz nazwy zmiennej a wszystko kończymy średnikiem.
Uruchomienie i przetestowanie skryptu możemy dokonać, poprzeć kliknięcie przycisku „Zapisz i wykonaj skrypt” umiejscowiony poniżej. W kolejnym oknie możemy wybrać testowe zgłoszenie zktórego mamy pobierać dane lub klikając dalej, możemy sami sprecyzować dane, jakie będą zawarte w zmiennej requestObj. Skrypt uruchamiamy, klikając „Wykonaj”.
Wykonaliśmy nasz skrypt, a że kazaliśmy mu wypisać dane, zostały one tutaj przedstawione.
W ten sposób każdy nasz skrypt możemy testować i upewniać się, że dane, na których pracujemy są prawidłowe. Aby uzyskać konkretne wartości ze zmiennej typu Map (tutaj zmienna), użyjemy komendy get. Należy pamiętać, aby dane zapisane w zmiennej typu Map wyciągać kaskadowo. Np. jeżeli mamy wartość zapisaną w ten sposób: zmienna={nazwa1: { nazwa2: Wartość12 }}. Naszą wartość wyciągamy następująco:
I nasz wynik będzie wyglądać tak:
Interfejs REST API
Niekiedy nasze dane w zgłoszeniu są niewystarczające lub chcemy je powiązać z danymi z innych modułów funkcji lub też je w jakiś sposób zmodyfikować. Do tego mamy przygotowany przez ManageEngine cały interfejs REST API, dzięki któremu będziemy mogli komunikować się z innymi modułami w ServiceDesk Cloud, a także wykonywać na nich szereg czynności modyfikując ich dane. Dla przykładu będę pobierać i modyfikować dane z innego zgłoszenia, a także stworzę nowe zgłoszenie poprzez właśnie API (Cała dokumentacja REST API jest dostępna pod tym adresem: https://www.manageengine.com/products/service-desk/sdpod-v3-api/).
Aby, pobrać dane z innego zgłoszenia musimy użyć funkcji wywołującej adres URL. Służy do tego komenda zoho.sdp.invokeurl[]. Oczywiście dla tej komendy musimy podać także odpowiednie parametry. Takie jak nasz adres API oraz typ wywołania. Możemy także podać dane, jeżeli coś modyfikujemy lub tworzymy.
I tak o to uzyskaliśmy listę 10 zgłoszeń. Domyślnie zawsze uzyskamy 10 pozycji. Aby uzyskać więcej musimy podać odpowiednie parametry, precyzujące jak ma się wylistować informacja. (Wszystkie parametry związane z wylistowaniem dostępne w dokumentacji REST API)
Teraz zakładając, że znamy ID naszego zgłoszenia, możemy je sobie wylistować, dodając numer ID na końcu adresu url.
Aby móc wyedytować nasze zgłoszenie, najpierw zamieniamy typ wywołania na PUT, oznaczające modyfikację oraz dodaję dane, które chcemy zmienić, zachowując strukturę danych zgłoszenia. Dla przykładu zmienię temat zgłoszenia.
Sukces! Właśnie skryptem zmieniliśmy temat zgłoszenia! Te same czynności możemy wykonywać dla wielu innych pól w tym także pól dodatkowych.
Skoro udało nam się edytować zgłoszenie to pora stworzyć kompletnie nowe od zera.
Tutaj musimy pamiętać, aby zawrzeć wszystkie informacje, które są wymagane, aby zgłoszenie w ogóle mogło się wygenerować. Do tworzenia nowych elementów użyjemy też typu POST.
Kolejny sukces!
A oto nasze nowo wygenerowane zgłoszenie.
Podsumowując
Custom Function jest wielce przydatnym narzędziem, mającym potężny potencjał konfiguracyjny. Dzięki niemu możemy stworzyć automatyzacje, które podstawowo nie są możliwe do realizacji. Od tworzenia nowych zgłoszeń do całkowitej automatyzacji przepływu pracy. Więc jeżeli choć trochę znasz się na programowaniu, to Custom Function jest twoim najlepszym przyjacielem.
11.05.2023
Autor: Dawid Mroczkowski
Kategorie: AktualnościArtykuł
Udostępnij:
Dawid Mroczkowski
Junior ITSM Product Engineer
Z wykształcenia Automatyk i Robotyk, a z zamiłowania samouk dziedzin IT m.in. programowania w JavaScript oraz Python. Szybko zbiera nowe doświadczenie, aby sprawnie realizować swoje zadania. W MWT Solutions zajmuje się wdrażaniem oprogramowania ManageEngine z zakresu zarządzania usługami informatycznymi.