Občerstvovanie dokladových agend
Ako bolo objasnené v kapitole popisujúcej technológiu spracovania dát, systém ABRA Gen ako databázová klient/server aplikácia, má dáta spravované samostatným databázovým serverom. Pri práci s dátami je teda nutné komunikovať s databázovým serverom prostredníctvom tzv. SQL dopytov, príslušné dáta sa potom načítajú z databázy do pamätie klientskeho počítača a naopak.
Klientska aplikácia potom pracuje s dátami, ktoré má načítané v pamäti. Táto technológia má však drobnú nevýhodu:
- bez ručného zásahu užívateľa (vyvolanie občerstvenia) nie je väčšinou možné premietnuť zmeny, ku ktorým mohlo medzitým v databáze dôjsť
- možná existencia kolízií
Pri spustení dokladovej agendy je k dispozícii záložka Obmedzenie s funkciou Získať záznamy, pomocou ktorej si môžete načítať príslušné dáta z databázy do pamäte svojho počítača (tzn. vykonať SQL dopyt) podľa zadaných obmedzujúcich podmienok, tzn. podľa zadaných obmedzujúcich podmienok (a podľa prístupových práv) sa z databázy vyberú zodpovedajúce záznamy. Tieto sa potom vypíšu v záložke Zoznam. Medzitým ale môže dôjsť k zmene dát v databáze:
- samy pridáme alebo opravíme niektorý zo zobrazených dokladov v aktuálne otvorenej agende tak, že prestane vyhovovať zvolenému obmedzeniu (napr. iným užívateľom v sieti). Potom máme v zozname síce aktuálne pridaný či opravený doklad (čiže zodpovedá aktuálnemu stavu v databáze), ale zobrazený zoznam nezodpovedá zvolenému obmedzeniu. Objasníme na jednoduchých príkladoch:
Príklad 1: Nech potrebujeme obstarať prehľad faktúr vystavených na zákazku Projekt1. A potom začať vystavovať faktúry nové. Otvoríme agendu Faktúr vydaných, v záložke Obmedzenie nastavíme danú zákazku a vydáme príkaz. Nech existuje 10 takýchto faktúr, po vykonanom príkaze sú k dispozícii v záložke Zoznam. Potom vystavíme novú faktúru, ale na zákazku Projekt 2. Po jej uložení pribudne v zozname faktúr aktuálne zobrazených v záložke Zoznam. V tom momente však zobrazený zoznam nezodpovedá predtým zvolenému obmedzeniu, tzn. všetky faktúry vydané na zákazku Projekt 1.
Príklad 2: Majme zoznam vybraných 10-tich faktúr z príkladu 1, vykonáme opravu jednej z faktúr tak, že jej zmeníme zákazku na Projekt 2. Faktúra bude po uložení stále v zozname faktúr aktuálne zobrazených v záložke Zoznam, ale v ten moment však zobrazený zoznam nezodpovedá skôr zvolenému obmedzeniu, tzn. všetky faktúry vydané na zákazku Projekt 1.
Tento stav je signalizovaný tým, že novo pridaná alebo opravená faktúra je v zozname zobrazená tučne, a to až do občerstvenia zoznamu, aby bolo zrejmé, že niektoré zo zobrazených záznamov boli opravené alebo novo pridané a nemusia nutne vyhovovať zvolenému obmedzeniu.
- pridanie, zmazanie alebo opravu niektorého z nami zobrazených dokladov vykoná iný užívateľ v sieti, resp. niektorú z akcií vykonáme my, ale z inej spustenej agendy (z rovnakého alebo zo samostatného okna aplikácie). Zobrazený zoznam potom síce zodpovedá nami zvolenému obmedzeniu, ale nezodpovedá aktuálnemu stavu v databáze. Objasníme na jednoduchých príkladoch:
Príklad 3: Majme zoznam vybraných 10-tich faktúr z príkladu 1. Medzitým napr. iný užívateľ v sieti pridá novú faktúru na zákazku Projekt 1. Nám sa ale táto nová faktúra v zozname neprejaví (zobrazujeme zoznam predtým načítaný do pamäte).
Príklad 4: Majme zoznam vybraných 10-tich faktúr z príkladu 1. Medzitým napr. iný užívateľ v sieti opraví niektorú z týchto faktúr na zákazku Projekt 2 alebo niektorú faktúru zmaže. Nám sa ale táto nová faktúra v zozname neprejaví (zobrazujeme zoznam predtým načítaný do pamäte).
Na riešenie takýchto situácií slúži funkcia Občerstviť (F11), takže najskôr zoznam občerstvíme a budeme tak mať k dispozícii aktuálny stav presne tak, ako je v databáze SQL servera. Po stlačení funkcie Občerstviť systém vykoná znovu SQL dopyt podľa aktuálneho obmedzenia na databázový server a vráti aktuálny stav databázy (rovnaký výsledok by sme dosiahli aj prepnutím do záložky Obmedzenie a voľbou funkcie Získať záznamy (za rovnakých obmedzujúcich podmienok).
Občerstvenie zoznamu sa dá vyvolať aj inak - napr. prepnutím triedenia (v dokladových agendách sa tým vydá nový dopyt do databázy).
Pred zahájením editácie systém tiež občerstvuje automaticky - kontroluje tzv. ObjectVersion a ak sa zmenil (čo znamená, že záznam bol medzičasom zmenený), vykoná pred zahájením editácie automatické občerstvenie, aby sa minimalizoval vznik prípadných kolízií po uložení záznamu.
Za účelom tlače však nie je nutné Občerstvovať zoznam pred samotnou tlačou, naopak je rýchlejšie rovno použiť jednu z možností, ktoré ponúka priamo funkcia Tlač (F5).
Pozor, ak došlo napr. k zmazaniu nejakého nami zobrazovaného záznamu z inej stanice a nevykonali sme občerstvenie, tak sa nám takýto záznam v zozname stále zobrazuje, aj keď je invalidný (neplatný). Potom platí:
- Keď kurzor stojí na takomto neplatnom objekte, nie je dovolené pre tento záznam prepínať záložky. Ak stojíte na inej záložke ako Zoznam, dôjde k prepnutiu na záložku Zoznam (ide o záložky na úrovni záložky Zoznam).
- Ak kurzor stojí na takomto neplatnom objekte a vyvolá sa funkcia Občerstviť, neprebehne synchronizácia pozície kurzora so stavom pred občerstvením (nie je to možné) a kurzor sa bude nachádzať na začiatku zoznamu.