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
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ázev | Typ hodnoty | Vícejazyčný | Multihodnota |
---|---|---|---|
merging | |||
merging | Boolean | ne | ne |
retainingOrder | |||
retainingOrder | Boolean | ne | ne |
distinctResults | |||
distinctResults | Boolean | ne | ne |
datasources | |||
datasources | AbstractDataSourceData | ne | ano |
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.
ds
ord:
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 hodnotouds:
param-name.
{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í.