Data Transformation Actions
- Get index sets:
<vdl-action-get-index-sets>
- Get entity data:
<vdl-action-get-entity-data>
- Group data by:
<vdl-action-group-by>
- Label data:
<vdl-action-add-labels>
- Aggregate data:
<vdl-action-aggregate>
- Filter data:
<vdl-action-filter>
- Set var:
<vdl-action-set-varvar="scenarioData">
Get and filter data
<vdl-action-get-index-sets>
to determine the index sets associated with a supplied array. It should be used as shown:
<vdl-action-get-index-sets entity="CountryStats"></vdl-action-get-index-sets>
Entity data can be fetched using the
<vdl-action-get-entity-data>
action. Use the entity attribute to return the entity data as an array of primitives, as shown below:
<vdl-var name="example1Data" value="=[]"></vdl-var>
<vdl-action-group name="example1">
<vdl-action-get-entity-data entity="StatTypes"></vdl-action-get-entity-data>
<vdl-action-set-var var="example1Data"></vdl-action-set-var>
</vdl-action-group>
<vdl-button label="Get Set Data" vdl-event="click:actions.example1"></vdl-button>
<ul>
<li vdl-repeat="=data in vars.example1Data"><span vdl-text="=data"></span></li>
</ul>
Array data can be returned for multiple scenarios by using the scenario attribute to fetch a filtered array for each scenario, then summing each result with
vdl-action-aggregate
, as shown below:
<vdl-var name="currentScenarioIndex" value="0"></vdl-var>
<vdl-var name="example4Data" value="=[]"></vdl-var>
<vdl-action-group name="example4">
<vdl-action-set-var var="example4Data" value="=[]"></vdl-action-set-var>
<vdl-action command="example4FetchByScenario" vdl-repeat="=s, indx in scenarios" value="=indx"></vdl-action>
</vdl-action-group>
<vdl-action-group name="example4FetchByScenario">
<vdl-action-set-var var="currentScenarioIndex"></vdl-action-set-var>
<vdl-action-get-entity-data
entity="CountryStats"
filters="={'StatTypes':['1'], 'CountryCodes':['UK']}"
scenario="=vars.currentScenarioIndex"></vdl-action-get-entity-data>
<vdl-action-aggregate></vdl-action-aggregate>
<vdl-action-array-push var="example4Data" value="={value:value, label:scenarios[vars.currentScenarioIndex].props.name}"></vdl-action-array-push>
</vdl-action-group>
<vdl-datagrid vdl-if="=vars.example4Data.length" column-definition="labels" data="=vars.example4Data"></vdl-datagrid>
Define variables and aggregate data
The vdl-action-group-by
Action takes groups entity data by one or more keys. Each object in the data must have a key property, defined as an array of primitives.
Group by a single dimension
When grouping by a single key, the vdl-action-group-by
Action creates a new object (group) for each key. The object contains two properties, the key, and an array containing all of the rows with the unique key at the designated set position.
<vdl-var name="exampleData" value="=[]"></vdl-var>
<vdl-action-group name="example">
<vdl-action-group-by data="=data" set-position="=value"></vdl-action-group-by>
<vdl-action-set-var var="exampleData"></vdl-action-set-var>
</vdl-action-group>
<vdl-button label="Group source data by set-position 0" value="0" vdl-event="click:actions.example"></vdl-button>
<vdl-button label="Group source data by set-position 1" value="1" vdl-event="click:actions.example"></vdl-button>
Group By multiple dimensions
<vdl-action-group-by data="=vars.example1Data" set-position="=[0,1]"></vdl-action-group-by>
Using default keys
You can ensure that the results of vdl-action-group-by
will always contain specific keyed groups or objects by using the default-keys
attribute. Keys that are passed to vdl-action-group-by
will always be displayed, but default-keys
can be used to force a key to be displayed even if there are no data rows containing that key to be displayed.
If keys passed in default-keys
exist in the data, they will not be duplicated.
<vdl-action-group-by data="=example2Data" set-position="1" default-keys="=[1,2,3,4,5]"></vdl-action-group-by>
Data is returned as an array of objects. Each object has a key and values property. The key will be an array of primitives, and the values property will be an array containing the data objects for that group.
Label the data
Use the <vdl-action-add-labels>
action to add a labels property to an object. In the following examples, the fetched data is set via <vdl-action-set-var>
into a VDL variable.
data
and an entity name to
annotated-entity
. This returns an array of objects containing a value and label for each item in the array.
<vdl-var name="example1Data" value="=[]"></vdl-var>
<vdl-action-group name="example1">
<vdl-action-add-labels data="=[2,3,4]" annotated-entity="StatTypes"></vdl-action-add-labels>
<vdl-action-set-var var="example1Data"></vdl-action-set-var>
</vdl-action-group>
<vdl-button label="Add Labels to [2,3,4]" vdl-event="click:actions.example1"></vdl-button>
<vdl-datagrid vdl-if="=vars.example1Data.length" data="=vars.example1Data"></vdl-datagrid>
data
, and entity name to
labels-entity
, using the
fallback-label
attribute to specify which property to use when there is no label. This returns an array of objects containing a value and label for each item in the array.
<script>
const example3PassedData = [
{key: 'UK', value:'100'},
{key: 'FR', value:'200'},
{key: 'IT', value:'300'},
{key: 'USA', value:'400'},
{key: 'IRL', value:'500'},
{key: 'ESP', value:'600'},
];
</script>
<vdl-var name="example3aData" value="=[]"></vdl-var>
<vdl-var name="example3bData" value="=[]"></vdl-var>
<vdl-action-group name="example3">
<vdl-action-add-labels
data="=example3PassedData"
labels-entity="CountryCodesLabel"
fallback-label="key"></vdl-action-add-labels>
<vdl-action-set-var var="example3aData"></vdl-action-set-var>
<vdl-action-add-labels
data="=example3PassedData"
labels-entity="CountryCodesLabel"
fallback-label="value"></vdl-action-add-labels>
<vdl-action-set-var var="example3bData"></vdl-action-set-var>
</vdl-action-group>
© 2001-2024 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.