set-remote-select - výběr třetího dokumentu ve zdroji
Přeloženo - nastavení vzdáleného výběru. Každý dokument můžeme definovat tak, že využívá jiného dokumentu prostřednictvím výběrového uzlu. Tento uzel může být typu initial, lexicon či foreign - to už víme z předchozích podkapitol (vlastnost source). Pomocí tohoto propojení můžeme využívat data zdrojových dokumentů a u mechanismu foreign je můžeme i měnit tím, že změníme hodnotu propojeného prvku. To může být účelné pokud například zástupce klienta, který jakožto samostatný dokument má propojení na obecnější dokument osoba, změní telefonní číslo. Pak se toto číslo promítne i do osoby. Pomocí mechanismu foreign jako takového ještě ovšem nemůžeme změnit vyběr třetího dokumentu provedený v dokumentu zdrojovém.
Představme si příklad nějakého operátora služeb, který přijímá hlášení o poruchách svých služeb od svých klientů. Pro každé takové hlášení má pracovník operátora k dispozici dokument "Hlášení poruchy". Na tomto hlášení vybere klienta, kterého se porucha týká a zapíše údaje, jako jsou datum a čas vzniku poruchy a její stručný popis.
Vedle běžných privátních klientů u operátora však ještě existují firemní klienti, kde je díky rozsahu služeb běžné, že se poruchy hlásí hromadným způsobem přes pověřenou osobu. Pak nastává situace, že bychom museli zavést např. deset poruch a na každé z nich vybrat stejného klienta opakovaně. Zde je možné definovat nový dokument "Hromadné hlášení", kde se v hlavičce vybere předmětny klient a opakovatelné oblasti se mechanismem foreign propojí na běžné "Hlášení poruchy", kam se vyvedou datum, čas a popis poruchy. Vyplněním těchto kolonek se u každého opakování vytvoří nové samostatné hlášení. Problém ovšem je v tom, že se tato dílčí hlášení nezařadí výběrem k požadovanému klientovi. Chceme-li z nějakého důvodu udržet hlášení v jedné tabulce, můžeme použít právě vzdáleného nastavování vyběru. V podstatě jde o to, že v hromadném hlášení definujeme, že klient, který je vybrán zde se má vybrat i u upravených nebo nových dílčích hlášení. Toto definujeme pomocí operátoru rovnosti mezi výběrovym uzlem klienta u hromadného a běžného hlášení ve vlastnosti set-remote-select v source-behaviour. Mohlo by to vypadat takto:
source-behaviour="set-remote-select: [::]/vybrany_klient = /predmetny_klient"
Název vybrany_klient, odkazuje na službu běžného hlášení (propojenou na výběrový uzel klienta). Umístění odkazu před či za rovnítkem není podstatné. Důležité je, aby odkazovali na stejný výběrový typ (tj. typ třetího zdrojového dokumentu). Místní odkaz na výběrový uzel může být i relativní.
Tímto způsobem může být nastavován i více než jeden výběrový uzel zdrojového dokumentu. Stačí napsat ke klíčovému slovu set-remote-select další přiřazovací výraz oddělený čárkou. Pokud bychom tedy nastavovali např. nejen klienta, ale i pracovníka, který poruchu ten den hlásí, mohl by výraz vypadat takto:
source-behaviour="set-remote-select: ::/vybrany_klient = /predmetny_klient, ::/vybrany_zastupce = /zastupce_kl"