Definovatelné objekty - úvod
Definovatelné business objekty umožňují vytvořit vlastní evidenci, číselník nebo dokladovou agendu, která není součástí standardně dodávaných agend, aniž by bylo potřeba cokoli programovat. Tento návod je úvodní kapitolou celé skupiny věnované definovatelným objektům (viz seznam na konci stránky) - shrnuje celkový koncept, ve zkratce ukazuje základní postup a upozorňuje na možnosti, které se snadno přehlédnou. Podrobný postup k jednotlivým krokům najdete v návaznách kapitolách, na které se v textu odkazuje.
Teoretický rozbor stejného konceptu (typy business objektů, jejich vzájemné vztahy a omezení) najdete i v kapitole Definovatelné business objekty a agendy - obecně.
Proč definovatelné objekty vznikly
Vlastní údaje bylo možné do systému doplňovat i dříve - přidáním uživatelsky definovatelných položek k některé z existujících agend či číselníků. Takto doplněné položky se ale ukládaly do jedné společné databázové tabulky, sdílené napříč celým systémem. Pokud si postupně vytvoříte vlastní položky k řadě různých agend a číselníků, může se v této společné tabulce nahromadit velké množství sloupců - to není jen otázka přehlednosti, ale u některých databázových serverů se tím lze v krajním případě přiblížit i reálným limitům počtu sloupců jedné tabulky.
Definovatelný business objekt řeší přesně tohle: pro každou vlastní evidenci vznikne vlastní, vyhrazená databázová tabulka, stejně čistě, jako by šlo o běžnou, výrobcem dodávanou agendu. Vlastní řešení tak může postupně růst - dalšími položkami i dalšími evidencemi - bez dopadu na strukturu ostatních tabulek v systému.
Základní postup ve zkratce
Založení vlastního řešení se v základu skládá ze čtyř navazujících kroků:
- Business objekt - v agendě Definice business objektů založíte datový objekt a jeho databázovou tabulku. Zvolíte Typ: Prázdný objekt (jen základní evidence), Číselníkový objekt (chová se jako číselník), Doklad (plnohodnotná dokladová agenda), nebo Řádek (podřízený objekt navázaný na hlavičku - vlastní agendu nemá).
- Vlastní položky - nad uloženou definicí business objektu spusťte funkci Otevřít def. položky. V otevřené agendě Definovatelné položky doplníte, jaké údaje bude objekt obsahovat. Pokud byste chtěli agendu Definovatelné položky použít přímo z nabídky agend, otevřete ji až po vytvoření business objektu - pokud ji měli otevřenou už dřív, právě vytvořený objekt se v poli Třída nenabídne, dokud ji nezavřete a znovu neotevřete.
- Agenda - v agendě Definice agend nad business objektem (kromě typu Řádek) založíte vizuální agendu, ve které budou uživatelé data evidovat.
- Práva - v roli/skupině rolí na záložce Práva k funkcím povolíte novou agendu uživatelům.
Kompletní postup s konkrétními kroky a screenshoty najdete v návodu Jak vytvořit definovatelnou agendu.
Co všechno definovatelný objekt umožňuje
Nad rámec základního postupu má definovatelný objekt k dispozici i řadu vlastností, které by jinak vyžadovaly programování:
- Dokladový typ automaticky získá pole Firma a procesní řízení (stav, historie změn stavu, zodpovědná role a osoba) - bez jakéhokoli dalšího nastavení.
- K dokladovému typu lze založit vlastní řadu dokladů a tuto řadu chránit jako chráněný objekt - tedy omezit přístup k jejím záznamům podle role, uživatele nebo firmy.
- Řádkový objekt navázaný na hlavičku se v agendě automaticky zobrazí jako záložka Obsah s editovatelným seznamem (multigridem), včetně možnosti mít pro různé typy řádků různá sloupcová rozložení (viz Editor rozložení sloupců multigridu).
- Nad definovatelnou agendou lze použít definovatelný formulář poskládaný z definovatelných panelů (viz Definovatelný formulář a definovatelné panely na definovatelné agendě).
- Nad definovatelnou agendou lze vytvořit vlastní tiskovou sestavu, v případě potřeby i s vlastním rozšířeným DynSQL (viz Tisková sestava nad definovatelnou agendou).
- Celé řešení lze přenést mezi spojeními (např. z testovacího do produkčního) přes instalační sadu (viz Přenos definovatelného řešení mezi spojeními pomocí instalační sady).
- Definovatelný objekt je od začátku dostupný i přes REST API, včetně možnosti založit celé řešení čistě přes API bez jediného kliknutí v GUI (viz Definovatelný business objekt kompletně přes REST API).
Definovatelný objekt nad existující agendou
Třída hlavičky řádkového objektu nemusí být jen jiný definovatelný business objekt - lze ji nastavit i na existující, výrobcem dodávanou agendu (např. Objednávky přijaté). Vznikne tak nová kolekce, která se na této existující agendě zobrazí jako další samostatná záložka, aniž by bylo potřeba do systémové agendy jakkoli zasahovat. Podrobný postup najdete v návodu Jak připojit definovatelnou kolekci k existující agendě.
Kolekce v kolekci
Řádkový objekt může být hlavičkou pro další řádkový objekt - lze si tedy vytvořit i vícestupňové vnořené kolekce ("kolekce v kolekci"). Typickým use-case je situace, kdy potřebujete evidovat vlastní podrobnosti nejen k dokladu jako celku, ale i k jednotlivým řádkům existující agendy (např. další, ještě podrobnější rozpad k řádkům objednávky). Postup založení i zpřístupnění takové vnořené kolekce popisuje stejný návod Jak připojit definovatelnou kolekci k existující agendě.
Tento návod je součástí skupiny návodů k definovatelným objektům. Další návody z této skupiny:
- Definovatelné objekty - úvod
- Jak vytvořit definovatelnou agendu
- Jak připojit definovatelnou kolekci k existující agendě
- Tisková sestava nad definovatelnou agendou
- Definovatelný formulář a definovatelné panely na definovatelné agendě
- Přenos definovatelného řešení mezi spojeními pomocí instalační sady
- Příklad z praxe - definovatelná agenda Reklamace
- Přílohy definovatelného business objektu přes API a skriptování
- Definovatelný business objekt kompletně přes REST API