Přenos definovatelného řešení mezi spojeními pomocí instalační sady
Definice definovatelného business objektu, definovatelné agendy a k nim náležejících uživatelsky definovatelných položek (viz Jak vytvořit definovatelnou agendu) jsou uložené v konkrétním spojení/databázi, nikoli sdílené napříč celou instalací. Aby bylo možné řešení vytvořené a ověřené v testovacím spojení přenést do produkčního spojení (nebo k jinému zákazníkovi), použije se stejný obecný mechanismus Instalační sady, jaký se používá pro přenos jiných druhů uživatelských úprav (číselníky, balíčky skriptů, definovatelné položky apod.).
Co všechno instalační sada u definovatelného řešení přenáší
Pro definovatelné řešení jsou v Průvodci přidáním položek instalační sady relevantní tyto typy objektů:
| Typ objektu | Co přenáší | Závisí na |
|---|---|---|
| Definovatelné business objekty | Definice vytvořená v agendě Definice business objektů - a to bez ohledu na Typ (Prázdný objekt, Číselníkový objekt, Doklad i Řádek jsou pořád jen jeden a týž typ objektu instalační sady). Pokud tedy máte hlavičkový, číselníkový i řádkový business objekt, přidáte sem všechny tři jako tři samostatné položky tohoto jednoho typu. | Ostatní Definovatelné business objekty, na které je daný BO navázán (typicky řádkový objekt na svůj hlavičkový přes Třídu hlavičky) - průvodce tuto závislost rozpozná a nabídne doplnění automaticky. |
| Definovatelné agendy | Definice vytvořená v agendě Definice agend. | Definovatelné business objekty (konkrétní BO, nad kterým je agenda postavena) - závislost se doplňuje automaticky, a to jak na úrovni pořadí instalace, tak i jako konkrétní nabízená položka k doplnění. |
| Definovatelné položky | Vlastní uživatelsky definovatelné položky náležející k definovatelnému business objektu - stejný typ objektu, jaký se používá i pro vlastní položky na systémových třídách (viz Jak vytvořit definovatelnou položku). | - |
| Definovatelné DynSQL k definovatelným agendám | Vlastní upravitelnou kopii DynSQL definice, kterou jste si k agendě vytvořili nad jejím automaticky generovaným DynSQL (viz Rozšíření o data mimo automaticky generovaný DynSQL). Pokud jste žádnou vlastní kopii nevytvářeli a vystačili jste si s automaticky generovaným DynSQL, tento typ objektu pro vaše řešení nepotřebujete. Alternativou k tomuto typu objektu instalační sady je přenos přímo z DynSQLEditor.exe (menu Export/Import → Definovatelné agendy → Exportovat/Importovat) - ten se připojí přímo na cílové spojení a přenese DynSQL definovatelných agend bez instalační sady. Obě cesty zapisují do téže podkladové definice, takže je lze použít i zaměnitelně - podrobněji viz Rozšíření o data mimo automaticky generovaný DynSQL. | Definovatelné agendy (konkrétní agenda, ke které DynSQL patří) - závislost se doplňuje automaticky, obdobně jako u agendy výše. |
| Rozložení sloupců Editovatelného seznamu | Sloupcové rozložení řádkového multigridu vytvořené přes Editor rozložení sloupců (viz Editor rozložení sloupců multigridu) - tedy přesně to, co vzniká uložením Globálního rozložení sloupců pro danou kolekci řádků, včetně všech hodnot rozhodné položky (layoutů), které jste pro ni připravili. | Formálně žádnou - průvodce u tohoto typu nenabídne automatické doplnění závislé Definovatelné agendy ani Definovatelného business objektu (na rozdíl od dvojice výše). Přidejte si tedy agendu i business objekt do sady sami, ručně - jinak layout naimportujete do cílového spojení bez agendy, ke které patří. |
Volba "Seznam layoutů pro multigrid" na rozhodné položce se přes Definovatelné položky nepřenáší. Pokud je vaše rozhodná položka pro layout multigridu (viz krok 4a hlavního příkladu) mezi přenášenými Definovatelnými položkami, po importu do cílového spojení zůstane volba Seznam layoutů pro multigrid na této položce nezatržená, i když byla ve zdrojovém spojení zatržená - ostatní vlastnosti položky (Volby, Počítat od, Datový typ apod.) se přenesou v pořádku, jen tahle jedna ne. Řešení: po každém importu tohoto typu zkontrolujte a případně ručně znovu zatrhněte volbu Seznam layoutů pro multigrid na cílové položce přímo v cílovém spojení.
Samotné rozložení sloupců multigridu se přes "Rozložení sloupců Editovatelného seznamu" reálně nepřenese, i když jej do sady zahrnete. Export vytvoří XML se správným obsahem, ale po importu se v cílovém spojení multigrid podle typu řádku nepřepíná - naimportovaná definice se neuplatní. Řešení (jediné funkční, které máme k dispozici): po importu si layout v cílovém spojení připravte znovu ručně stejným postupem jako v kroku 4c (Editor rozložení sloupců) - na přenos přes instalační sadu u tohoto konkrétního typu objektu prozatím nespoléhejte.
Nezaměňujte "Rozložení sloupců Editovatelného seznamu" s obyčejným typem "Rozložení sloupců". Jde o dva zcela nezávislé mechanismy s odlišným úložištěm dat - obyčejné "Rozložení sloupců" slouží pro běžné sloupcové seznamy (obyčejné mřížky, záložka Seznam), zatímco "Rozložení sloupců Editovatelného seznamu" je určeno výhradně pro multigrid (editovatelný seznam řádkové kolekce, "Obsah" u dokladu). Pro přenos layoutu multigridu definovatelné agendy tedy vždy vybírejte typ s "Editovatelného seznamu" v názvu - i když se dle poznámky výše prozatím reálně neuplatní.
Nezaměňujte ani "Definovatelné business objekty" (nový typ pro DBO) se starším typem "Definovatelné číselníky". "Definovatelné číselníky" je samostatný, mnohem starší mechanismus (nástroj DefRollEditor.exe, stromové definovatelné číselníky), se kterým definovatelné business objekty nijak nesouvisí - i když jste svůj definovatelný business objekt založili s Typem Číselníkový objekt, do instalační sady jej přidáváte pořád jen jako Definovatelné business objekty, nikoli jako Definovatelné číselníky.
Identifikace objektů v rámci instalační sady je řešena přes jejich CLSID (u DynSQL a rozložení sloupců přes ID vlastní definice), a při importu se položky zpracovávají ve správném pořadí podle závislostí popsaných výše.
Řadu dokladů (viz kapitola Řada dokladů jako chráněný objekt) instalační sada nepřenáší - pro řady dokladů žádný typ objektu instalační sady neexistuje, a to ani pro systémové dokladové agendy, ani pro definovatelné. Jde tedy o obecné omezení produktu, ne o něco, co by se týkalo jen definovatelných business objektů. V cílovém (produkčním) spojení je nutné řadu dokladů založit ručně znovu podle stejného obecného návodu a znovu jí i nastavit ochranu jako chráněnému objektu - stejně jako práva k funkcím u nové agendy, ani tohle instalační sada nezajistí.
Postup přenosu
-
V testovacím spojení nejprve celé řešení dokončete a ověřte podle návodu Jak vytvořit definovatelnou agendu - tedy definici business objektu, případné vlastní položky, definici agendy i práva k ní.
-
Otevřete agendu Instalační sady a založte novou instalační sadu (funkce Nový), případně doplňte popis, čeho se sada týká.
-
Funkcí Přidat položku spusťte Průvodce přidáním položek, zvolte typ objektu Definovatelné business objekty a přidejte všechny své business objekty (hlavičkový, případný číselníkový i řádkový) - jde stále o tentýž typ objektu bez ohledu na jejich Typ.
-
Stejným způsobem přidejte typ objektu Definovatelné agendy pro všechny navazující agendy a typ Definovatelné položky pro vlastní uživatelské položky.
-
Pokud jste si k některé agendě vytvořili vlastní upravitelnou kopii DynSQL (viz Tisková sestava nad definovatelnou agendou), přidejte ji jako typ Definovatelné DynSQL k definovatelným agendám.
-
Pokud má některý řádkový objekt nastavené rozhodné položky a připravené sloupcové layouty (viz Editor rozložení sloupců multigridu), přidejte je jako typ Rozložení sloupců Editovatelného seznamu - tuto položku k sadě musíte přidat ručně, průvodce ji na rozdíl od agendy a business objektu nenabídne automaticky jako chybějící závislost. I tak se ale po importu reálně neuplatní (viz poznámka výše) - připravte si tedy layout v cílovém spojení raději rovnou znovu ručně (krok 4c) a tuto položku do sady zahrňte jen jako doplňkovou zálohu definice, ne jako spolehlivý způsob přenosu.
-
Pokud jste vytvořili i vlastní tiskovou sestavu, přidejte ji jako typ Tiskové sestavy.
-
Pokud průvodce na konci přidávání nahlásí chybějící závislé objekty (typicky u business objektů, agend a DynSQL), doplňte je stejným způsobem - u rozložení sloupců multigridu ale na toto automatické hlášení nespoléhejte, viz poznámka výše.
-
Sadu exportujte do souboru přes funkci Exportovat podle obecného návodu Průvodce exportem instalační sady.
-
V cílovém (produkčním, případně zákaznickém) spojení soubor naimportujte podle obecného návodu Import instalační sady.
-
Po dokončení importu zkontrolujte na detailu naimportované instalační sady záložku Obsah - měly by na ní být vidět všechny naimportované položky (definice business objektu, definice agendy, případné definovatelné položky).
-
Restartujte aplikační server a klienty ABRA Flores na všech počítačích - stejně jako při ručním vytváření definic v návodu Jak vytvořit definovatelnou agendu, i po importu instalační sadou je restart potřeba, aby se metadata promítla do běžícího prostředí.
-
V cílovém prostředí ověřte, že se agenda zobrazuje, že jsou správně nastavena práva (ta je potřeba nastavit zvlášť v cílovém spojení, pokud nejsou také součástí přenášené instalační sady), a založte zkušební záznam.
-
U rozhodné položky pro layout multigridu zkontrolujte v cílovém spojení volbu Seznam layoutů pro multigrid a případně ji ručně znovu zatrhněte (viz poznámka výše - export/import tuto volbu nepřenáší). Pokud jste layout multigridu nepřipravili v cílovém spojení ručně už v kroku 6, udělejte to nyní stejným postupem jako v testu.
Poznámka pro opakovaně nasazovaná řešení u více zákazníků
Pokud stejné definovatelné řešení (typicky dokladový business objekt s podporou příloh) nasazujete opakovaně u více zákazníků, pamatujte, že číslo identifikace propojení s přílohami (RelDefToDocument) se přiděluje z vyhrazeného rozsahu. Pro opakovaně nasazovaná zákaznická řešení je vyhrazen rozsah čísel 2008000-2009999 - před nasazením podobného opakovaného řešení si konkrétní číslo z tohoto rozsahu rezervujte (evidence rezervací je vedena v Gitu pro konzultanty), aby při případném souběhu více takových řešení u jednoho zákazníka nedošlo ke kolizi čísel.
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