Agregační datový zdroj

Tento assetový datový zdroj umožňuje vzít výsledky z jednoho či více jiných datových zdrojů, spojit je a prezentovat jako jeden seznam assetů.

Datová třída

com.etnetera.jnp.data.CompositeDataSourceData

Rozšiřuje

Předchůdce zdrojů položek

Obsahové varianty

  • výchozí (default)

Atributy

(Kromě atributů dále uvedených také může dědit od typu Předchůdce zdrojů položek. Viz úvodní poznámky k tomuto přehledu.)

Systémový názevTyp hodnotyVícejazyčnýMultihodnota
Prokládat výsledky datových zdrojů
mergingBooleannene
Zachovat původní řazení podřízených zdrojů
retainingOrderBooleannene
distinctResults
distinctResultsBooleannene
Seznam použitých datových zdrojů
datasourcesPředchůdce datových zdrojůneano

Použití

Asset umožňuje slučovat výsledky zdrojů assetů obsažených v seznamu datasources. Používá se stejně jako jiné assetové zdroje v příkazu while.

Parametry while

Agregační datové zdroje podporují v příkazu while stejné atributy a parametry jako ostatní assetové zdroje. Lze v nich i stránkovat pomocí offset a limit.

Standardně se ve výsledku objeví všechny assety z prvního datového zdroje, poté všechny assety z druhého atd. V atributech lze ale nastavit režim Slučovat výsledky datových zdrojů, který způsobí to, že se výsledky všech podřízených zdrojů střídají - buď podle zadaného řazení (je-li nějaké zadáno) nebo se postupně bere po jednom assetu z každého zdroje.

Předávání dalších parametrů

Parametry agregačního zdroje se nepředávají do podřízených zdrojů. (Nepředává se ani offset a limit, ty se aplikují až na výsledek.)

Zejména pokud je některý z nich Dotazový datový zdroj, může být třeba mu nějaký parametr předat. Lze tak učinit pomocí prefixů u názvu parametru:

ds:param-name
Parametr s názvem param-name se předá všem zdrojům v seznamu.
dsord:param-name
Parametr s názvem param-name se předá ord-tému zdroji v seznamu datasources. Číslo ord se udává v „lidském“ počítání, tzn. první zdroj má číslo 1. Tato hodnota má pro příslušný zdroj přednost před hodnotou ds:param-name.
Příklad: Předání parametru jednomu z agregovaných zdrojů
Vstup
{while _template.aggr ds2:folder=_primary}
  ...
{/while}

Předpokládáme, že _template.aggr je agregační datový zdroj slučující výsledky dvou různých zdrojů.

Do podřízeného zdroje druhého v pořadí se předá parametr folder. Pokud je tento zdroj dotazovým zdrojem, nastaví se tím složka, ve které se assety hledají.

Pro vložení příspěvku do diskuse se přihlašte.