Jak si přidat a upravit X-vazby
Uživatelské X-vazby
X-vazby uživatelsky
Vlastní X-vazby
V agendách systému ABRA Gen je k dispozici mj. záložka X-vazby pro přehledné zobrazení vazeb aktuálního dokladu na jiné svázané záznamy. Dříve byla k dispozici pouze ve vybraných dokladových agendách a zobrazovala pouze vybrané typy vazeb na svázané doklady vytvořené v rámci procesní tvorby dokladů. Od verze 23.1 je záložka k dispozici ve všech dokladových i číselníkových agendách a je tedy možno přidávat vazby i na číselníkové objekty, a to jak jednorázově ručně, tak automaticky pomocí skriptování. Pro účely zákaznických úprav lze zajistit, aby se uživatelské vazby chovaly jako systémové (a uživatel je nemohl mazat). Rovněž lze pomocí skriptování rozšířit obsah záložky X-vazby o zobrazení již existujících zakázkových vazeb mezi objekty (vytvořených dříve např. pomocí X položky s odkazem). Také lze od v. 23.1 ovlivnit obsah poznámky zobrazované u X-vazby, a to pomocí skriptování i u systémových vazeb dodávaných výrobcem. Ukážeme si jak.
A. Přidání uživatelské X-vazby na číselníkový objekt ručně
Přidáme si např. X-vazbu vybrané objednávky přijaté na vybraný obchodní případ.
Otevřeme agendu Objednávky přijaté. Viz modul Prodej → záložka Nabídky a objednávky → agenda Objednávky přijaté. Zde vybereme objednávku, k níž chceme vazbu přidat, přejdeme do její záložky X-vazby a stiskneme tlačítko Přidat:
Záložka X-vazby vybrané objednávky přijaté
Po stisku tlačítka Přidat se zobrazí jednokrokový průvodce, kde vybereme, pro jakou třídu Business objektů chceme X-vazbu přidat. Vybereme objektovou třídu Obchodní případy, můžeme doplnit i Poznámku, která se pak u vazby zobrazí a stiskneme tlačítko Dokončit:
Zatržítko Jednosměrná X-vazba ponecháme nezatržené. Budeme chtít, aby vazba byla viditelná i z druhého směru, tedy ze záložky X-vazby daného Obchodního případu
Doporučujeme přidávat obousměrné vazby. Poté uživatel uvidí např. na objektu typu A objekty typu B a také naopak z B uvidí A. Přidání na obě strany je plnohodnotná X-vazba. Přidání jen na jednu stranu vytváří jednosměrnou vazbu a i když je vytvoření možné, je třeba si uvědomit, že může být zavádějící, pokud se zobrazuje na záložce s názvem X-vazby (křížové vazby).
Po stisku tlačítka Dokončit se otevře agenda vybrané třídy objektů, v našem případě číselník Obchodní případy. Otevře se "přes" naši otevřenou agendu Objednávky přijaté. Zde vybereme požadovaný záznam a stiskneme OK. Mohli bychom jich označit a vybrat i více najednou, pokud by to pro naši situaci mělo význam.
Nemáme nic označeno, čili v našem případě se po stisku OK vybere aktuální záznam, na němž stojí kurzor, tj. obchodní případ pro označení "prodejů z výstavy Expo Brno"
Po stisku tlačítka OK se agenda Obchodní případy automaticky zavře a program se vrátí do záložky X-vazby naší objednávky přijaté. Zde přibude právě vytvořená X-vazba na zvolený obchodní případ. Pro odlišení je takto ručně vytvořená uživatelská X-vazba výrazně barevně odlišena:
Mezi X-vazbami objednávky přijaté přibyla ručně přidaná uživatelská X-vazba na vybraný číselníkový záznam. Graficky barevně odlišená.
Interně v databázi se vytvořená uživatelská vazba zapíše do tabulky UserLinks, která je k tomu určena.
Vytvoření X-vazby nijak neovlivňuje jiné údaje na samotném dokladu. Jde jen o vizuální zobrazení vazeb (pro přehled). Pokud bychom např. chtěli Objednávky vydané filtrovat za vybraný obchodní případ, museli bychom jej zadat přímo v řádku daného dokladu (kde se údaje tohoto typu na doklady standardně zadávají). Podobně, pokud by se jednalo o doklad, který se účtuje, a chtěli bychom pak účetní záznamy filtrovat za daný obchodní případ, museli bychom jej mít zadaný na řádku dokladu a při zaúčtování do účetního deníku.
Jelikož jsme v rámci přidání X-vazby nezatrhli příznak "Jednosměrná vazba", uvidíme danou X-vazbu i z druhého směru, tj. ze záložky X-vazby daného obchodního případu:
Vznikla uživatelská X-vazba je obousměrná, čili vidíme ji i z cílového objektu
Úplně stejným postupem můžeme přidat další uživatelskou X-vazbu. Např. na jiný obchodní případ, případně na úplně jinou třídu objektů.
Přidali jsme si vazbu na další obchodní případ. V tomto případě je pole Poznámka na záložce X-vazby prázdné, jak je vidět na obrázku výše. Důvodem je to , že jsem tentokrát v rámci přidávání vazby jen vybrali třídu objektů, ale pole Poznámka jsme už nevyplnili.
Pokud bychom chtěli poznámku právě vzniklé vazby následně doplnit či upravit, použijeme k tomu funkci Opravit. Ta se zpřístupní jen tehdy, postavíme-li kurzor na záznam s ručně vytvořenou uživatelskou X-vazbou. Poté doplníme poznámku a stiskem tlačítka Dokončit ji uložíme.
Přidali jsme si vazbu na další obchodní případ. V tomto případě je pole Poznámka na záložce X-vazby prázdné, jak je vidět na obrázku výše. Důvodem je to , že jsem tentokrát v rámci přidávání vazby jen vybrali třídu objektů, ale pole Poznámka jsme už nevyplnili.
Pokud bychom chtěli naši X-vazbu zrušit, použijeme k tomu funkci Odebrat. Ta se zpřístupní opět jen tehdy, postavíme-li kurzor na záznam s ručně vytvořenou uživatelskou X-vazbou. Po kontrolním dotazu se vazba zruší.
B. Přidání uživatelské X-vazby na dokladový objekt ručně
Můžeme si např. přidat X-vazbu dokladu Objednávka přijatá na vybraný doklad Pošta došlá. Taková dokladová vazba mezi systémovými X-vazbami dodávanými výrobcem není a je občas poptávaná.
Postupovat budeme úplně stejně, pouze ve funkci Přidat vybereme objekt Došlá pošta:
Zatržítko Jednosměrná X-vazba ponecháme nezatržené. Budeme chtít, aby vazba byla viditelná i z druhého směru, tedy ze záložky X-vazby daného poštovního dokladu
Po stisku tlačítka Dokončit se otevře agenda vybrané třídy objektů, v našem případě dokladová agenda Došlá pošta. Zde vybereme příslušný doklad (např. pomocí podmínek na záložce Omezení), příp. pokud ještě záznam dané pošty neexistuje, tak rovnou zadáme nový a uložíme jej. Po stisku tlačítka OK se agenda Došlá pošta automaticky zavře a program se vrátí do záložky X-vazby naší objednávky přijaté. Zde přibude právě vytvořená X-vazba na zvolený poštovní doklad:
Mezi X-vazbami objednávky přijaté přibyla ručně přidaná uživatelská X-vazba na vybraný doklad pošty, kterým byla objednávka doručena
Interně v databázi se vytvořená uživatelská vazba opět zapíše do tabulky UserLinks.
C. Založení uživatelské vazby ze skriptování + úprava vazby, aby se chovala jako systémová
Kromě vytváření vazeb pomocí tlačítka Přidat, můžeme vazbu v tabulce UserLinks vytvořit i pomocí skriptování. Např. můžeme mít v agendě nějaké funkční tlačítko, po jehož stisku se vyvolá naskriptovaná akce a vytvoří se vazba mezi nějakými dvěma záznamy. Např. tlačítko Test pro přidání vazeb na vybrané záznamy typu Dokumenty se specifikací k naší objednávce (tj. dokumenty, které budou splňovat nějakou podmínku, podle které je budeme moci automaticky vybrat a vazbu ve skriptu vytvořit).
Po stisku tlačítka nechť se vyvolá daný skript, dohledají se požadované dokumenty a vytvoří se vazba:
Vytvořená vazba na dohledané dokumenty
Pro účely podobných zakázkových řešení je možné využít příznaku DisplayAsSystem na dané uživatelské X-vazbě. Pokud jej nastavíme na True, bude se vazba pro uživatele chovat jako systémová - tedy nebude ji moci odstranit pomocí tlačítka Odebrat. Aby bylo možné odlišit tyto uživatelské vazby nastavené jako systémové od "pravých" systémových dodávaných výrbcem, jsou tyto rozlišeny vizuálně pomocí mírně světlejší černé barvy. To si ukážeme. V našem skriptu si tedy nastavíme DisplayAsSystem na True:
....
{ nastavení uživatelské vazby jako systémové }
mUserXLink.SetFieldValueAsBoolean('DisplayAsSystem', True);
...
Nyní akci zopakujeme (nechť máme ve skriptu ošetřeno, že dokumenty, na něž X-vazba již existuje se nebudou řešit, pouze se přidají nově přidané).
Vidíme, že vazba na dokument SPEC-3/2020 je nyní zobrazena světlejší černou barvou.
Nyní se skriptem nedoplnila Poznámka. Uživatelsky ji ale už nedoplníme, protože vazba se chová nyní jako systémová a funkce pro opravu a smazání nejsou k dispozici, což si ukážeme:
Pokud je fokus na záznamu SPEC-3/2020, který jsme si nastavili, aby se choval jako systémový, už nejsou dostupné funkce Odebrat a Opravit.
Nicméně úprava poznámky je opět možná pomocí skriptování a to i u "pravých" systémových vazeb dodávaných výrobcem. To si ale v tomto návodu ukazovat nebudeme, inspirujte se příklady v kap. Příklady pokročilého skriptování.
D. Úprava záložky X-vazby pomocí skriptování - rozšíření seznamu objektů zobrazovaných na záložce X-vazby o zobrazení vazeb na jiné záznamy svázané jiným způsobem
Nyní si ukážeme, jak lze pomocí skriptu přidat zobrazení vazeb v záložce X-vazby na nějaké jiné záznamy, aniž bychom vytvářeli userlinky v tabulce UserLinks. Přidáme si např. zobrazení vazeb dokladu Objednávky vydané na doklady Nabídky vydané. Taková X-vazba mezi systémovými vazbami dodávanými výrobcem není. Tedy jak přidat do záložky X-vazby skupinu Nabídky vydané a zobrazovat zde ty doklady nabídek, které splňují nějakou podmínku (např. jsou svázány s konkrétní objednávkou přes nějakou uživatelsky definovatelnou položku, nebo mají nějakou hodnotu v nějaké jiné položce apod.). Přidáme si např. vazbu na všechny NV s pořadovým číslem 1. K tomu využijeme háček AddLinks, který je od v. 23.1 k dispozici a který umožňuje rozšířit seznam objektů na záložce X-vazby a to jak přidáním objektů, tak i celých nových skupin objektů.
Zde není účelem uvádět smysluplný příklad skriptu, ale jen ukázat tuto možnost.
Jelikož budeme přidávat skripty, doporučujeme jako obvykle nejdříve jej vyzkoušet a odladit v Testovacím spojení a teprve poté přenést do produkčního prostředí.
Otevřeme agendu Balíčky skriptů. Viz modul Nástroje přizpůsobení → záložka Definice → agenda Balíčky skriptů. Zde zvolíme funkci Nový:
Zadáme údaje nového balíčku a zdrojový kód:
Zadáme název balíčku, nastavíme jeho použití a vybereme druh skriptu Business objekt a jako Business objekt vybereme Objednávku přijatou:
V záložce Zdrojový kód si necháme předvyplnit příklad výběrem metody AddLinks.
Balíček uložíme a zkompilujeme. Po zavření a znovunačtení skriptů uvidíme na záložce X-vazby dokladů Objednávky vydané tyto skriptem zobrazené vazby.
Záložka X-vazby objednávek vydaných po přidání skriptu dle našeho příkladu.
Jak bylo řečeno výše, toto nebyl smysluplný příklad skriptu, ale jen ukázka této možnosti. Psaním reálných skriptů se ale nemusíte zabývat. V případě zájmu o takovou funkcionalitu, kontaktujte, prosím, svého dodavatele.
Viz též kap. Záložka X-Vazby - obecně.