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

AbstractAssetDataSourceData

Obsahové varianty

  • default (default)

Atributy

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

Systémový názevTyp hodnotyVícejazyčnýMultihodnota
merging
mergingBooleannene
retainingOrder
retainingOrderBooleannene
distinctResults
distinctResultsBooleannene
datasources
datasourcesAbstractDataSourceDataneano

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.