Od wielu lat, wraz z rozwojem technik pracy z systemami komputerowymi, rozwijają się techniki automatyzacji wykonywanych zadań. Ten trend obecny jest, praktycznie od zawsze, także w naszym oprogramowaniu oraz jego rozwiązaniach desktopowych i serwerowych. Automatyzacja może zatem oznaczać np.:
- układanie powtarzalnych zadań w określone ciągi,
- czy harmonogramowanie ich wykonywania – również jako procesy po stronie serwerowej lub w chmurze.
W ArcGIS Desktop najczęściej wykorzystywanym rodzajem automatyzacji jest pierwszy z powyższych. Zaś narzędziem ją wspierającym jest ModelBuilder – wizualny edytor pozwalający na zarządzanie obiegiem pracy wykonywanej przez mechanizmy geoprzetwarzania. Pozwala on na układanie zadań i narzędzi dostępnych w oprogramowaniu w ciągi procesów, wykonujące kolejne operacje na wynikach otrzymywanych z poprzedniego elementu. Umożliwia także łączenie wyników różnych narzędzi, a także iteracyjne powtarzanie elementów procesu.
Co bardzo ważne, opracowane modele możemy zapisywać jako gotowe narzędzia. Przy jasno zdefiniowanych parametrach wejściowych oraz wyjściowych możemy więc użyć całego modelu jako narzędzia, odrębnego elementu w większym, bardziej złożonym procesie.
Mamy także możliwość udostępniania tak zbudowanych automatów wszystkim użytkownikom w naszej organizacji. Modele, jako narzędzia, możemy publikować na serwerze, co pozwoli na ich wykorzystanie także innym osobom. Dobrym przykładem takiej praktyki jest zbudowanie przez analityka modelu, który zbada zaktualizowane dane, wykryje zmiany, a na podstawie wyników zbuduje raport. Nad tak powstałym modelem pracować będzie osoba zaawansowana technologicznie i znającą zbiory danych wykorzystywane w procesie. Zaś gotowe, zamknięte narzędzie będzie przydatne szerszemu gronu odbiorców potrzebujących wglądu jedynie w wynikowy raport.
Następnym krokiem automatyzacji może być uruchamianie opisanego wyżej narzędzia np. o zadanej godzinie, w konkretne dni tygodnia – być może potrzebujemy być regularnie informowani o wykrytych zmianach
Eksportujemy więc nasz model jako skrypt Python. Pozwoli nam to na jego uruchamianie za pomocą harmonogramu zadań – standardowego narzędzia, które znajdziemy w systemie operacyjnym Windows.
Za jego pomocą możemy zadecydować w jakie dni i o której godzinie chcemy, aby automatycznie został wykonany skrypt ze stworzonym przez nas narzędziem raportującym.
Tak skonstruowane zadania uruchamiane mogą być także po stronie serwera. Narzędzie może wykonywać raporty na zdalnym komputerze i np. publikować wynik analizy jako nową usługę mapową (lub nadpisywać istniejącą, jeśli nie potrzebujemy mieć wglądu w poprzednie wyniki). Jest to o tyle ciekawa i przydatna funkcjonalność, że tak automatycznie wykonana analiza i jej wynik w jednym czasie udostępniane są wielu odbiorcom – nie muszą oni nawet samodzielnie uruchamiać narzędzia na swoim własnym komputerze. Dodatkowo wynik – usługa mapowa z analizą – może być elementem aplikacji przeglądarkowej, co daje jeszcze szybszy i wygodniejszy dostęp użytkownikom.
Kolejnym krokiem w automatyzacji zadań mogłoby być dołączenie naszej analizy do procesu Power Automate i np. wysyłanie mailowych powiadomień do zainteresowanych osób, ale to temat na osobny artykuł. Zatem wrócimy jeszcze do zagadnień związanych z Robotic Process Automation (RPA) i budową systemów, w których GIS w zautomatyzowany sposób wspiera procesy biznesowe.
Aspekty biznesowe
Automatyzacja to przede wszystkim oszczędność czasu. A jak wiadomo, czas to pieniądz.
Od paru lat coraz szerszym echem odbija się idea wykorzystania narzędzi automatyzujących do łączenia ze sobą różnych systemów i różnych funkcjonalności. Pozwala to na obsługę procesów biznesowych bez konieczności tworzenia dedykowanych aplikacji „pod klucz”.
To z kolei daje duże oszczędności wydatków nie tylko na zakup, ale i utrzymanie – wsparcie – systemów, które wspomagają naszą codzienną pracę. Jeśli używając automatyzacji i „pudełkowych” – komercyjnych produktów – jesteśmy w stanie osiągnąć 80-90% oczekiwanej funkcjonalności odpowiadającego systemu budowanego na nasze specjalne zamówienie, to wiąże się to z dużo mniejszym kosztem finansowym. Ale jednocześnie zapewniamy sobie szybsze wdrożenie, mniejszy nakład pracy na testy, a także proste utrzymanie i rozbudowę lub zmianę systemu.
Te wszystkie elementy to znowu – czas. Oszczędzamy go na wykonywaniu powtarzalnych czynności. Minimalizujemy czas, który użytkownicy powinni poświęcić na dostęp do wyników działania naszych analiz. Standaryzujemy efekty i sposoby naszej pracy, możemy się nimi dzielić i je udoskonalać.
Dodatkowo, automatyzacja minimalizuje ryzyko błędów ludzkich, a te mogą się wiązać ze znacznie większymi kosztami niż tylko stracony czas.