Mapowanie danych między systemami

Rozjazd kolejowy z oznaczeniami torów

Ten sam fakt gospodarczy jest w każdym systemie zapisany inaczej. Integracja polega w dużej mierze na tłumaczeniu jednego zapisu na drugi.

Trzy poziomy mapowania

Pola — który element odpowiada któremu. Słowniki — jak przetłumaczyć wartości, na przykład statusy zamówień. Jednostki i formaty — daty, waluty, separatory, jednostki miary.

Najwięcej cichych błędów siedzi w trzecim poziomie. Data zapisana w innej kolejności, kwota z przecinkiem zamiast kropki, cena brutto wstawiona w pole ceny netto — wszystkie te wartości przechodzą kontrolę poprawności i ujawniają się dopiero przy rozliczeniu.

Od czego zacząć

Od spisu pól po obu stronach z zaznaczeniem, które są wymagane. Pole wymagane u partnera, a nieprowadzone u nas, trzeba czymś uzupełnić — i to jest decyzja do podjęcia przed budową, nie w trakcie. Ten sam spis przydaje się potem przy ustalaniu, co idzie w którą stronę.

Statusy zamówień

Najczęstsze źródło problemów. Każdy system ma własny zestaw i rzadko odpowiadają sobie jeden do jednego. Mapowanie musi rozstrzygnąć, co zrobić ze statusem, który nie ma odpowiednika.

Trudniejszy przypadek to zależność wielu do jednego. Kilka statusów partnera oznacza u nas ten sam stan, więc tłumaczenie w drugą stronę przestaje być jednoznaczne. Wtedy trzeba wskazać, który status jest wysyłany domyślnie.

Kartoteki i identyfikatory

Mapowanie pól nie ma sensu, dopóki nie wiadomo, który towar u nas odpowiada któremu u partnera. Powiązanie po kodzie kreskowym albo po symbolu obecnym w obu systemach jest trwałe; powiązanie po nazwie rozpada się przy pierwszej korekcie literówki. Jeśli kartoteki są zaniedbane, ich uporządkowanie stanowi osobny etap prac — zwykle dłuższy niż samo napisanie integracji.

Trzeba też zdecydować, co dzieje się z pozycją, której nie da się dopasować: pomijamy ją, tworzymy nową czy zatrzymujemy do sprawdzenia. Automatyczne tworzenie brakujących kartotek jest wygodne i najszybciej zaśmieca bazę duplikatami.

Wartość bez odpowiednika

Zawsze się pojawi. Rozwiązania są trzy: wartość domyślna, pominięcie pozycji albo zatrzymanie do decyzji. Wybór zależy od tego, jak istotne jest pole — przy adresie dostawy nie ma miejsca na wartość domyślną.

Niezależnie od wyboru zdarzenie powinno zostawić ślad. Ciche podstawienie wartości domyślnej jest wygodne dziś i staje się źródłem rozbieżności, których po kilku miesiącach nikt nie umie wytłumaczyć.

Mapowanie w konfiguracji, nie w kodzie

Zmiana słownika u partnera nie powinna wymagać zmiany programu. Mapowanie zapisane jako dane pozwala je poprawić bez wdrożenia nowej wersji.

To także powód, dla którego mapowanie naturalnie trafia do warstwy pośredniej: jeden zestaw reguł obsługuje wszystkie połączenia, zamiast powielać te same tłumaczenia w każdej integracji z osobna.

Dokumentowanie decyzji

Po roku nikt nie pamięta, dlaczego dany status tłumaczy się właśnie tak. Krótki komentarz przy regule oszczędza godzin analizy.

Warto też zapisać, kto rozstrzygnął wątpliwość. Mapowanie jest decyzją handlową ubraną w technikę i najczęściej trzeba do niej wrócić wtedy, gdy zmienia się sposób pracy, a nie oprogramowanie.