Strona 1 z 1

[BŁĄD] Próba zapętlenia rekordu w tabeli FrmStruktura

: 02 wrz 2019, 14:41
autor: PawelL
Witam
Przy pracy w Optimie przy próbach zapisu różnych formatek (np. Np formularz urlopów wypoczynkowych) często pojawiają się poniższe komunikaty.
Problem utrzymuje się już dłuższy czas, optimę aktualizuję na bieżąco i problem utrzymuje się od kilku wersji.
Problem ustępuje po kilku próbach zapisu (zapis->błąd[ok]->zapis->błąd[ok]->itd..)
Problem pojawia się w wielu miejscach gdzie zapisujemy coś i raczej często. Nie muszę opisywać jak to jest uciążliwe dla operatora.
Pytanie czy ktoś spotkał się z podobnym problemem.
Z góry dziękuję za podpowiedzi.
Optima_ostrzezenie2147217900.jpg
Pełna treść Zaawansowane:

Kod: Zaznacz cały

System.Runtime.InteropServices.COMException (0x80040E14): Próba zapętlenia rekordu w tabeli FrmStruktura! Skontaktuj się z Twoim administratorem.
   w CDNBase.AdoSessionClass.Save()
   w Optima.Common.View.Presenters.Strategies.AdoSessionSavingStrategy.Save(Boolean requestClose)
   w Optima.Common.View.Presenters.BasicEditPresenter`1.TrySave(Boolean requestClose)
   w Optima.Common.View.Presenters.BasicEditPresenter`1.Save(Boolean requestClose)
   w Optima.Common.View.Presenters.ComEditPresenter`1.TrySave(Boolean requestClose)
   w Optima.Common.View.Presenters.ComEditPresenter`1.Save(Boolean requestClose)

System operacyjny: Microsoft Windows NT 6.1.7601 Service Pack 1 (Windows 7 Ultimate v. 6.1.7601) 64 bit, Tryb pracy windows: Normal
Wersja CLR:4.0.30319.42000
Wersje .NET: Fx20(2.0.50727.5420 SP2), Fx30(3.0.30729.5420 SP2), Fx35(3.5.30729.5420 SP1), Fx40(4.7.3062), Fx40ClientProfile(4.7.3062)
Liczba procesorów: 4
Parametry startowe: "C:\Comarch ERP Optima\Comarch OPT!MA.exe" 
Ilość pamięci fizycznej: 34029355008 (32452 MB), Wolnej 20833509376 (19868 MB), Wirtualnej 4294836224(4095 MB), Wolnej Wirtualnej 3066159104(2924 MB)
Pamięć przydzielona do procesu: prywatna - 501723136 (478 MB), wirtualna - 1228677120 (1171 MB, MAX: 1177 MB), zarządzana - 96 MB
Pamięć załadowana do RAM: 541540352 (516 MB), 1%
Liczba obiektów GDI 400 (peak 675), USER 390 (peak 985)
Połączenie terminalowe: Tak CIV: Nie
Rozdzielczość: {Width=1920, Height=1080} DPI: 96 Czcionka: 8,25 Skórka: Blue
Tryb jednego okna: Nie Podwójne buforowanie: Nie Jednowątkowa obsługa komunikatów:True
Wersja aplikacji: Optima 2019.6.1.1894
SQL Server: Microsoft SQL Server 2014 - 12.0.2269.0 (X64) 
    Jun 10 2015 03:35:45 
    Copyright (c) Microsoft Corporation
    Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: )

Wersja bazy konfiguracyjnej/firmowej 2019.0600/2019.0600
Nr klucza : 2034603056 Stan klucza : STANKLUCZA_OK
Pobrane licencje : KadryPlacePlus, KasaBank, Analizy
Współpraca Płac z XL: Tak
Współpraca Płac z Altum: Nie
Data ostatniego usuwania dokumentów:Brak

Re: [BŁĄD] Próba zapętlenia rekordu w tabeli FrmStruktura

: 05 wrz 2019, 10:21
autor: elmiq
Ogólnie chodzi o to, że dawniej w XL-u pojawiały się błędy w strukturze firmy, gdzie dany rekord wskazując na rekord nadrzędny, wskazywał sam na siebie. Skutkowało to tym, że zapytania wyciągające np. dokumenty na listach odwołując się do tabeli ze strukturą wykonywały w zasadzie niekończącą się pętle - w rezultacie użytkownik widział tylko pustą listę, a system całkowicie się zawieszał dla wszystkich. Już nie pamiętam w której wersji, ale Comarch wprowadził zabezpieczenie przed taką sytuacją, czego efekt widzisz na ekranie. Tutaj zapewne problem jest w tym jak zsynchronizowane są dane pomiędzy Optimą, a XL. Przy zmianach w Optimie i zapisie obiektu, zmiany są też nanoszone w XL-u, co w tym przypadku, najprawdopodobniej z powodu jakichś błędnych mapowań między bazami, skutkuje takim komunikatem. Raczej potrzebujesz kogoś kto sprawdzi Ci to na żywym organizmie i poprawi rozbieżności.

Pozdrawiam,
Mateusz

Re: [BŁĄD] Próba zapętlenia rekordu w tabeli FrmStruktura

: 16 paź 2019, 01:29
autor: Gabik
Witam,

Sprawdziłbym SQL proliferem co się wykonuje na bazie.
Kiedyś dostałem identyczny błąd jak robiłem testy własnego triggera. Trigger na update robił zmianę na edytowanym wpisie i sam siebie w koło uruchamiał.
Może być też funkcja dodatkowa dodana z poziomu Optimy która automatycznie się uruchamia na Update.
Tak jak pisze elmiq ciężko coś zdiagnozować bez dostępu do bazy