Wyzwanie
Deweloperzy muszą codziennie przekazywać ceny ofertowe mieszkań do portalu dane.gov.pl, a zaniedbanie tego obowiązku grozi zarzutem naruszania zbiorowych interesów konsumentów. Klient generował pliki ze strony, ale uruchamiały się one tylko przy ruchu na stronie, więc przez 11 dni nie powstał żaden plik.
Pliki nie spełniały też wzorca Ministerstwa Cyfryzacji: w numerze KRS była formuła arkusza, brakowało sposobu kontaktu, miejsca postojowe trafiały do złych kolumn, a w danych zostawały lokale sprzedane. Na portalu brakowało 112 dni w dwóch seriach i 185 dni w trzeciej.
Podejście
Najpierw audyt: wszystkie 612 plików CSV i 2 pliki XML porównaliśmy z ustawą, wzorcem ministerstwa (58 kolumn), wytycznymi i oficjalnym schematem XSD. Generator naprawiliśmy u źródła, a archiwum przepisaliśmy wstecz tymi samymi regułami, zamiast łatać pliki ręcznie.
Portal nie udostępnia API do zapisu, a ręczne wgranie ok. 400 zasobów nie wchodziło w grę. Napisaliśmy więc automat działający w przeglądarce, który sprawdza, co już jest na portalu, i pomija istniejące daty. Przed każdą zmianą robiliśmy kopię, bo archiwum musi zostać zachowane w całości.
Wdrożenie
Generator tworzy pliki dwa razy na dobę z harmonogramu systemowego, przed porą, o której pobiera je portal. Walidator sprawdza każdy plik względem wzorca i ustawy, a skrypt kontrolny porównuje plik z portalu bajt po bajcie z wersją lokalną i pilnuje kompletu dat bez duplikatów.
Jednej rzeczy nie dało się odtworzyć wstecz: dat sprzedaży, których system nigdy nie zapisywał. Te lokale zostały w historii tak, jak były publikowane, a od dnia wdrożenia generator pomija je poprawnie.
Wyniki
W jednej sesji wgraliśmy 409 zasobów w sześciu równoległych procesach. Kontrola końcowa: 112 na 112, 112 na 112 i 185 na 185 dni zgodnych w trzech seriach, zero luk i zero duplikatów.
Walidacja całego archiwum, 645 plików razem z uzupełnionymi dniami, przeszła bez błędów. Plik XML przechodzi oficjalny schemat bez uwag. Pliki powstają teraz codziennie automatycznie, a kolejnym krokiem jest rejestracja automatycznego pobierania danych przez portal.











