Integracja z usługą GUS Teryt
Wprowadzenie
W wydaniu 230930 systemu AMODIT wprowadzamy możliwość integracji systemu z rejestrem danych terytorialnych Głównego Urzędu Statystycznego – GUS Teryt. Integracja ta umożliwia pobieranie danych dotyczących:
- województw,
- powiatów,
- gmin,
- miejscowości,
- ulic.
Dane te mogą być np. wykorzystane do weryfikacji poprawności wprowadzonych danych na formularzach spraw w AMODIT.
Wprowadzenie tej integracji ułatwia projektowanie formularzy we wszystkich tych procesach, gdzie dane adresowe/terytorialne są wykorzystywane. Jednocześnie zdejmuje obowiązek z projektantów procesów tworzenia dedykowanych rozwiązań do przechowywania tego typu informacji, co zazwyczaj wiązało się z następującymi problemami:
- tworzenie dedykowanych słowników lub rejestrów;
- przechowywanie znaczących ilości danych, co wpływało na rozmiar bazy i pośrednio na wydajność systemu AMODIT;
- problemy z utrzymaniem aktualności danych terytorialnych.
Wbudowanie w system AMODIT dedykowanej integracji z GUS Teryt w zasadzie rozwiązuje wszystkie wymienione powyżej problemy:
- nie trzeba tworzyć żadnych dodatkowych słowników lub rejestrów, gdyż do systemu zostało dodane zewnętrzne, systemowe źródło danych o nazwie „GUS Teryt”, z którego korzysta się w polu typu odnośnik do źródła zewnętrznego;
- źródło utrzymywane jest na serwerach Astrafox jako dedykowany serwis, z którym łączy się dana instancja systemu AMODIT – innymi słowy, w danej instalacji AMODIT nie jest przechowywana żadna kopia rejestru GUS Teryt. Dane są pobierane na żądanie.
- za aktualizację danych terytorialnych odpowiada firma Astrafox, gdyż dane te są regularnie synchronizowane z usługami GUS.
Jak to działa?
Od strony użytkownika, obsługującego formularz sprawy w systemie AMODIT, zasadę działania integracji z GUS Teryt podamy na przykładzie wyszukania adresu siedziby firmy Astrafox, czyli ulicy Poloneza w Warszawie.
Załóżmy, że mamy taki fragment formularza, pokazany na poniższym obrazku.
Projektant procesu skonfigurował na formularzu sprawy pole np. o nazwie „Wyszukaj adres” ([1] na poniższym obrazku), które to pole połączone jest ze wspomnianym rejestrem GUS Teryt. Użytkownik wprowadza poszukiwaną frazę w polu, np. „polone”. System zwraca propozycje najbardziej pasujące do poszukiwanej frazy. Jeżeli użytkownik wybierze konkretną propozycję, to odpowiednie dane terytorialne zostaną pobrane.
W naszym przykładzie w celu zweryfikowania poprawności wyszukiwania projektant procesu dorzucił na formularzu dwa pola:
- [2] pole „Wybrany adres” – zawiera wszystkie parametry techniczne znalezionego adresu.
- [3] pole „Województwo” – zawiera tylko nazwę województwa dla znalezionego adresu.
Oczywiście w praktycznym zastosowaniu formularz mógłby być bardziej rozbudowany.
Jak to zostało skonfigurowane?
Wspomagając się powyższym przykładem od strony projektowej definicja formularza procesu wygląda następująco:
Najistotniejszym składnikiem jest pole [1] typu odnośnik do źródła zewnętrznego. Pole to musi być połączone z systemowym źródłem zewnętrznym o nazwie „GUS Teryt” [4].
Pozostałe dwa pola to są zwykłe pola tekstowe, a za ich wypełnienie odpowiada w tym przypadku reguła automatyczna o następującej treści:
[Wybrany adres] = [Wyszukaj adres] [Województwo] = JsonPath( [Wyszukaj adres], "w" )
Należy pamiętać, że dane wybranego adresu zwracane są w formacie JSON i należy użyć funkcji JsonPAth() w celu „dobrania się” do poszczególnych elementów składowych adresu. Zawartość JSON dla powyższego przykładu wygląda następująco:
{"s":"0988833", "su":"17021", "c":"ul.", "u":"Poloneza", "m":"Warszawa", "g":"Ursynów", "p":"Warszawa", "w":"MAZOWIECKIE"}
gdzie: s, su – identyfikatory pozycji w rejestrze GUS Teryt, c – rodzaj (ulica, aleja itp.), u – nazwa ulicy, m – nazwa miejscowości, g – nazwa gminy, p – nazwa powiatu, w – nazwa województwa.
UWAGA! W instalacjach systemu AMODIT na lokalnych serwerach klienta (instalacja on-prem) należy upewnić się, że ruch sieciowy do witryny https://services.amodit.com został otworzony. W przeciwnym przypadku funkcjonalność źródła GUS Teryt nie będzie działać.