Definovatelné položky a formuláře - obecně
Zde naleznete:
Uživatelsky definovatelné položky umožňují uživateli si pevnou strukturu Business objektů rozšířit dle vlastních požadavků (s tzv. pevnými položkami) a potřeb a příslušné agendy si tak obohatit o libovolné své vlastní definice položek a dále o libovolné své vlastní formuláře vstupních oken a v nich používat jak své vlastní nadefinované položky, tak položky v systému dodávané výrobcem pro jednotlivé Business objekty. Pokud tedy uživatel v některé z agend postrádá položku, kterou by si přál k jednotlivým záznamům evidovat, může si ji sám nadefinovat v agendě Definovatelné položky a přes vlastní vstupní formulář nadefinovaný v agendě Definovatelné formuláře si ji zadávat.
Tato technologie je velkou měrou využívána zejména v agendách modulu Mzdy a personalistika, protože mzdová a personální problematika je obecně natolik obsáhlá a má mnoho variant, že je nelze všechny postihnout v dodávaných definicích pevných vstupních oken (formulářů) a položek v nich. Proto jsou tyto agendy v ABRA Gen řešeny z velké části formou pružných definovatelných formulářů jednoduše přizpůsobitelných uživateli a to nejen, co se týče vzhledu, ale i položek, které se v nich mohou vyskytovat.
Na principu definovatelných položek jsou postaveny uživatelsky definovatelné číselníky, které mají jen několik základních položek pevných a zbytek spočívá právě v položkách, které si uživatel nadefinuje příp. nechá nadefinovat dle svých požadavků.
Využití ale tyto položky naleznou samozřejmě i v jiných agendách.
Pro zjednodušení výkladu budeme též používat zkratky:
V každé agendě, která práci s definovatelnými položkami a definovatelnými formuláři podporuje, mohou být k dispozici následující prvky:
- Subzáložka Formuláře - pod záložkou Detail (resp. adekvátní záložkou zobrazující detailní informace aktuálního záznamu).
- Jiná subzáložka pod záložkou Detail (resp. adekvátní záložkou zobrazující detailní informace aktuálního záznamu), která je obdobou subzáložky Formuláře. Jedná se např. o subzáložku Ostatní resp. Mzdové údaje v agendách Zaměstnanci, Pracovní poměry a Mzdové listy.
- Panel definovatelných formulářů a to typicky jako oblast ve spodní části subzáložky Obsah v záložce Detail (resp. adekvátní subzáložky zobrazující detailní informace aktuálního záznamu).
Zda je v dané agendě subzáložka Formuláře resp. adekvátní záložka či panel definovatelných formulářů zobrazován, závisí na aktuálním nastavení v menu Nastavení pro danou agendu.
Existují však i případy, kdy zobrazování subzáložky Formuláře resp. adekvátní záložky či panelu definovatelných formulářů v dané agendě nelze potlačit nastavením v menu Nastavení, jelikož by to v uvedených agendách nebylo smysluplné a jejich stálé zobrazování je výhodné. Např. některé mzdové agendy, definovatelné číselníky apod.
V subzáložce Formuláře resp. jiné adekvátní subzáložce a v panelu definovatelných formulářů si může uživatel vybírat z definovatelných formulářů nadefinovaných pro Business objekty dané agendy a zobrazovat si resp. zadávat přes ně požadované údaje.
Existují dva typy Udf položek. Liší se tím, jak jsou reprezentovány vnitřně a jak se s nimi dál nakládá. Z toho plynou i různé výhody a nevýhody použití.
-
Obyčejné neboli "Neextra" definovatelné položky - Položky, které nemají svá data uložená přímo v záznamu tabulky příslušející Business objektu, pro který jsou nadefinovány, ale jsou uloženy ve společných tabulkách s Udf položkami jiných objektů. Tudíž, co položka, to záznam ve speciální tabulce (UserData nebo UserWgData). Nevýhodou je pomalejší odezva zejména při velkém množství Udf položek, složitější práce s nimi. (Např. získání informace o hodnotě tří Udf položek ke konkrétní hlavičce faktury znamená 3 dotazy do speciální tabulky Udf položek).
-
Extra definovatelné položky - Položky, které mají svá data uložená přímo v záznamu tabulky příslušející Business objektu, pro který jsou nadefinovány. Tudíž zde mohou být jako další sloupce konkrétního záznamu dané agendy. Výhodou je, že práce s nimi je většinou rychlejší a jednodušší, hlavně v DynSQL a externích nástrojích. (Např. získání informace o hodnotě Udf položek ke konkrétní hlavičce faktury znamená jeden dotaz (získají se najednou s ostatními údaji hlavičky faktury)).
X_položky jsou proti U_položkám výhodnější z hlediska rychlosti práce s nimi, nicméně je třeba mít na paměti, že i tak existuje jisté omezení, kdy toto může přestat platit: pokud jich totiž bude moc, rozšíří se počet datových stránek (záznam zabere vícero bytů), což může rovněž odezvu systému naopak zpomalit.
Z výše uvedeného plyne, že u extra položek musí být tedy zajištěna úprava struktury tabulek v databázi (zjednodušeně řečeno "přidání sloupců" podle nadefinovaných extra položek). To se děje automaticky (je-li to možné) a uživatel se tím nemusí zabývat. Nicméně ale tato automatická úprava struktury tabulky se nemusí povést, pokud je daná tabulka právě v užívání. Dále je po změně v definicích extra položek vhodné restartovat aplikační server. Podrobněji viz Extra položky - vnitřní reprezentace - zejména Doporučený postup pro přidání extra položek (a jiné změny v jejich definicích).
Tj. nevýhody extra položek:
- Možné potíže s aktualizací struktury tabulek, příp. potřeba restartů aplikačního serveru.
- Dále limity pro extra položky dané omezením délky záznamu v databázi (omezený počet možných extra položek daný podle typu databázového serveru limitem počtu sloupců v tabulce (ORACLE), či délkou v KB jednoho záznamu (Firebird)).
Extra položky byly v systému zavedeny později. Důvodem, proč i nadále existují oba typy, je hlavně zpětná kompatibilita (mohou existovat různé externí aplikace navázané na "neextra" Udf položky). A dále to, že u položek s historií (většina Udf položek modulu Mzdy a personalistika) jsou data historie stejně uložena ve speciální společné tabulce, čímž se stejně ztrácí výhoda extra položek.
K dispozici je též možnost převést si starší typ "neextra" Udf položek na extra položky.
Zda si uživatel položku nadefinuje jako extra či "neextra", je čistě na něm a může tak učinit jednoduše zatržením příznaku Extra přímo v definici. Jak se rozlišují ve svém názvu, viz Pravidla pro použití prefixů a kódů Udf položek.
V některých případech nelze extra položky definovat přímo k danému Business objektu, ale jinde. Viz Omezení pro definici extra položek u některých Business objektů.
Každá definovatelná položka a každý definovatelný formulář má mj. následující vlastnost, ovlivňující další práci s nimi:
- Systémová definice
- Ano - označení pro def. položky a formuláře dodávané výrobcem. Systémové definovatelné položky jsou od uživatelských odlišeny i prefixem v kódu. Pro systémové definice platí omezení v opravách a mazání a jsou automaticky aktualizovány v rámci update.
-
Ne - Pak se nejedná o systémovou def. položku resp. def. formulář, ale o vaši vlastní uživatelskou definovatelnou položku resp. definovatelný formulář. Takových definovatelných položek i formulářů si můžete vytvořit libovolné množství, např. pomocí kopií vybrané systémové a její modifikací. Současně je možné i systémovou položku při jejím použití ve vstupním formuláři drobně modifikovat.
U definovatelných položek jsou čtyři možnosti: systémové a nesystémové extra položky a dále systémové a nesystémové "neextra" položky. Každá má jiný prefix a kód v jiném rozsahu. Viz Pravidla pro použití prefixů a kódů Udf položek.
Každý definovatelný formulář má dále následující vlastnost:
- Globální definice
- Ano - Pak je definovatelný formulář společný pro celou firmu.
-
Ne - Pak je definovatelný formulář uložen jako uživatelský a bude k dispozici pouze uživateli, který jej nadefinoval (vytvořil). Pozor! Výjimkou je případ, kdy je takový neglobální def. formulář vybrán automaticky na základě aktuálně použité definice podmínek definovatelných formulářů (pokud je v takové definici použit). Tj. i neglobální formulář může uživatel zpřístupnit ostatním prostřednictvím zmíněné definice. Objasníme na příkladu:
Uživatel Novák si nadefinuje formulář X jako "svůj" neglobální. Takový def. formulář se ostatním uživatelům k výběru nenabízí. Pokud ale uživatel Novák tento formulář použije v definici podmínek definovatelných formulářů, kterou zpřístupní ostatním uživatelům (tj. nadefinuje ji jako globální), a oni tuto definici použijí, pak je-li podmínka v ní nadefinovaná pro formulář X splněna, pak i jim se formulář X zobrazí a budou ho moci použít. Nastavení je k dispozici pouze pro nesystémové definice. Všechny systémové definice jsou automaticky Globální (jsou dodávány výrobcem, tudíž ani nemohou být vázány na žádného konkrétního uživatele).27.06.07