W środowisku wielostanowiskowym Comarch ERP Optima kilku użytkowników pracuje jednocześnie na tej samej bazie danych. Może to prowadzić do konfliktów: zablokowanych rekordów, komunikatów o zajętym dokumencie, błędów współbieżności lub utraty zmian. Opisujemy, jak rozwiązywać takie sytuacje i jak zapobiegać ich powtarzaniu.
Mechanizm blokad rekordów w Optima
Comarch ERP Optima używa optymistycznego mechanizmu blokad bazy danych – gdy operator otwiera dokument do edycji, rekord jest oznaczany jako zajęty przez jego konto. Inni operatorzy widzą dokument w trybie podglądu i nie mogą go edytować do czasu zwolnienia blokady. Blokady są zarządzane przez SQL Server. Problem pojawia się, gdy sesja operatora zakończyła się nieprawidłowo (crash programu, utrata połączenia sieciowego) i blokada nie została zwolniona.
Dokument zablokowany przez „duchową sesję"
Jeżeli dokument pozostaje zablokowany, a operator który go otworzył już nie pracuje, możesz wymusić zwolnienie blokady. W Narzędzia → Konfiguracja Systemu → Zalogowani operatorzy znajdź sesję winowajcy i zakończ ją przyciskiem „Wyloguj". Alternatywnie w SSMS możesz sprawdzić i zakończyć blokującą sesję SQL: SELECT spid, loginame, status FROM master..sysprocesses WHERE dbid = DB_ID('CDN_NazwaFirmy'), a następnie KILL [spid] dla blokującej sesji.
Konflikty przy jednoczesnej edycji tego samego rekordu
Gdy dwóch operatorów próbuje zmodyfikować ten sam rekord jednocześnie (np. kartotekę kontrahenta), Optima wykrywa konflikt przez mechanizm sprawdzania wersji rekordu (timestamp). Operator zapisujący zmiany jako drugi otrzyma komunikat o konflikcie i będzie musiał ponownie załadować rekord i wprowadzić zmiany. Jest to zamierzone zachowanie – zapobiega nadpisaniu zmian. Szkolenie użytkowników w zakresie właściwego kończenia edycji dokumentów minimalizuje częstotliwość takich sytuacji.
Przekroczenie liczby licencji – zarządzanie sesjami
Gdy wszystkie stanowiska licencyjne są zajęte, nowy operator nie może się zalogować. Widok aktywnych sesji w Narzędzia → Konfiguracja Systemu → Zalogowani operatorzy pokazuje, kto aktualnie jest zalogowany. Sesje operatorów, którzy zapomnieli się wylogować, można wymusić zakończyć. Rozwiązaniem długoterminowym jest dokupienie dodatkowych stanowisk licencyjnych lub wdrożenie polityki obowiązkowego wylogowania po zakończeniu pracy.
Konflikty importu danych z zewnętrznych systemów
Automatyczny import dokumentów (np. z systemu e-commerce, EDI lub arkusza Excel) może kolidować z ręczną pracą operatorów na tych samych tabelach. Zaplanuj import na godziny niskiej aktywności użytkowników (np. po godzinach pracy) lub skonfiguruj go tak, by pracował na dedykowanej bazie staging, a dopiero po weryfikacji przenosił dane do produkcyjnej bazy Optimy.
Monitorowanie aktywności użytkowników
Włącz Audit Log w Narzędzia → Konfiguracja Systemu → Log operacji. Pozwala on śledzić, kto i kiedy edytował lub usuwał dokumenty. Jest nieoceniony przy diagnozowaniu konfliktów i nadużyć. Logi przechowywane są w tabeli CDN.Log w bazie konfiguracyjnej i można je przeglądać przez raport Historia operacji. Regularny przegląd logów przez administratora pozwala wykryć nieprawidłowe wzorce pracy użytkowników.