Integracje z systemami, które nie mają interfejsu

Mosiężny telegraf maszynowy ze wskaźnikiem

Starsze oprogramowanie branżowe często nie ma żadnego interfejsu programistycznego. To nie znaczy, że integracja jest niemożliwa — zmienia się tylko sposób.

Wymiana plikami

Najprostsza droga: jeden system zapisuje plik w ustalonym miejscu, drugi go odczytuje. Wymaga uzgodnienia formatu, częstotliwości i sposobu oznaczania plików przetworzonych.

Kilka szczegółów rozstrzyga o tym, czy takie rozwiązanie działa stabilnie. Plik odczytywany w trakcie zapisu bywa niekompletny, więc zapisuje się go pod nazwą tymczasową i zmienia dopiero na końcu. Pliki przetworzone przenosi się do osobnego katalogu, żeby nie wczytać ich powtórnie. Warto też zachowywać kopie przez pewien czas — przy sporze o dane jest to jedyny dowód.

Odczyt z bazy danych

Możliwy, gdy znamy strukturę. Wyłącznie do odczytu — zapis wprost do bazy cudzego programu omija jego logikę i psuje dane w sposób trudny do wykrycia.

Nawet odczyt warto ograniczyć do osobnego konta z minimalnymi uprawnieniami i wykonywać poza godzinami największego obciążenia. Zapytanie przeszukujące całą bazę potrafi spowolnić pracę użytkowników programu.

Eksport wbudowany

Wiele starszych programów potrafi eksportować dane do pliku, choć wymaga to kliknięcia. Automatyzacja tego kliknięcia bywa prostsza niż budowanie integracji od zera.

Rozwiązanie działa, dopóki nic się nie zmienia. Aktualizacja programu, inne ustawienie okna, dodatkowy komunikat przy starcie — każda z tych rzeczy potrafi zatrzymać automat. Dlatego taki mechanizm musi zgłaszać, że się nie wykonał, zamiast milczeć.

Co ustalić przed startem

Gdzie leży plik i kto ma do niego dostęp, o której powstaje, co robimy, gdy nie powstanie, oraz po czym poznajemy, że jest kompletny. Potrzebna jest też zgoda dostawcy programu, jeśli sięgamy do jego bazy — bywa, że narusza to warunki wsparcia technicznego. Lepiej zapytać wprost, zanim rozwiązanie powstanie.

Przy kilku takich połączeniach naraz porządkuje je warstwa pośrednia: pliki trafiają w jedno miejsce, są tam przekształcane i rozsyłane dalej, zamiast łączyć każdy program z każdym osobno.

Mapowanie mimo wszystko

Brak interfejsu nie zwalnia z tłumaczenia pól i słowników. Przeciwnie: pliki ze starszych programów częściej mają nietypowe kodowanie znaków, daty w nieoczywistym zapisie i kwoty z separatorem, który psuje odczyt. To trzeba sprawdzić na rzeczywistych danych, nie na przykładzie.

Ograniczenia

Wymiana plikami działa z opóźnieniem i nie nadaje się do operacji wymagających natychmiastowej odpowiedzi. Przy stanach magazynowych trzeba to uwzględnić w regułach sprzedaży.

Praktyczną konsekwencją jest większy bufor bezpieczeństwa przy wymianie danych ze sklepem i ostrożniejsze podejście do sprzedaży ostatnich sztuk.

Kruchość

Rozwiązanie oparte na strukturze bazy albo na układzie eksportu przestaje działać po aktualizacji programu. Warto to zakładać z góry i przewidzieć koszt utrzymania.

Kiedy odpuścić

Jeśli program jest wycofywany, budowanie do niego integracji bywa pracą do wyrzucenia. Czasem lepiej poczekać na zmianę systemu.

Odpuścić warto też wtedy, gdy wymiana dotyczy kilku dokumentów dziennie. Przepisanie ich ręcznie kosztuje mniej niż utrzymanie kruchego mechanizmu, który trzeba naprawiać po każdej aktualizacji.