Skupiny záznamů versus filtrování či jiné omezení číselníků

Kapitola se týká pouze číselníků, které dosud nebyly převedeny na novou technologii (stránkování). Pro již převedené číselníky je obsah této kapitoly bezpředmětný, z databáze do paměti se vždy načítá pouze část záznamů, viz kapitola Nová technologie číselníků (stránkování), oddíl Základní principy nové technologie. Pro omezování zobrazené množiny záznamů lze využít filtrování.

Mezi použitím skupin záznamů a filtrováním číselníku (či jiným případným omezením zobrazených záznamů v číselníku) je ZCELA zásadní principiální rozdíl:

  • Filtrování resp. omezení zadané v omezovacím panelu v číselnících - Číselník se z databáze do paměti načítá celý a zadáním filtru se pouze vizuálně zafiltrují záznamy, které se aktuálně mají uživateli zobrazit (v paměti jsou ale všechny).
  • Skupiny záznamů - Číselník se z databáze do paměti nenačítá celý a zadáním skupiny se načte pouze jeho část.

    Použití skupin v nevhodném případě může být kontraproduktivní a může naopak způsobit zpomalení v odezvě systému. Viz dále.

Skupiny záznamů by neměly být používány ve smyslu filtrování číselníku. Význam skupin záznamů je umožnit s rozumnou odezvou systému pracovat v číselníku s velmi rozsáhlými daty, z nichž většinu daný uživatel používá málo.

Máme mnoho set tisíc skladových karet naimportovaných od dodavatelů, ale reálně prodáváme pouze pět tisíc položek. Čili většina pracovníků pracuje jen s vybranou skupinou (jen s částí číselníku) a odezva je rychlá. Ten, kdo pracuje s ceníky, ovšem potřebuje pracovat se všemi kartami, pro něj bude odezva systému číselníku s mnoha daty výrazně pomalejší.

Uvedený příklad je pouze ilustrační - číselník Skladové karty byl převeden na novou technologii a pokud obsahuje velké množství položek, došlo ve srovnání s původní verzí k jeho zrychlení ve všech scénářích.

Filtrováním i skupinováním dosáhneme na první pohled téhož výsledku - omezení dat. Ovšem při rozhodnutí, kterou funkcionalitu použít, je třeba pečlivě zvážit okolnosti, jelikož v některých případech může být použití skupiny nevhodné a práci zpomalí místo urychlení. Je třeba zvážit následující:

  • Přepnutí skupiny je na velkých datech výrazně pomalejší než uplatnění filtru. V případě filtru se provede dotaz, kterým se vrátí úzký seznam ID-ček, za které se omezí zobrazení již "nakešovaného" číselníku. V případě změny skupiny záznamů se "zahodí nakešovaná data" a vrátí se široký seznam se všemi klíči (tj. čas na přenos po síti), který se ještě navíc na klientovi musí setřídit (čas potřebný na třídění) a to podle všech položek. Proto, pokud předpokládáte časté přepínání mezi skupinami, jelikož potřebujete pracovat s více různými, měli byste spíš použít filtrování.
  • Práce s číselníkem s nastavenou skupinou záznamů je sice rychlejší, protože obsahuje méně dat, ovšem jakékoliv "otření se" o záznam, který v číselníku není zahrnut do aktuální skupiny, způsobí značné zpomalení.
    • Např. pokud máme víceřádkový doklad nebo ceník, kde většina skladových karet není v aktuální skupině, pak se odezva systému značně zpomalí. Systém totiž normálně řadu zobrazovaných údajů získává z "nakešovaného" číselníku, ovšem pokud tam záznam nenajde, musí si pro něj "sáhnout" do databáze. Tato data jsou ovšem dočasná (nejsou uložena v číselníku) a bezprostředně po použití se opět "zahazují".

      Tento režim práce je určen pro výjimečné případy, např. případ skrytého záznamu nebo záznamu, který pořídil jiný uživatel, ale my dosud nemáme číselník občerstven. Pro velké objemy dat rozhodně není vhodný.

Z výše uvedeného plyne, že Skupiny záznamů jsou typicky vhodné pro "odfiltrování" nepoužívaných záznamů. Pro příležitostné filtrování podle aktuální potřeby spíše volte běžné Filtrování!!!

Ke zvolené skupině záznamů se další omezení resp. filtrování uplatňuje aditivně. Může se jednat o omezení podle přístupových práv, filtrování, případně o omezení zadané v omezovacím panelu v číselnících, je-li nějaký v daném číselníku k dispozici (opět zdůrazňujeme, že zde se jedná jen o vizuální omezení záznamů, zobrazovaných v daný moment uživateli).

Příklad1: Mějme v adresáři firem nadefinované 2 skupiny záznamů: Skupinu "Aktivní", která zahrnuje aktivní obchodní partnery, nechť je jich např. 5000, a skupinu "Neaktivní", nechť je jich 6000. (Např. na základě nějaké definovatelné položky, která je nastavena obchodním oddělením). Po zvolení skupiny "Aktivní" se načte z databáze do paměti jen 5000 záznamů (nechť z nich je 150 výrobců hraček). Pokud v daný moment zvolíme funkci filtrování a zafiltrujeme jen za firmy - výrobce hraček (opět např. podle nějaké definovatelné položky v adresáři, podle klíčů v adresáři apod.), pak uvidíme jen 150 firem (v paměti jich ale máme načteno všech 5000).

Příklad2: Mějme ve skladových kartách nadefinované 2 skupiny záznamů: Skupinu "Hračky", která zahrnuje položky sortimentu hraček, nechť je jich např. 7000, a skupinu "Ostatní", nechť je jich 5000. (Např. na základě skladového menu). Po zvolení skupiny "Hračky" se načte z databáze do paměti 7000 záznamů (nechť z nich je 1500 vlastních výrobků). Pokud v daný moment zvolíme v panelu Omezení "Jen výrobky", pak uvidíme jen 1500 skl. karet (v paměti jich ale máme načteno všech 7000).

I tyto příklady jsou pouze ilustrační - číselníky Adresář firem i Skladové karty byly převeden na novou technologii a skupiny záznamů nepodporují.