Anna Sałacińska 1 Napisano 11 Lipca 2022 Udostępnij Napisano 11 Lipca 2022 w Błąd "nie można zablokować podanego zasobu" Witam, mam program który dodaje zk z zewnętrznego systemu do subiekta, produkty są wyszukiwana na podstawie ean-u, następnie muszę zmienić nazwę pozycji na taką jak w zewnętrznym systemie IAsortymenty produkty = sfera.PodajObiektTypu<IAsortymenty>(); InsERT.Moria.ModelDanych.Konfiguracja konfZk = sfera.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.ZamowienieOdKlienta; using (IZamowienieOdKlienta zk = zamowienia.Utworz(konfZk)) { .... Asortyment produkt = produkty.Dane.Wszystkie().Where(e => e.PodstawowaJednostkaMiaryAsortymentu.PodstawowyKodKreskowy.Kod.Trim()== "123456").FirstOrDefault(); produkt.Nazwa = "Nowa nazwa"; zk.Pozycje.Dodaj(produkt, 1, produkt.JednostkaSprzedazy); ... } i właśnie przy zmianie nazwy dostaję wyjątek Cytat InsERT.Mox.Locking.AppLockNotAcquiredException: Nie można zablokować podanego zasobu. w InsERT.Mox.Locking.SqlServer.SqlApplicationLock..ctor(SqlLockManager manager, IDbConnectionFactory dbConnectionFactory, String resourceId, Guid sessionId, Boolean acquire) w InsERT.Mox.Locking.SqlServer.SqlLockManager.AcquireLock(String resourceId) w InsERT.Mox.BusinessObjects.BusinessObject`3.Lock(TId id) w InsERT.Mox.BusinessObjects.BusinessObject`3.Lock() w InsERT.Mox.BusinessObjects.BusinessObject`3.OnModifying() w InsERT.Mox.BusinessObjects.BusinessObject`3.InsERT.Mox.DataAccess.IDataEventsSink.OnScalarPropertyChanging[TProperty](Object entity, String propertyName, TProperty propertyValue) w InsERT.Mox.DataAccess.EntityFramework.EntityDataObjectBase.ReportScalarPropertyChanging[T](IDataEventsSink sink, String propertyName, T& value) w InsERT.Moria.ModelDanych.Asortyment.set_Nazwa(String value) W czasie działania tego programu nikt inny nie pracuje na subiekcie, nie są również uruchamiane inne programy. Przy probie pobrania jakichś 30 zk przy 20 potrafi wywalić ten błąd. Wiem że błąd może występować jeśli ktoś inny edytuje produkt ale mam informacje od pracowników że nikt nic nie robi, drugą opcją jest nagle wyłączenie serwera ale wszystko jest cały czas uruchomione. Link to postu
Mateusz Matuszewski 91 Napisano 11 Lipca 2022 Udostępnij Napisano 11 Lipca 2022 w Błąd "nie można zablokować podanego zasobu" Czy obiekt biznesowy asortymentu został poprawnie zapisany po zmianie nazwy? Możliwe, że wystąpił błąd przy zapisie i/lub obiekt biznesowy nie został zwolniony (using/dispose), więc blokada nie została zdjęta. Link to postu
Anna Sałacińska 1 Napisano 11 Lipca 2022 Autor Udostępnij Napisano 11 Lipca 2022 w Błąd "nie można zablokować podanego zasobu" Program wywala się na tej linijce produkt.Nazwa = "Nowa nazwa"; więc dalej nie mam możliwości zrobienia czegokolwiek Link to postu
Mateusz Matuszewski 91 Napisano 11 Lipca 2022 Udostępnij Napisano 11 Lipca 2022 w Błąd "nie można zablokować podanego zasobu" 4 godziny temu, Anna Sałacińska napisał: Przy probie pobrania jakichś 30 zk przy 20 potrafi wywalić ten błąd. Z tego zdania wnioskuję, że jednak na części zamówień przechodzi, dlatego moje podejrzenia padły na nieudany zapis asortymentu przy wcześniejszych zamówieniach. Proszę o podanie większego fragmentu kodu dotyczących edycji towaru, ponieważ brakuje bardzo istotnych linijek, w których jest ładowany i zapisywany obiekt biznesowy asortymentu. Link to postu
Anna Sałacińska 1 Napisano 12 Lipca 2022 Autor Udostępnij Napisano 12 Lipca 2022 w Błąd "nie można zablokować podanego zasobu" To znaczy asortymentu nie zapisuję ponieważ nie chcę modyfikować asortymentu tylko nazwę pozycji na dokumencie, a pozycja na dokumencie nie ma opcji modyfikacji nazwy Link to postu
Mateusz Matuszewski 91 Napisano 12 Lipca 2022 Udostępnij Napisano 12 Lipca 2022 w Błąd "nie można zablokować podanego zasobu" Niestety nie ma możliwości, żeby nazwa asortymentu na pozycji była inna niż w kartotece, ponieważ wpis w tabeli pozycji dokumentu jest tylko powiązany z wpisem w tabeli asortymentów (pozycja nie tworzy własnej kopii asortymentu). To co Pani robi, to zmienia nazwę asortymentu lokalnie w pamięci, nie ma to żadnego wpływu na bazę danych. Czy nazwa w zewnętrznym systemie jest zawsze taka sama? Może wystarczy wpisać ją w pole własne asortymentu i drukować je zamiast nazwy towaru? A jeśli nazwa nie jest zawsze taka sama, to może wykorzystać do tego celu pole Opis na pozycji? Link to postu
Polecane posty