Synchronizacja kolektora¶
Ta strona opisuje, jak technicznie wygląda wymiana danych między serwerem MobiSkan WMS a terminalami z aplikacją MobiSkan Kolektor.
Dwa porty¶
Serwer nasłuchuje na dwóch portach:
| Port | Przeznaczenie |
|---|---|
| 3000 | panel i API, połączenie nieszyfrowane w sieci lokalnej |
| 3443 | połączenie szyfrowane dla kolektorów |
Aplikacja kolektora odrzuca adresy nieszyfrowane. Certyfikat serwera jest przypinany po odcisku przekazanym w kodzie QR parowania, więc urządzenie rozpoznaje dokładnie ten serwer, z którym zostało sparowane, i nie zaakceptuje innego.
Parowanie¶
Panel -> wygenerowanie tokenu urządzenia (zajęcie miejsca w limicie licencji)
-> kod QR: adres serwera + token + odcisk certyfikatu
Terminal -> skan kodu QR
-> sprawdzenie połączenia z serwerem
-> pobranie katalogu i konfiguracji
-> logowanie operatora
Adres w kodzie QR jest wyliczany przez serwer na podstawie jego rzeczywistego adresu w sieci lokalnej i faktycznego portu nasłuchu, a nie na podstawie adresu, pod którym administrator akurat otworzył panel.
Dwie tożsamości, dwa zakresy¶
| Tożsamość | Co odblokowuje |
|---|---|
| Token urządzenia | odczyt danych: katalog, słowniki, listy dokumentów, konfiguracja. Działa przed zalogowaniem operatora |
| Sesja operatora terminala | zapis danych: tworzenie dokumentów, dodawanie pozycji, zamykanie dokumentów |
Podział jest celowy: urządzenie może pobrać dane potrzebne do pracy offline zanim ktokolwiek się na nim zaloguje, ale niczego nie zapisze bez konta operatora.
Przy każdym żądaniu serwer sprawdza na nowo, czy konto operatora jest wciąż aktywne i czy token urządzenia nadal obowiązuje. Odebranie dostępu działa więc natychmiast, bez czekania na wygaśnięcie sesji.
Co urządzenie pobiera¶
- katalog towarów,
- partie i numery seryjne,
- mapowania magazynów,
- ustawienia aplikacji i czytnika oraz ustawienia platformy,
- listy i pozycje dokumentów siedmiu rodzajów: kompletacji, gromadzenia danych, przyjęć zewnętrznych, wydań zewnętrznych, rozchodów wewnętrznych, zwrotów wewnętrznych i przesunięć magazynowych,
- dokumenty Bazy towarów.
Urządzenie wysyła też na serwer potwierdzenie zastosowania ustawień oraz telemetrię poziomu baterii, widoczną potem na Pulpicie.
Co urządzenie zapisuje¶
Dla każdego z siedmiu rodzajów dokumentów dostępne są trzy operacje: utworzenie dokumentu, dodanie pozycji i zamknięcie dokumentu. Poza tym urządzenie może utworzyć pozycję katalogu wraz ze zdjęciem.
Aktualizacja istniejącej pozycji katalogu z poziomu urządzenia nie istnieje i jest to decyzja świadoma: katalog płynie w jedną stronę, z serwera na urządzenie.
Pobieranie przyrostowe katalogu¶
Katalog towarów jest jedynym zbiorem pobieranym przyrostowo:
- pobranie może być ograniczone do zmian od wskazanego momentu oraz do pozycji o danym pochodzeniu,
- wyniki są stronicowane, a rozmiar strony jest przycinany przez serwer do bezpiecznego zakresu,
- kolejne strony jednego pobrania widzą ten sam moment startu, więc pozycje zmienione w trakcie stronicowania nie gubią się ani nie duplikują.
Pozostałe zbiory (dokumenty, partie, numery seryjne, mapowania magazynów, ustawienia) są pobierane jako pełne listy.
Nazwy zamiast identyfikatorów¶
Wszystkie odwołania przychodzące z urządzenia i z konektora są przekazywane po nazwie czytelnej dla człowieka, nigdy po wewnętrznym identyfikatorze serwera: nazwa magazynu, nazwa kontrahenta, nazwa przewoźnika, symbol waluty, skrót jednostki, kod kreskowy.
Zasady rozwiązywania nazw różnią się celowo:
- magazyn dokumentu jest zakładany automatycznie, jeśli nie istnieje,
- magazyn, waluta, jednostka i stawka VAT nowej pozycji katalogu muszą już istnieć - nieznana nazwa powoduje odrzucenie żądania.
Idempotencja i konflikty¶
Ochrona przed dublowaniem danych działa na dwóch niezależnych poziomach:
- Identyfikator polecenia przekazany przez urządzenie - powtórzenie żądania z tym samym identyfikatorem zwraca wcześniejszy wynik.
- Klucz naturalny dokumentu i pozycji katalogu, złożony z pochodzenia i identyfikatora w systemie źródłowym - dokument już wysłany nie tworzy duplikatu.
Ograniczenie: mechanizm klucza naturalnego obejmuje sam dokument, nie jego pojedyncze linie.
Zamknięcie dokumentu może przekazać oczekiwaną wersję. Niezgodność wersji albo dokument już zamknięty powodują odrzucenie z błędem konfliktu wersji.
Wersjonowanie ustawień¶
Zapis konfiguracji w panelu nie wypycha jej jeszcze na urządzenia. Robi to przycisk "Wyślij ustawienia", który podbija numer wersji ustawień. Urządzenia pobierają nową wersję i potwierdzają jej zastosowanie - panel pokazuje wtedy przy tokenie stan Aktualne albo Oczekuje.
Ustawienia są wspólne dla firmy. Osobno dla urządzenia zapamiętywana jest wyłącznie informacja, którą wersję już zastosowało.
Praca offline¶
Urządzenie pracuje na pobranych danych także bez łączności. Ustawienia oczekujące na zastosowanie zostaną wczytane automatycznie przy najbliższym logowaniu operatora albo powrocie do zasięgu sieci.
Diagnostyka problemów z parowaniem¶
Najczęstsze przyczyny komunikatu o nieprawidłowym kodzie parowania:
| Przyczyna | Co sprawdzić |
|---|---|
| Zły adres lub port w kodzie | czy serwer jest osiągalny z sieci, w której pracuje terminal |
| Zapora sieciowa | czy porty 3000 i 3443 są dopuszczone dla ruchu w sieci lokalnej |
| Token już unieważniony | czy token wciąż widnieje na liście w panelu |
| Wyczerpany limit licencji | czy jest wolne miejsce w limicie urządzeń |
Powiązane strony¶
- Kolektory - parowanie i konfiguracja od strony panelu.
- API - uwierzytelnianie, błędy, limity.
- Dokumentacja Kolektora - obsługa aplikacji na terminalu.