Wątek przeniesiony 2020-09-22 19:24 z PHP przez cerrato.

Inny użytkownik pobrał dane do edycji

0

Korzystam z frameworka Codeigniter z modyfikacjami dla własnych potrzeb. Większość frontendu w javascript. Rozpatrywałem już chyba wszystkie możliwe podejścia do tego tematu i w zasadzie napisałem ten post po to właśnie, aby dowiedzieć się jakie Wy stosujecie rozwiązania tego tematu. To o czym piszesz wydaje mi się właśnie najbardziej sensowne do tego celu. Uruchomienie crona i zdejmowanie ewentualnych blokad po określonym czasie.

2

Ile przypadków tyle rozwiązań. Np w przypadku wykrycia ze dokument sie zmienil w miedzyczasie wywalasz uzytkownikowi error sorry ale dokument sie zmienil zacznij prace od nowa :).

1

Ja tak w kilku systemach robiłem. Działa, pozwala wyświetlić komunikat typu: użytkownik z edytuje rekord itd.
To co opisuje @Schadoow też jest jakimś podejściem, ale osobiście nie preferuję wkurzania użytkowników.

0

Tak dokładnie, jeśli cron usunie z tabeli "lock" dla użytkownika w danej sesji na konkretnym rekordzie, wówczas podczas próby zapisu formularza pojawi się stosowny komunikat "że sorry".
Natomiast sensownym byłoby również uruchomienie funkcji podtrzymującej (przedłużającej) czas blokowania. Wówczas aktywnego (powolnego w swej pracy) użytkownika nie spotkałaby niemiła niespodzianka.

1

Ja po prostu dobieram czas empirycznie i ustawiam takie taaki na 15 czy tam 30 minut. Nie miałem tak długich działań użytkowników per rekord żeby taki czas przedłużać. Ale to już musisz sam zweryfikować.

0

Jakby nie było, integralność danych jest istotniejsza niż poziom niezadowolenia użytkownika :-)

3

@jurek1980: zresztą co za problem dać ten czas jako parametr, który admin danej instalacji może zmienić, jak okaże się, że 15 minut to za mało dla Bożenki z księgowości albo Miecia z zaopatrzenia?

0

Moi użytkownicy potrafią wprowadzać fakturę ponad 2 godziny i nie dlatego, że są powolni, ale dlatego że faktura ma ok 1000 pozycji... - Panczo 51 minut temu

Problem z lockiem dotyczy tylko "starych" faktur (chyba, ze projekt leży i kwiczy)

0

Fakt - dotyczy to dokumentów już wystawionych i poddanych edycji. Natomiast dla uściślenia nie dotyczy to li tylko dokumentów typu "faktura". To tylko przykład dla zobrazowania jakiego rodzaju danych dotyczy to zagadnienie. Edycja pojawia się również w przypadku dokumentów typu "raport bankowy", "raport kasowy", etc. etc. a "rozjazd" danych np. rozrachunkowych i późniejsze ich uzgodnienia nie należą do przyjemnych historii.

1
artbski napisał(a):

Fakt - dotyczy to dokumentów już wystawionych i poddanych edycji. Natomiast dla uściślenia nie dotyczy to li tylko dokumentów typu "faktura". To tylko przykład dla zobrazowania jakiego rodzaju danych dotyczy to zagadnienie. Edycja pojawia się również w przypadku dokumentów typu "raport bankowy", "raport kasowy", etc. etc. a "rozjazd" danych np. rozrachunkowych i późniejsze ich uzgodnienia nie należą do przyjemnych historii.

W tej kategorii, i przez słówko ERP, to oczekiwany jest mechanizm np śladu rewizyjnego (zapis do inteligentnego loga)
Wyżej koledzy wskazują na 'lock' m.in. z identyfikacją użytkownika.
Wydaje mi się, ze ta grupa (pewnie w niej mieści się więcej zazębiających się zagadnień) powinna mieć wspólny projekt, być jednym z filarów ERP.

Edycja pojawia się również w przypadku dokumentów typu "raport bankowy", "raport kasowy", etc. etc. a "rozjazd" danych np. rozrachunkowych i późniejsze ich uzgodnienia nie należą do przyjemnych historii.

Nie wyobrażam sobie bez middle-ware, na surowej bazie SQL. Oczywiście nie zaniedbując wszelki reguł integralności SQL, ale SQL to za mało (szkolny przykład: nie da się zrobić granta do niektórych wiersz tabeli, albo granta warunkowego)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0