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><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>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>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-2025 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.
 
