W sytuacji, gdy aplikacja Comarch Mobile została zainstalowana przez Comarch ERP Auto Update i w konfiguracji serwera synchronizacji podano nieprawidłowe dane, wszelkich zmian dla bieżącej instalacji należy dokonywać w pliku configuration.properties (domyślna lokalizacja: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji).
Po dokonaniu zmian w pliku należy uruchomić ponownie usługę Comarch Mobile Server.
Zmiany dokonane w konfiguracji Comarch ERP Auto Update po zakończeniu instalacji będą dokonane na poczet przyszłych instalacji lub aktualizacji. W bieżącej instalacji nie zostaną dokonane żadne zmiany.
Komunikat: Login failed for user... lub Cannot open database database_name requested by the login. The login failed.
W przypadku pojawienia się w pliku log.txt komunikatu np. java.sql.SQLException: Login failed for user 'admin' lub Cannot open database "ERP_database_name" requested by the login. The login failed.., należy podać prawidłowe dane logowania do serwera SQL.
Dane użytkownika domenowego, który ma dostęp do serwera SQL i bazy danych systemu ERP należy podać we właściwościach usługi Comarch Mobile Server.
Dane użytkownika lokalnego na serwerze SQL (np. sa) należy podać w pliku configuration.properties poprzez dopisanie dwóch nowych parametrów w nowych wierszach pliku:
user=nazwa użytkownikapassword=hasło użytkownika
W celu zwiększenia bezpieczeństwa możliwe jest zaszyfrowanie hasła. W tym celu należy uruchomić plik EncryptConfigValue.exe znajdujący się w tej samej lokalizacji, w której znajduje się edytowany plik konfiguracyjny. W konsoli programu należy wpisać hasło i kliknąć [Enter]. Wynikiem będzie zaszyfrowane hasło, które należy skopiować do parametru password. Po zapisaniu pliku configuration.properties należy uruchomić ponownie usługę Comarch Mobile Server.
Komunikat: Server down...
W momencie, gdy konfiguracja komponentu serwera synchronizacji jest nieprawidłowa i serwer nie został uruchomiony w pliku log.txt znajdziemy informację Server down. Wówczas we wpisach bezpośrednio nad tą frazą znajdować się będzie informacja pozwalająca ustalić przyczynę problemu.
W przypadku pojawienia się komunikatu Server down należy zweryfikować przede wszystkim:
Czy w pliku configuration.properties zostały odpowiednio wypełnione dane odnośnie: serwera (z podaniem instancji poprzedzonej podwójnym znakiem „\”), nazwy bazy, dodatkowych parametrów oraz Menadżera Kluczy (plik configuration.properties powinien znajdować się w folderze, w którym został zainstalowany serwer Comarch Mobile, domyślnie jest to lokalizacja: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji)
Która wersja Javy jest zainstalowana jako „domyślna”? – w tym celu należy otworzyć rejestr Windows (regedit) i przejść do wpisu: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/ServerService/Parameters/Application. Należy zmodyfikować wartość [Application] i wpisać poprawną ścieżkę do Javy (np. C:\Program Files\Java\jre1.8.0_131\bin\java.exe).
Czy na zakładce Logowanie we właściwościach usługi Comarch Mobile Server zaznaczona jest opcja [To konto] i podane są właściwe dane do logowania lub w pliku [configuration.properties] jest wskazany użytkownik na którego usługa ma logować się do serwera SQL. Jeżeli na zakładce Logowanie usługi Comarch Mobile Server zostanie wskazane Lokalne konto systemowe, wówczas nastąpi logowanie do bazy przy użyciu konta, na którym działa usługa Comarch Mobile Server.
Właściwości usługi Comarch Mobile Server
Po wprowadzeniu poprawek należy ponownie uruchomić usługę Comarch Mobile Server.
Uwaga
W sytuacji, gdy na serwerze SQL znajdują się instancje, do poprawnego działania usługi Comarch Mobile Server wymagane jest uruchomienie serwisu SQL Server Browser.
Uwaga
Usługa Comarch Mobile Server do poprawnego uruchomienia wymaga włączonego serwera SQL. Przy restarcie komputera może zdarzyć się, że ta usługa będzie uruchamiała się przed nim, czego efektem będzie błąd w inicjalizacji serwera Comarch Mobile. Jeżeli serwer Comarch Mobile i serwer SQL są na tym samym komputerze można się przed tym zabezpieczyć odpowiednio ustawiając zależności. W tym celu należy ręcznie z linii poleceń dodać zależność do usługi Comarch Mobile Server:
Na właściwościach usługi Comarch Mobile Server należy wejść na zakładkę [Zależności] i sprawdzić, jakie zależności aktualnie obowiązują.
Jeżeli na serwerze SQL nie ma instancji oraz nie została ustalona zależność do SQL Servera to:
Należy odnaleźć na liście usług usługę SQL Server, która jest odpowiedzialna za instancję, na której znajduje się baza danych systemu ERP
Z właściwości usługi należy pobrać nazwę usługi
Następnie należy wykonać komendę z linii komend: sc config serverservice depend= „nazwa_usługi_sqlserver”
Jeżeli na serwerze SQL znajdują się instancje, ale nie ma ustanowionej zależności do SQL Browser, to należy wykonać polecenie: sc config serverservice depend = "MSSQLSERVER/SQLBrowser" (usunąć zależność można poleceniem: sc config serverservice depend= "")
Komunikat: Unable to get information from SQL Sever
Najczęstszą przyczyną występowania komunikatu Unable to get information from SQL Serverw pliku log.txt jest wyłączona usługa SQL Sever Browser. Należy ją włączyć i zrestartować serwer SQL.
Komunikat: Address already in use: JVM_Bind
Najczęstszą przyczyną występowania komunikatu Address already in use: JVM_Bind w pliku log.txt jest uruchomiony inny proces na tym samym porcie (5030), który blokuje działanie serwera synchronizacji. W opisanej sytuacji można:
w wierszu poleceń sprawdzić jaki proces blokuje port: netstat -aon | find "5030"
w pliku configuration.properties zmienić na inny port (domyślna lokalizacja: C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji).
Po dokonaniu zmian należy uruchomić ponownie usługę Comarch Mobile Server.
Najczęstsze komunikaty występujące w synchronizacji
Komunikaty w pliku log_synchronization.txt
1. System.InvalidOperationException: Sequence contains more than one matching element (Sekwencja zawiera więcej niż jeden pasujący element)Przyczyna: Błąd synchronizacji kontrahentów do systemu Comarch ERP XL, spowodowany tym, że jeden lub więcej kontrahentów mają więcej niż jeden adres oznaczony jako domyślny.
Rozwiązanie: Należy otworzyć najnowszy plik contractors.JSON z katalogu SyncErrors, odnaleźć kontrahentów z wieloma domyślnymi adresami i ustawić tylko jeden adres jako isDefault: true, który jest jednocześnie adresem aktywnym. Pozostałym adresom zmienić jako isDefault: false. Po zapisaniu zmian należy przenieść go do katalogu SyncData.
2. System.OverflowException: Value was either too large or too small for an Int32 (Wartość jest za duża albo za mała dla wartości typu Int32)Przyczyna: Nieprawidłowa wartość daty planowania w wizycie handlowej (np. zbyt duża wartość liczbowa w polach plannedStartDate lub plannedEndDate).
Rozwiązanie: Należy otworzyć najnowszy plik visits.JSON z katalogu SyncErrors, zweryfikować pola daty (plannedStartDate, plannedEndDate) i poprawić je na aktualne daty przy pomocy np. EpochConverter. Następnie zapisać plik i przenieść do katalogu SyncData.
3. System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'a' (Błędna składnia w pobliżu 'a')Przyczyna: Błędny znak (np. apostrof ' zamiast gravisa ` ) wpisany np. w opisie wizyty handlowej, który system odczytuje jako niezamknięty cudzysłów i powoduje nieprawidłową składnię SQL.
Rozwiązanie: Należy otworzyć najnowszy plik visits.JSON z katalogu SyncErrors, odnaleźć błędne znaki w polach tekstowych i poprawić je. Zapisany plik należy przenieść do katalogu SyncData.
4. System.IO.IOException: The file exists (Plik już istnieje)Przyczyna: Przekroczona liczba plików tymczasowych w katalogu C:\Users\[Nazwa_Użytkownika]\AppData\Local\Temp.
Rozwiązanie: Należy posortować pliki w katalogu według daty i usunąć pliki np. starsze niż tydzień. Następnie zrestartować usługę Comarch Mobile Server, co powinno umożliwić ponowną synchronizację danych między aplikacją, a systemem ERP.
5. System.IO.IOException: Cannot create a file when that file already exists (Nie można utworzyć pliku, który już istnieje)Przyczyna: Nadmiar plików tymczasowych, najczęściej związanych z Comarch Mobile, w katalogu tymczasowym systemu.
Rozwiązanie: Należy otworzyć katalog C:\Users\[Nazwa_Użytkownika]\AppData\Local\Temp, posortować pliki według daty i usunąć te starsze niż tydzień. Następnie zrestartować usługę Comarch Mobile Server, co powinno umożliwić ponowną synchronizację danych między aplikacją, a systemem ERP.
6. System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'sa' (Nieudane logowanie dla użytkownika 'sa')Przyczyna: Zmiana dotychczasowego hasła użytkownikowi SQL, który odpowiada za połączenie Comarch Mobile z systemem ERP.
Rozwiązanie: Należy zaktualizować dane logowania w pliku configuration.properties w katalogu Serwera synchronizacji. W celu zwiększenia bezpieczeństwa możliwe jest zaszyfrowanie hasła. Więcej informacji TUTAJ.
7. Erp attachment relation could not be found for Attachment. Attachments has empty binary data and therefore it will be skipped (Nie można znaleźć relacji załącznika Erp dla załącznika. Załącznik ma puste dane binarne i dlatego zostanie pominięty.)Przyczyna: Załącznik dodany do dokumentu w Comarch Mobile został usunięty z pamięci urządzenia przed jego synchronizacją do centrali.
Rozwiązanie: Należy sprawdzić, czy kliknięcie na załącznik (np. w kaflu "Stan") przenosi do galerii lub powoduje komunikat „Nie można znaleźć pliku (załącznika)”. Zmiana statusu załącznika jest możliwa poprzez modyfikację tabeli Synchronization na bazie mobilnej (plik data.db w pamięci urządzenia). Dany obiekt należy odszukać ww. tabeli i przypisaną wartość w kolumnie State zmienić na 3 (Zsynchronizowano).
8. System.Data.OleDb.OleDbException (0x80040E09): The INSERT permission was denied on the object 'PicoDaneAS', database 'Nazwa_Bazy_Danych', schema 'CDN' (Odmowa uprawnienia INSERT na obiekcie 'PicoDaneAS', baza danych 'Nazwa_Bazy_Danych', schemat 'CDN')Przyczyna: Brak odpowiednich uprawnień użytkownika CDNOffline w bazie danych.
Rozwiązanie: Należy przyznać użytkownikowi brakujące uprawnienia w SQL Management Studio.
9. System.Data.OleDb.OleDbException (0x80004005): Cannot continue the execution because the session is in the kill state (Nie można kontynuować wykonywania, ponieważ sesja jest w stanie zakończenia)Przyczyna: Niezgodność wersji systemu ERP XL i aplikacji Comarch Mobile.
Rozwiązanie: Należy zweryfikować kompatybilność wersji aplikacji z systemem Comarch ERP XL. Więcej informacji dostępnych TUTAJ.
10. System.Data.SqlClient.SqlException (0x80131904): ##OPT34168##Przyczyna: Na stanowisku mobilnym w systemie Comarch ERP Optima nie została wybrana definicja numeratora CRM, a użytkownik wystawił nowe działania CRM w aplikacji mobilnej.
Rozwiązanie: Należy uzupełnić konfigurację numeratora CRM na stanowisku mobilnym w Comarch ERP Optima, a następnie ponowić synchronizację.
11. System.Data.SqlClient.SqlException (0x80131904): ##OPT32343##Przyczyna: Edycja kontrahenta „Nieokreślony” w aplikacji Comarch Mobile, co jest niedozwolone.
Rozwiązanie: Należy wygenerować nową bazę mobilną lub zmienić status kontrahenta w obecnej bazie, aby wykluczyć go z synchronizacji. Zmiana statusu kontrahenta jest możliwa poprzez modyfikację tabeli Synchronization na bazie mobilnej (plik data.db w pamięci urządzenia). Dany obiekt należy odszukać ww. tabeli i przypisaną wartość w kolumnie State zmienić na 3 (Zsynchronizowano).
12. Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value . Line 1, position 1 (Nieoczekiwany znak napotkany podczas analizowania wartości . Linia 1, pozycja 1)Przyczyna: Próba wczytania pustego pliku documents.JSON.
Rozwiązanie: Należy usunąć pusty plik z katalogu SyncData i ponowić synchronizację w aplikacji Comarch Mobile.
13. System.Data.SqlClient.SqlException (0x80131904): The INSERT statement conflicted with the FOREIGN KEY constraint "FK__VisitsElements_Visits" (Instrukcja INSERT spowodowała konflikt z ograniczeniem FOREIGN KEY „FK__VisitsElements_Visits”)Przyczyna: Niektóre wizyty próbują się odwołać do ID wizyt, których nie ma w bazie ERP, ponieważ mogły być zsynchronizowane wcześniej z inną bazą danych, np. kopią. Użytkownik po zmianie bazy nie wygenerował nowej bazy mobilnej.
Rozwiązanie: Należy wygenerować nową bazę mobilną na urządzeniu.
14. System.Data.SqlClient.SqlException (0x80131904): Cannot insert the value NULL into column 'DKnt_OptimaId', table 'CDN.DetalKontrahenci'; column does not allow nulls. UPDATE fails. The statement has been terminated. (Nie można wstawić wartości NULL do kolumny „DKnt_OptimaId” tabeli „CDN.DetalKontrahenci”, ponieważ kolumna nie pozwala na wprowadzanie takich wartości. UPDATE kończy się niepowodzeniem)Przyczyna: Błąd występuje przy synchronizacji kontrahenta do systemu Comarch ERP Optima – wartość NULL w polu DKnt_OptimaId, która nie jest dozwolona. Przyczyną mogą być nieprawidłowe znaki diakrytyczne np. é, æ, o, ñ, ß, ì w polu code.
Rozwiązanie: Należy otworzyć plik contractors.JSON z katalogu SyncErrors, sprawdzić i poprawić pole code, usuwając znaki diakrytyczne. Poprawiony plik należy zapisać i przenieść do katalogu SyncData.
15. System.Data.SqlClient.SqlException (0x80131904): Cannot insert the value NULL into column „DTrN_NumerString" table 'CDN.DetalTraNag', column does not allow nulls. INSERT fails. The statement has been terminated (Nie można wstawić wartości NULL do kolumny „DTrN_NumerString” tabeli 'CDN.DetalTraNag', kolumna nie zezwala na wartości null. INSERT nie powiedzie się. Instrukcja została zakończona)Przyczyna: Brak ustawionej numeracji dla typu dokumentu, który próbuje zostać zsynchronizowany z Comarch Mobile do systemu Comarch ERP Optima.
Rozwiązanie 1: Jeśli przedstawiciel ma mieć możliwość wystawiania danego typu dokumentu należy skonfigurować schemat numeracji dokumentu na stanowisku mobilnym w Comarch ERP Optima.
Rozwiązanie 2: W przypadku chęci zrezygnowania z wystawiania danego typu dokumentu przez danego przedstawiciela, należy wygenerować nową bazę mobilną.
16. Comarch.B2.Common.Extensibility.B2ExtensionException: Object reference not set to an instance of an object (Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu) lub System.InvalidOperationException: The sequence does not contain a matching element (Sekwencja nie zawiera pasującego elementu)Przyczyna: Błąd występuje podczas synchronizacji raportów kasowych z Comarch Mobile do systemu Comarch ERP Altum. Brak wymaganych uprawnień operatora.
Rozwiązanie: W systemie Comarch ERP Altum należy przejść do grupy operatorów i w zakładce Obiekty przydzielić brakujące uprawnienia do: form płatności i płatności, wpłat i wypłat kasowo-bankowych, raportów kasowo/bankowych, rejestrów kasowo-bankowych.
17. Comarch.B2.Common.B2PermissionDenyException: No authority to add document (Brak uprawnień do dodania dokumentu)Przyczyna: Synchronizacja dokumentów handlowych do Comarch ERP Altum kończy się błędem z powodu braku odpowiednich uprawnień operatora.
Rozwiązanie: Należy w systemie Comarch ERP Altum otworzyć grupę operatorów i w zakładce Obiekty nadać brakujące uprawnienia do: form płatności i płatności, kontrahenta, magazynów, rejestrów VAT, załączników.
18. System.Data.SqlClient.SqlException (0x80131904): Błąd połączenia z SQL Server (error 40 - Named Pipes Provider)Przyczyna: Błąd konfiguracji połączenia z serwerem SQL. Serwer może być niedostępny, źle skonfigurowany lub jego nazwa została błędnie wpisana.
Rozwiązanie: Należy zweryfikować dane połączenia w plikach: configuration.properties, SynchronizationService.exe.config. Sprawdzić konfigurację w SQL Server Configuration Manager – upewnić się, że zezwolono na połączenia zdalne. Na koniec zrestartować usługę Comarch Mobile Server. Więcej informacji dostępnych TUTAJ.
19. System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)Przyczyna: Nieprawidłowe dane konfiguracyjne dotyczące serwera licencji w konfiguracji komponentu Serwer synchronizacji w Auto Update.
Rozwiązanie: Należy zweryfikować konfigurację w plikach Serwera synchronizacji lub poprawić zapisy w AutoUpdate i przeinstalować komponent. Prawidłowa wartość dla serwera licencji to 10-cyfrowy numer klucza licencji.
20. System.Data.SqlClient.SqlException (0x80131904): The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - The remote computer refused the network connection) Przyczyna: Błąd konfiguracji połączenia z serwerem SQL. Serwer może być niedostępny, źle skonfigurowany lub jego nazwa została błędnie wpisana.
Rozwiązanie: Należy zweryfikować dane połączenia w plikach: configuration.properties, SynchronizationService.exe.config. Sprawdzić konfigurację w SQL Server Configuration Manager – upewnić się, że zezwolono na połączenia zdalne. Na koniec zrestartować usługę Comarch Mobile Server. Więcej informacji dostępnych TUTAJ.
Komunikaty w logu operatora
1. Brak licencji na kluczu (10330): Optima Mobile SprzedażPrzyczyna: Brak dostępnej licencji Comarch Mobile Sprzedaż na kluczu.
Rozwiązanie: Należy wykonać reset licencji Comarch Mobile Sprzedaż lub zakupić dodatkowe licencje.
2. Brak licencji na kluczu (12330): XL Mobile SprzedażPrzyczyna: Brak dostępnej licencji Comarch Mobile Sprzedaż na kluczu.
Rozwiązanie: Należy wykonać reset licencji Comarch Mobile Sprzedaż lub zakupić dodatkowe licencje.
3. Brak licencji na kluczu (12340): XL Mobile Sprzedaż PortalPrzyczyna: Brak dostępnej licencji lub niewłaściwe ustawienia dokumentów sprzedażowych i raportów kasowych przy używaniu tylko modułu Serwis.
Rozwiązanie: W przypadku braku wykupionej licencji – należy wykonać reset lub dokupić licencję. Jeśli użytkownik korzysta wyłącznie z modułu Serwis, należy wyłączyć parametry "Wystawianie i edycja" na definicjach dokumentów sprzedażowych oraz raportów kasowych w strukturze firmy danego centrum mobilnego w ERP XL.
4. Brak licencji na kluczu (12410): XL Mobile SerwisPrzyczyna: Brak dostępnej licencji XL Mobile Serwis, brak kompatybilności z używanymi dokumentami.
Rozwiązanie 1: Jeśli użytkownik korzysta z Comarch Mobile Sprzedaż, należy odznaczyć parametr "Wystawianie i edycja" na dokumentach serwisowych (ZSE, ZSR) w strukturze firmy centrum mobilnego.
Rozwiązanie 2: Jeśli klient wcześniej posiadał licencję XL Mobile Serwis (12410), ale zakupił XL Mobile Pakiet Sprzedaż i Serwis (12430), należy zaznaczyć parametr "Wystawianie i edycja" na dokumentach sprzedażowych (np. ZS) w ERP XL.
5. Brak licencji na kluczu (12430): XL Mobile Pakiet Sprzedaż i SerwisPrzyczyna: Niewłaściwa konfiguracja centrum mobilnego – brak konfiguracji dokumentów sprzedażowych i serwisowych.
Rozwiązanie: W ERP XL należy przejść do Edycji struktury firmy i upewnić się, że na dokumentach sprzedażowych i serwisowych zaznaczony jest parametr "Wystawianie i edycja".
6. Brak licencji na kluczu (12600): XL Mobile Merchandising AI – ServerPrzyczyna: Zaznaczone prawo na roli pracownika i nie wykupiona odpowiednia licencja.
Rozwiązanie: Należy odznaczyć prawo "[MOS] Sztuczna inteligencja na raporcie obecności" na roli pracownika w ERP XL lub zakupić licencję XL Mobile Merchandising AI – Server
7. Brak licencji na kluczu (22330): Altum Mobile SprzedażPrzyczyna: Brak dostępnej licencji Comarch Mobile Sprzedaż na kluczu.
Rozwiązanie: Należy wykonać reset licencji Comarch Mobile Sprzedaż lub zakupić dodatkowe licencje.
Społeczność Comarch
Dzięki społeczności Comarch ERP rozwiązujemy problemy, dzielimy się pomysłami oraz informujemy o różnych nowościach.