Dezaktualizacja widoków
Podczas pracy z cfirma mogą zaistnieć sytuacje, podczas których, w danym momencie dane oglądane przez jednego użytkownika mogą być niezgodne z tym, co aktualnie widzi inny użytkownik w wyniku chociażby tego, iż ten drugi dokonał ich modyfikacji po tym, jak pierwszy zdążył je załadować. Jest to jeden z wielu przypadków dezaktualizacji widoków.
Najbardziej oczywistym przypadkiem jest wymieniony, czyli sytuacja, w której wielu użytkowników modyfikuje te same dane. Możliwe jest jednak aby dane, do których dostęp posiada tylko jeden użytkownik zostały mu również wyświetlone w sposób niespójny. Efekt taki można uzyskać przykładowo poprzez edycję komentarzy z edytora bytu jednocześnie oglądając je z panelu komentarzy w panelu szczegółów, gdyż oba te panele nie są ze sobą synchronizowane. Wykonując zupełnie niezależne operacje w obu widokach bardzo łatwo uzyskać niespójny rezultat.
Przeładowywanie (odświeżanie)
Z uwagi na możliwość zaistnienia podobnych przypadków, we wszystkich
oknach oraz
widokach istnieje możliwość przeładowania (odświeżenia) ich zawartości.
W przypadku dokonywania operacji na powiązanych widokach, jak np. dodawania/edytowania bytu za sprawą edytora z panelu modułu, system dba o to, by panel widoku aktualizował każdą dokonaną zmianę, jednak w mniej przewidywalnych przypadkach automatyczne aktualizacje nie są możliwe.
Potencjalne błędy
Bardziej skomplikowanym przypadkiem (nawiązując do poprzedniego przykładu) jest sytuacja, w której dany użytkownik usunie dany komentarz z jednego widoku i zapragnie wykonać na nim jakąś operację w drugim, w którym usunięty komentarz wciąż widnieje... W efekcie pojawi się
komunikat błędu oznajmiający brak uprawnień do wykonania zadanej operacji, co jest naturalnym zjawiskiem w kontekście systemu w przypadku próby dokonania operacji na nieistniejącym obiekcie. Tego typu błąd pojawiać się będzie zarówno w sytuacjach, w których użytkownik zapragnie wykonać operację do, której rzeczywiście jest nieupoważniony, jak również do bytów/obiektów, które nie istnieją. Jednym remedium w takiej sytuacji może być przeładowanie danego widoku w celu upewnienia się o poprawności wykonywanej operacji.
Istnieją sytuacje, w których przeładowanie widoku/okna może nie odnieść pożądanego skutku. Rozpatrzmy następujący przypadek:
- Użytkownik A tworzy byt w publicznym folderze, do którego posiada uprawnienie zarządzania zaś użytkownik B przynajmniej uprawnienie zapisu.
- Użytkownik B próbuje edytować stworzony przez użytkownika A byt posługując się edytorem bytu.
- Po tym, jak użytkownik B załadował edytor i interesujący go, zawarty w edytorze panel, lecz przed zapisaniem jakichkolwiek zmian, użytkownik A zmienił uprawnienie użytkownika B wobec folderu, w którym znajduje się omawiany byt na odczyt.
- Użytkownik B próbuje zapisać dokonane przez siebie zmiany w omawianym bycie...
W efekcie użytkownik B dostaje błąd odnośnie braku uprawnień. Jakakolwiek próba przeładowania edytora oraz ponownej zmiany i próby zapisu nie odnosi jednak rezultatu ponieważ edytor wciąż pracuje w trybie edycji, który w kontekście rozważań jest nieaktualny.
Sytuacja mogłaby być jeszcze bardziej skomplikowana, gdyby użytkownik A zdecydował się usunąć felerny byt, lub też całkowicie odebrał uprawnienia użytkownikowi B. Wówczas przeładowanie edytora przez użytkownika B nie byłoby nawet możliwe.
Podsumowując, użytkownik pracujący z systemem cfirma, w szczególności operujący na danych współdzielonych z innymi partycypantami aplikacji powinien być świadomy podobnych potencjalnych konfliktów oraz przygotowany na nieoczekiwane komunikaty błędów.
Zobacz również: