Skip to main content
Zacznij od szybkich testów, a potem otwórz wpis pasujący do tego, co widzisz. Polecenia PowerShell uruchamiaj na komputerze z agentem.

Szybkie testy

W Omnilinkerze otwórz Integracja ERP > Połączenia, otwórz połączenie i sprawdź jego kartę Agent. Zobacz Monitorowanie.
  • isConnected: False: agent nie może połączyć się z Omnilinkerem albo Omnilinker go odrzuca.
  • isErpConnected: False: agent nie może odczytać bazy danych ERP.
  • Rosnąca wartość pending w statystykach kolejki wychodzącej: zmiany są wykrywane, ale nie są dostarczane.
Pola statusu opisuje dokumentacja lokalnego API.

Typowe problemy

Agent prowadzi dwa logi.Pliki logu usługi. Usługa Windows zapisuje jeden plik dziennie i przechowuje 30 ostatnich:
Zwykle jest to C:\ProgramData\Omnilinker\ErpSync\logs. Każdy, kto jest zalogowany na komputerze, może go czytać. Aby śledzić dzisiejszy plik:
W aplikacji w zasobniku polecenie View Logs > Open Log Folder otwiera ten sam folder.Log instalatora. Instalator, aktualizacje i odinstalowanie zapisują to, czego nie udało się zrobić, w pliku setup.log w tym samym folderze. Zobacz Instalacja się zakończyła, ale usługi nie ma.Log synchronizacji. Agent prowadzi też krótki log zdarzeń synchronizacji w swojej lokalnej bazie danych. Możesz go przeczytać w aplikacji w zasobniku przez View Logs albo przez GET /api/sync/logs w lokalnym API.Agent nie zapisuje własnych komunikatów w dzienniku zdarzeń Windows. Windows rejestruje błędy uruchamiania usługi w dzienniku System (zobacz następny wpis).
Get-Service OmnilinkerErpSyncService pokazuje Stopped albo usługa zatrzymuje się krótko po uruchomieniu. Aplikacja w zasobniku pokazuje w etykiecie ikony Disconnected.Usługa jest skonfigurowana tak, aby po awarii uruchamiać się ponownie (po 5, 10 i 30 sekundach), więc jeśli ciągle się zatrzymuje, problemu nie rozwiązuje ponowne uruchomienie.
  1. Otwórz Podgląd zdarzeń > Dzienniki systemu Windows > System i poszukaj błędów ze źródła Service Control Manager, które wymieniają Omnilinker ERP Sync (Omnilinker ERP Sync Service w instalacji wykonanej skryptem install-service.ps1). W przypadku awarii sprawdź też Dzienniki systemu Windows > Aplikacja pod kątem wpisów .NET Runtime lub Application Error.
  2. Otwórz najnowszy plik logu usługi (zobacz Gdzie są logi?). Jeśli usługa uruchomiła się na tyle, żeby coś zapisać, ostatnie wiersze mówią, dlaczego się zatrzymała. Krytyczny błąd uruchamiania kończy się komunikatem Omnilinker ERP Sync Service terminated unexpectedly.
Typowe przyczyny:
  • Błąd logowania. Ktoś ustawił usługę tak, aby działała na innym koncie, a hasło tego konta się zmieniło. Dziennik System informuje, że usługa nie została uruchomiona z powodu błędu logowania. Otwórz Usługi, otwórz Omnilinker ERP Sync > kartę Logowanie, wybierz Konto systemu lokalnego i kliknij OK. Agent jest przeznaczony do działania jako Lokalny system.
  • Port 5555 jest zajęty. Zobacz Port lokalnego API jest już zajęty.
  • Uszkodzony plik appsettings.json. Jeśli go edytowałeś, sprawdź, czy nadal zawiera poprawny JSON. W folderze instalacji uruchom:
    Błąd oznacza, że plik jest niepoprawny. Popraw go albo przywróć z oryginalnego pakietu.
Po naprawie uruchom usługę ponownie w PowerShell jako administrator:
Instalator zakończył pracę, ale Get-Service OmnilinkerErpSyncService nie znajduje usługi albo aplikacja w zasobniku nie uruchamia się przy logowaniu. Instalator nigdy nie przerywa pracy z powodu jednego kroku; to, czego nie udało się zrobić, zapisuje w %ProgramData%\Omnilinker\ErpSync\logs\setup.log:
Jeśli pliku setup.log w ogóle nie ma, instalator nie zdołał nawet utworzyć folderu. Uruchom go ponownie w PowerShell jako administrator.
Etykieta ikony pokazuje Disconnected albo kreator konfiguracji pokazuje „Failed to connect to service”.
  1. Sprawdź, czy usługa działa: Get-Service OmnilinkerErpSyncService. Jeśli nie, zobacz Usługa się nie uruchamia.
  2. Jeśli aplikacja w zasobniku pokazuje „Something other than the Omnilinker service answered. Restart the PC; if it happens again, contact support.”, w potoku agenta odpowiedział inny program. Aplikacja w zasobniku rozmawia tylko z usługą Windows. Uruchom komputer ponownie.
Widzisz status agenta, ale zapisanie ustawień, kreator konfiguracji, wstrzymanie synchronizacji albo włączenie śledzenia zmian kończy się komunikatem „Only an administrator of this PC can do that.”Twoje konto Windows nie może zmieniać agenta. Poproś administratora komputera, żeby dodał Cię do lokalnej grupy Omnilinker ERP Sync Operators, a potem spróbuj ponownie. Nie musisz się wylogowywać. Zobacz Kto może zmieniać agenta.Administrator może też zamknąć aplikację w zasobniku i uruchomić ją ponownie poleceniem Uruchom jako administrator.
Skrypt lub narzędzie do monitorowania dostaje 403 Forbidden z pustą treścią z adresu http://localhost:5555/api/....
  • Dodaj do każdego żądania nagłówek X-Omnilinker-Local: 1. Zobacz Lokalne API.
  • Wywołuj API przez localhost, 127.0.0.1 albo [::1], a nie przez nazwę komputera.
  • Ze strony internetowej API mogą wywoływać tylko strony Omnilinkera.
Usługa zatrzymuje się zaraz po uruchomieniu. Jej plik logu zawiera wiersz podobny do Failed to bind to address http://127.0.0.1:5555: address already in use.Inny program używa portu 5555 na komputerze z agentem. Znajdź go:
Zatrzymaj ten program albo przenieś go na inny port, a następnie uruchom usługę.Możesz przenieść agenta na inny port za pomocą LocalApiPort w appsettings.json, ale karta Usługa lokalna w aplikacji webowej i zapasowe połączenie aplikacji w zasobniku nadal używają portu 5555 i nie połączą się z agentem. Jeśli to możliwe, zwolnij port 5555. Zobacz opis konfiguracji.
Offline oznacza, że Omnilinker nie otrzymał sygnału kontrolnego (heartbeat) od ponad 3 minut. Pole Ostatni sygnał kontrolny pokazuje, kiedy dotarł ostatni. Działający, zaakceptowany agent wysyła go co 60 sekund.Sprawdź po kolei:
  1. Czy usługa działa? Zobacz Usługa się nie uruchamia.
  2. Czy agent może połączyć się z Omnilinkerem? Zobacz Agent nie może połączyć się z omnilinker.pl.
  3. Czy połączenie jest aktywne? W Integracja ERP > Połączenia połączenie musi mieć Status Aktywne. Omnilinker odrzuca sygnały kontrolne i zmiany dla nieaktywnego połączenia. Aby je włączyć, kliknij Aktywuj w menu Akcje wiersza.
  4. Czy klucz API jest nadal ważny? Zobacz Klucz API jest odrzucany.
  5. Czy agent nie jest za stary? Zobacz Omnilinker odrzuca wersję agenta.
Jeśli karta pokazuje Żaden agent jeszcze się nie połączył, agent nigdy nie połączył się z Omnilinkerem przy użyciu klucza tego połączenia. Przejdź przez kreator konfiguracji na komputerze z agentem.
Log agenta wielokrotnie pokazuje:
W aplikacji w zasobniku sprawdzenie klucza kończy się komunikatem „Invalid API key. Please check and try again.”.Klucz agenta przestał działać. Najczęściej ktoś ponownie kliknął Wygeneruj klucz agenta przy połączeniu: wygenerowanie nowego klucza natychmiast unieważnia poprzedni.Aby to naprawić:
  1. W Omnilinkerze otwórz Integracja ERP > Połączenia, otwórz menu Akcje wiersza i kliknij Wygeneruj klucz agenta. Skopiuj klucz. Jest wyświetlany tylko raz. Zobacz Tworzenie połączenia.
  2. Na komputerze z agentem otwórz Settings… w aplikacji w zasobniku, wklej klucz w sekcji Cloud Connection, kliknij Validate, a potem Save. Zobacz Aplikacja w zasobniku.
Ponowne wygenerowanie klucza unieważnia również ten, który właśnie utworzyłeś, więc zrób to tylko raz i od razu zapisz nowy klucz w agencie.Dwa powiązane komunikaty:
  • „API key doesn’t have required permissions. Grant ERP Integration permissions to this API key.” Klucz nie jest kluczem agenta. Użyj klucza z Wygeneruj klucz agenta, a nie klucza ze strony kluczy API w Administracji.
  • „This agent key is not authorized for the requested ERP connection.” Klucz należy do innego połączenia. Wybierz właściwe połączenie w ustawieniach aplikacji w zasobniku albo wygeneruj klucz w tym połączeniu.
Status: Forbidden w pierwszym komunikacie powyżej nie oznacza problemu z kluczem. Zobacz Omnilinker odrzuca wersję agenta i Zmiany nie docierają.
Omnilinker może wymagać minimalnej wersji agenta. Gdy Twój agent jest starszy, Omnilinker odrzuca każde jego żądanie z komunikatem:
Co widzisz:
  • W Omnilinkerze karta Agent połączenia zmienia stan na Offline, a Ostatni sygnał kontrolny przestaje się zmieniać. Wersja agenta nadal pokazuje Twoją starą wersję.
  • W logu agenta pojawia się Heartbeat returned Forbidden oraz Cloud API returned Forbidden for batch publish:, a po nim powyższy komunikat. Sprawdzanie konfiguracji zapisuje też Authentication failed ... Status: Forbidden, choć klucz jest w porządku.
  • Liczba pending w kolejce wychodzącej rośnie, a później rośnie też failed.
Agent aktualizuje się sam w nocy, gdy pojawi się nowsza wersja, więc problem powinien zniknąć sam. Jeśli nie znika, sprawdź, czy automatyczne aktualizacje są włączone (AutoUpdateEnabled) i czy komputer agenta ma dostęp do releases.omnilinker.com, albo uruchom nowy instalator ręcznie.Zrób to szybko. Każde odrzucone wysłanie liczy się jako nieudana próba, a zmiany, których wszystkie próby się nie powiodły, nie są wysyłane ponownie (zobacz Zmiany nie docierają).
Status pokazuje isConnected: False. Test połączenia z chmurą w aplikacji w zasobniku kończy się komunikatem Cloud connection failed: z przyczyną albo Cloud returned status: ze statusem HTTP.
  1. Sprawdź połączenie z komputera z agentem:
    TcpTestSucceeded : False oznacza, że połączenie blokuje zapora lub sieć. Agent potrzebuje wychodzącego połączenia HTTPS do omnilinker.pl na porcie 443. Zobacz Wymagania.
  2. Jeśli Twoja sieć wymaga serwera proxy, ustaw go dla całego komputera za pomocą zmiennej środowiskowej HTTPS_PROXY, a następnie uruchom usługę ponownie. Usługa działa jako Lokalny system, więc nie korzysta z ustawień proxy zalogowanej osoby:
  3. Sprawdź API URL w oknie Settings… aplikacji w zasobniku. Powinien to być https://omnilinker.pl.
Dopóki Omnilinker jest nieosiągalny, agent działa na ostatnio pobranej konfiguracji i nadal kolejkuje zmiany. Każde nieudane wysłanie liczy się jednak jako próba, więc długa przerwa może sprawić, że zakolejkowane zmiany zostaną trwale oznaczone jako nieudane. Zobacz Zmiany nie docierają.
Status pokazuje isErpConnected: False albo Test Connection w aplikacji w zasobniku zwraca SQL error:, a po nim komunikat SQL Server.Przetestuj ustawienia bazy danych w aplikacji w zasobniku: Settings… > Database Connection > Test Connection. Test jest wykonywany w usłudze Windows, na koncie usługi, więc zachowuje się tak samo jak agent.Nie można znaleźć serwera. Komunikat SQL Server zaczyna się od „A network-related or instance-specific error occurred while establishing a connection to SQL Server”.
  • Sprawdź Server / Host. Dla nazwanego wystąpienia użyj formatu server\instance, na przykład erp-server\WAPRO.
  • Sprawdź, czy komputer z agentem może połączyć się z portem SQL Server:
    Jeśli Twoje wystąpienie nie używa portu 1433, podaj jego port. Nazwane wystąpienie z portem dynamicznym wymaga też usługi SQL Server Browser i portu UDP 1434.
Logowanie nie powiodło się. Komunikat SQL Server zaczyna się od „Login failed for user”.
  • Uwierzytelnianie SQL Server (pole Username jest wypełnione): sprawdź nazwę użytkownika i hasło oraz to, czy SQL Server zezwala na uwierzytelnianie SQL Server (tryb mieszany).
  • Uwierzytelnianie Windows (pole Username puste): agent loguje się jako konto usługi, Lokalny system, a nie jako Ty. Użytkownik wymieniony w komunikacie to właśnie to konto: konto domenowe komputera z agentem (DOMAIN\COMPUTER$) przy zdalnym SQL Server albo NT AUTHORITY\SYSTEM przy SQL Server na tym samym komputerze. Nadaj temu kontu login i dostęp do odczytu bazy danych ERP albo użyj uwierzytelniania SQL Server. Zobacz Wymagania.
  • Sprawdź, czy login może otworzyć bazę danych podaną w polu Database Name.
Błędy certyfikatu. Komunikat SQL Server wspomina o certyfikacie, na przykład „The certificate chain was issued by an authority that is not trusted”.Agent domyślnie szyfruje połączenie z SQL Server, nawet gdy pole Encrypt connection nie jest zaznaczone, a większość instalacji SQL Server używa certyfikatu z podpisem własnym. Zainstaluj w SQL Server certyfikat, któremu ufa komputer z agentem, albo zaznacz Trust server certificate w sekcji Advanced Connection Options i kliknij Save.
Test Connection używa obu pól wyboru dokładnie tak, jak są zaznaczone, a usługa szyfruje połączenie, jeśli nie wskazano inaczej. Test może więc zakończyć się powodzeniem przy obu polach niezaznaczonych, a usługa nadal będzie zgłaszać błąd certyfikatu. Jeśli widzisz taką sytuację, zaznacz Trust server certificate.
Agent wykrywa zmiany, ale Omnilinker ich nie otrzymuje. GET /api/sync/outbox/stats pokazuje rosnącą wartość pending albo failed większe od zera. Menu w zasobniku pokazuje Queue: <n> pending | <n> failed.Jak agent ponawia próby. Agent przechowuje każdą zmianę w lokalnej kolejce wychodzącej (outbox) i co kilka sekund wysyła zmiany w paczkach. Gdy wysłanie się nie powiedzie, z jakiegokolwiek powodu, zmiana pozostaje w stanie pending i jest wysyłana ponownie w następnym cyklu. Po 5 nieudanych próbach (MaxRetryAttempts w appsettings.json) zostaje oznaczona jako failed i agent już jej nie wysyła.Przyczynę znajdziesz w pliku logu agenta. Szukaj tych wierszy:Sprawdź też, czy połączenie ma w Omnilinkerze status Aktywne.Zmiany, których wszystkie próby już się nie powiodły, nie są automatycznie wysyłane ponownie. Kolejna zmiana tego samego rekordu w ERP zostanie wykryta i wysłana jak zwykle.
Karta Agent pokazuje Online, ale w Omnilinkerze nie pojawiają się nowe wpisy logu synchronizacji.Sprawdź po kolei:
  1. Czy synchronizacja jest wstrzymana? Ikona w zasobniku jest bursztynowa, a jej etykieta pokazuje Paused, albo status pokazuje state: 2. Wybierz Resume Sync w menu w zasobniku. Zobacz Aplikacja w zasobniku.
  2. Czy typ encji jest skonfigurowany? Na karcie Konfiguracja synchronizacji połączenia każdy typ encji, który chcesz synchronizować, musi mieć konfigurację w stanie Włączone. Jeśli karta pokazuje komunikat „Nie znaleziono konfiguracji synchronizacji. Dodaj konfigurację, aby włączyć synchronizację.”, dodaj konfigurację. Zobacz Konfiguracja synchronizacji.
  3. Czy wykrywanie zmian jest włączone? Przy wykrywaniu zmian przez skanowanie skrótów (domyślnym) agent znajduje zmiany tylko dzięki weryfikacji hash. Otwórz konfigurację synchronizacji typu Produkt, rozwiń Zaawansowane ustawienia czasowe i upewnij się, że Wykrywanie zmian przez hash ma zaznaczone Włączone. W menu w zasobniku Hash Check: Disabled oznacza, że jest wyłączone.
  4. Czy agent wczytał swoją konfigurację? Jeśli lastError ma wartość Waiting for cloud configuration, agent nie pobrał jeszcze swoich ustawień z Omnilinkera. Zobacz Klucz API jest odrzucany i Agent nie może połączyć się z omnilinker.pl.
  5. Czy dane logowania do ERP są ustawione? Jeśli lastError ma wartość ERP credentials not configured albo test ERP w aplikacji w zasobniku pokazuje „No ERP credentials configured. Run setup wizard to configure.”, przejdź przez kreator konfiguracji.
  6. Czy w ERP coś się zmieniło? Agent wysyła tylko zmiany. Pierwsza weryfikacja hash po instalacji porównuje wszystkie rekordy, a kolejne znajdują tylko to, co zmieniło się od poprzedniej. Aby sprawdzić od razu, wybierz Trigger Hash Check w menu w zasobniku.
Weryfikacja hash uruchamia się zgodnie ze swoim interwałem (domyślnie co 15 minut). Sync Now w aplikacji w zasobniku uruchamia ją wcześniej.
Wpisy logu synchronizacji w Omnilinkerze nie mają plakietki statusu, a ich komunikat błędu to kod, taki jak ErpIntegration:Skip:ProductNotMapped. Omnilinker otrzymał zmianę, ale celowo jej nie zastosował.Większość z nich oznacza, że coś nie jest jeszcze zmapowane:
  • ErpIntegration:Skip:PriceLevelNotMapped lub ErpIntegration:Skip:WarehouseNotMapped: zmapuj poziom cen lub magazyn ERP na karcie Mapowania połączenia. Zobacz Dane słownikowe.
  • ErpIntegration:Skip:ProductNotMapped: cena, stan magazynowy lub zestaw należy do produktu, który nie jest jeszcze powiązany z produktem w katalogu. Upewnij się, że produkty synchronizują się jako pierwsze. Zobacz Mapowania pól.
Pełna lista znajduje się na stronie Monitorowanie.
Testuj połączenie w menu Akcje połączenia zawsze zgłasza niepowodzenie. Tak ma być: Omnilinker nie ma danych logowania do Twojej bazy danych ERP, które pozostają na komputerze z agentem. Zamiast tego przetestuj połączenie z bazą danych w aplikacji w zasobniku: Settings… > Database Connection > Test Connection.
Uruchom synchronizację na stronie połączenia (oraz przycisk synchronizacji na panelu) wyświetla potwierdzenie „Synchronizacja została uruchomiona”, ale polecenie nie dociera do agenta. Ponów przy nieudanym wpisie logu synchronizacji tylko przywraca go do stanu Oczekujące.Aby agent od razu poszukał zmian, użyj Sync Now lub Trigger Hash Check w aplikacji w zasobniku albo POST /api/sync/now w lokalnym API. Zobacz też Monitorowanie.
Karta Usługa lokalna połączenia komunikuje się z agentem pod adresem http://localhost:5555 z Twojej przeglądarki. Działa tylko w przeglądarce na komputerze z agentem, gdy agent używa portu 5555. Na każdym innym komputerze ten komunikat jest oczekiwany. Zamiast tego użyj karty Agent. Zobacz Monitorowanie.

Pomoc

Jeśli nic z tego nie rozwiąże problemu, skontaktuj się z pomocą techniczną Omnilinkera. Dołącz:
  • Nazwę połączenia i to, co widzisz na jego karcie Agent.
  • Wersję agenta z karty Agent albo z pola version w GET /api/sync/status.
  • Wynik szybkich testów z początku tej strony.
  • Pliki logu usługi z okresu, w którym pojawił się problem.
Nigdy nie wysyłaj pliku credentials.dat i nie wklejaj do wiadomości klucza API ani hasła do ERP. Lokalne API nigdy ich nie zwraca. Przejrzyj pliki logu, zanim je wyślesz.