Definovatelné business objekty a agendy - obecně
Zde naleznete:
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ádají do jedné společné databázové tabulky, sdílené napříč celým systémem. Postupným vytvářením vlastních položek k řadě různých agend a číselníků se v této společné tabulce může 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ě tuto situaci: pro každou vlastní evidenci vznikne vlastní, vyhrazená databázová tabulka a REST API endpoint, 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. Jde o jednu z možností zákaznické modifikovatelnosti systému, určenou především konzultantům a vývojářům, kteří přizpůsobují řešení konkrétnímu zákazníkovi bez zásahu do zdrojového kódu.
Na definovatelném business objektu je pak možné - stejně jako na kterémkoli Business objektu dodaném výrobcem - dále postavit vlastní tiskovou sestavu, definovatelný formulář, přenášet jej mezi spojeními instalační sadou, nebo s ním pracovat přes REST API zcela bez nutnosti cokoli v GUI klikat.
Při založení business objektu v agendě Definice business objektů se volí jeden ze čtyř typů (položka Typ), který určuje, jaké vlastnosti objekt automaticky získá:
- Prázdný objekt - objekt bez vlastních automatických polí, základ pro zcela vlastní evidenci.
- Číselníkový objekt - objekt typu Kód/Název, nad kterým vznikne číselníková agenda.
- Doklad - hlavičkový objekt dokladového typu; automaticky získá pole Firma a sekci Procesní řízení (Stav, Zodpovědná role, Zodpovědná osoba) se záložkou Historie změn stavu, aniž by je bylo nutné definovat jako vlastní položky, a lze mu založit vlastní řadu dokladů.
- Řádek - podřízený objekt navázaný na hlavičkový business objekt (systémový i jiný definovatelný) prostřednictvím položky Třída hlavičky. Řádkový objekt nemá samostatnou agendu - jeho záznamy se zobrazují jako editovatelný seznam (multigrid) v rámci hlavičky.
Typ objektu lze zvolit pouze při jeho založení - dodatečně už jej nelze změnit.
Vytvoření vlastního řešení se skládá z několika na sebe navazujících kroků, rozdělených do samostatných agend:
- Business objekt - v agendě Definice business objektů vznikne datový objekt a jeho databázová tabulka - určí se typ, interní názvy a technické identifikátory.
- Vlastní položky - v agendě Definovatelné položky se doplní, jaké údaje bude business objekt obsahovat.
- Agenda - v agendě Definice agend vznikne nad business objektem (kromě typu Řádek, který samostatnou agendu nemá) vizuální agenda, ve které budou uživatelé data evidovat, včetně jejího umístění v nabídce agend.
- Práva - teprve v roli/skupině rolí na záložce Práva k funkcím, kategorii Definovatelné agendy, se nová agenda zpřístupní uživatelům.
Business objekt tedy sám o sobě definuje jen datovou strukturu a úložiště - dokud nad ním nevznikne agenda (a dokud k ní role nezíská právo), nemají k němu uživatelé přes GUI přístup. Naproti tomu přes REST API je business objekt dostupný ihned po založení, nezávisle na existenci vizuální agendy.
Krok za krokem, se screenshoty a konkrétním příkladem, popisuje postup návod Jak vytvořit definovatelnou agendu a celá skupina navazujících kapitol Definovatelné objekty.
Business objekty lze vzájemně kombinovat a odkazovat mezi sebou, obdobně jako systémové (výrobcem dodané) objekty:
- Existující agenda jako hlavička - Třída hlavičky řádkového objektu může být kterákoli registrovaná třída v systému, tedy i systémová (výrobcem dodaná) hlavičková agenda, např. Objednávky přijaté. Vznikne tak nová kolekce, která se na existující agendě zobrazí jako další samostatná záložka, aniž by bylo nutné do systémové agendy jakkoli zasahovat.
- Kolekce v kolekci - řádkový objekt může být hlavičkou pro další řádkový objekt, tedy jde vytvořit i vícestupňové vnořené kolekce. Na rozdíl od kolekce na existující agendě se ale vnořená kolekce v GUI nezobrazí automaticky - vyžaduje ruční doplnění pluginu Definovatelné řádky na definovatelný formulář rodičovského řádku.
- Odkaz do číselníku - vlastní položka business objektu může typem Identifikátor a cizím klíčem odkazovat do libovolného systémového i definovatelného číselníku, s výjimkou Adresáře firem (u dokladového typu je ale firma na hlavičce k dispozici automaticky, viz výše) a s výjimkou nově založeného definovatelného číselníkového objektu samotného (ten prozatím nelze použít jako cíl cizího klíče jiné položky).
Podrobný postup pro oba způsoby napojení na existující agendu (existující agenda jako hlavička i kolekce v kolekci) popisuje návod Jak připojit definovatelnou kolekci k existující agendě.