Process collection type data
Some Freedom UI components use data sources to load and display data. For example, List item preview, Embedded lists. The data source configuration object is a part of the Freedom UI page schema and lets you customize the data loading.
Implement the data source
-
Convert the existing page to Freedom UI if needed. Instructions: Configure the Freedom UI page (step 1).
-
Open the Freedom UI page schema.
-
Create the data source configuration object.
View the configuration object example that implements the data source of the
Opportunityobject below.Configuration object example that implements the data source"modelConfig": {
"primaryDataSourceName": "PDS",
"dataSources": {
"PDS": {
"type": "crt.EntityDataSource",
"config": {
"entitySchemaName": "Opportunity",
"attributes": {
"Title": {"path": "Title", "name": "PDS_Attribute_Title"}
}
}
}
}
}View the common parameters of the data source configuration object in the table below.
Parameter
Parameter description
primaryDataSourceName
The data source name
type
Data source type. If you omit the value, Creatio will use the
crt.EntityDataSourcetype.entitySchemaName
The name of the entity schema. Parameter of the data source type.
attributes
The list of attributes to load. Parameter of the data source type.
-
Add an attribute that includes the data source.
- Create an attribute in the
attributesproperty. - Add the data source name to the
pathproperty.
View the example that adds the
CustomAttributeattribute below. TheCustomAttributeattribute stores the data source of theOpportunityobject.Example that adds an attribute"viewModelConfig": {
"attributes": {
"CustomAttribute": {
"modelConfig": {
"path": "PDS"
}
}
}
} - Create an attribute in the
-
Bind the data source to the Freedom UI component. To do this, add the attribute that stores data source data to the
itemsproperty.View the example that binds the
CustomAttributeattribute to the Freedom UI component below.Example that binds the data source to the Freedom UI component"viewConfig": {
"type": "crt.List",
"items": "CustomAttribute",
...
}For this example, the Freedom UI page loads data from the
Opportunityobject and displays it in the List component. -
Configure the Freedom UI page.
- Go to the component whose
nameproperty is set tosettings. - Add configuration objects as string.
View the example that configures the Freedom UI page below.
Example that configures the Freedom UI page[
{
"operation": "insert",
"name": "settings",
"values": {
"entitySchemaName": "UsrSection",
"settingsType": "RecordPage",
"localizableStrings": {},
"columnSets": [],
"operation": "insert",
"details": [],
"viewConfigDiff": "[{\"operation\":\"merge\",\"type\":\"crt.ListScreen\",\"items\":\"CustomAttribute\",...}]",
"viewModelConfigDiff": "[{\"operation\":\"merge\",\"attributes\":{\"CustomAttribute\":{\"modelConfig\":{\"path\":\"PDS\"}}}]",
"modelConfigDiff": "[{\"operation\":\"merge\",\"primaryDataSourceName\":\"PDS\",\"dataSources\":{\"PDS\":{\"type\":\"crt.EntityDataSource\",\"config\":{\"entitySchemaName\":\"Opportunity\",\"attributes\":{\"Title\":{\"path\":\"Title\",\"name\":\"PDS_Attribute_Title\"}}}}}}]"
}
}
] - Go to the component whose
-
Save the changes.
As a result, you will be able to use data sources to customize a Freedom UI page based on your business goals. For example, filtering or sorting data.
Filter data
Creatio lets you use the following filtering types:
- Simple data filtering. Read more >>>
- Data filtering based on data from another data source. Read more >>>
Simple data filtering
-
Implement the data source. Instructions: Implement the data source.
-
Set up filtering.
- Create an attribute that implements the filter in the
attributesproperty. - Add the attribute name to the
filterAttributesproperty.
View the example that sets up the filtering below. The
CustomFilterattribute implements the filtering of records from theOpportunityobject.Example that sets up the filtering"viewModelConfig": {
"attributes": {
"Items": {
"modelConfig": {
"path": "PDS",
"filterAttributes": [
{"name": "CustomFilter"}
]
}
},
"CustomFilter": {
"value": {
"items": {
"63871ecc-40a1-4f00-a7e5-9c5099a76ea4": {
"filterType": 4,
"comparisonType": 3,
"isEnabled": true,
"trimDateTimeParameterToDate": false,
"leftExpression": {"expressionType": 0, "columnPath": "Owner"},
"isAggregative": false,
"key": "63871ecc-40a1-4f00-a7e5-9c5099a76ea4",
"dataValueType": 10,
"leftExpressionCaption": "Owner",
"referenceSchemaName": "Contact",
"rightExpressions": [
{
"expressionType": 2,
"parameter": {"dataValueType": 10, "value": "410006e1-ca4e-4502-a9ec-e54d922d2c00"}
}
]
}
},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6,
"rootSchemaName": "Opportunity"
}
}
}
} - Create an attribute that implements the filter in the
-
Configure the Freedom UI page.
- Go to the component whose
nameproperty is set tosettings. - Add configuration objects as string.
View the example that configures the Freedom UI page below.
Example that configures the Freedom UI page[
{
"operation": "insert",
"name": "settings",
"values": {
"entitySchemaName": "UsrSection",
"settingsType": "RecordPage",
"localizableStrings": {},
"columnSets": [],
"operation": "insert",
"details": [],
"viewConfigDiff": "[{\"operation\":\"merge\",...}]",
"vieModelConfigDiff": "[{\"operation\":\"merge\",\"attributes\":{\"Items\":{\"modelConfig\":{\"path\":\"PDS\",\"filterAttributes\":[{\"name\":\"CustomFilter\"}]}},\"CustomFilter\":{\"value\":{\"items\":{\"63871ecc-40a1-4f00-a7e5-9c5099a76ea4\":{\"filterType\":4,\"comparisonType\":3,\"isEnabled\":true,\"trimDateTimeParameterToDate\":false,\"leftExpression\":{\"expressionType\":0,\"columnPath\":\"Owner\"},\"isAggregative\":false,\"key\":\"63871ecc-40a1-4f00-a7e5-9c5099a76ea4\",\"dataValueType\":10,\"leftExpressionCaption\":\"Owner\",\"referenceSchemaName\":\"Contact\",\"rightExpressions\":[{\"expressionType\":2,\"parameter\":{\"dataValueType\":10,\"value\":\"410006e1-ca4e-4502-a9ec-e54d922d2c00\"}}]}},\"logicalOperation\":0,\"isEnabled\":true,\"filterType\":6,\"rootSchemaName\":\"Opportunity\"}}}}]",
"modelConfigDiff": "[{\"operation\":\"merge\",...}]"
}
}
] - Go to the component whose
-
Save the changes.
As a result, the received data will be filtered.
Creatio lets you use multiple filters. To do this, combine the attributes that implement the filters using the And operator.
Data filtering based on data from another data source
Creatio lets you filter data from one data source based on data from another data source. For example, you can filter data from the Expanded list, Attachment, Feed components based on data from another data source. To do this, bind the data sources using dependencies.
To bind the data sources:
-
Implement the data source. Instructions: Implement the data source.
-
Implement the data source of component. To do this, create an attribute that implements the component data source.
View the example that implements the data source of the
ContactCareerDetailDSexpanded list below.Example that implements the data source"modelConfig": {
"primaryDataSourceName": "PDS",
"dataSources": {
...,
"ContactCareerDetailDS": {
"config": {
"entitySchemaName": "ContactCareer",
"attributes": {
"CreatedOn": {"path": "CreatedOn"},
"Account": {"path": "Account"},
"Job": {"path": "Job"}
}
}
}
},
...,
} -
Set up dependencies. To do this, bind the root schema to the parent root schema.
View the example that binds the
ContactCareerroot schema to the parentContactroot schema below. TheContactCareerroot schema contains a Contact column that is bound to theIdcolumn of the parentContactroot schema.Example that sets up dependencies"modelConfig": {
"primaryDataSourceName": "PDS",
"dataSources": {
...,
},
"dependencies": {
"ContactCareerDetailDS": [
{"attributePath": "Contact", "relationPath": "PDS.Id"}
],
...,
}
}View the common properties of the
dependenciesproperty in the table below.Property
Property description
attributePath
The root schema column that connects the root schema to parent root schema. The
relationPathproperty contains the parent root schema column.relationPath
The parent root schema column that connects the parent root schema to the root schema. The
attributePathproperty contains the root schema column. -
Configure the Freedom UI page.
- Go to the component whose
nameproperty is set tosettings. - Add configuration objects as string.
View the example that configures the Freedom UI page below.
Example that configures the Freedom UI page[
{
"operation": "insert",
"name": "settings",
"values": {
"entitySchemaName": "UsrSection",
"settingsType": "RecordPage",
"localizableStrings": {},
"columnSets": [],
"operation": "insert",
"details": [],
"viewConfigDiff": "[{\"operation\":\"merge\",...}]",
"viewModelConfigDiff": "[{\"operation\":\"merge\",...}]",
"modelConfigDiff": "[{\"operation\":\"merge\",\"primaryDataSourceName\":\"PDS\",\"dataSources\":{...,\"ContactCareerDetailDS\":{\"config\":{\"entitySchemaName\":\"ContactCareer\",\"attributes\":{\"CreatedOn\":{\"path\":\"CreatedOn\"},\"Account\":{\"path\":\"Account\"},\"Job\":{\"path\":\"Job\"}}}}},\"dependencies\":{\"ContactCareerDetailDS\":[{\"attributePath\":\"Contact\",\"relationPath\":\"PDS.Id\"}],...,}}]"
}
}
] - Go to the component whose
-
Save the changes.
As a result, the ContactCareerDetailDS expanded list will display filtered data based on data from the Contact data source.
Sort data
-
Implement the data source. Instructions: Implement the data source.
-
Set up sorting. To do this, configure the sorting conditions in the
sortingConfigproperty.View the example that sets up the sorting below. The
Opportunityobject records are sorted byCreatedOncolumn in ascending order.Example that adds an attribute"viewModelConfig": {
"attributes": {
"Items": {
"modelConfig": {
"path": "PDS",
"sortingConfig": {
"default": [
{"columnName": "CreatedOn", "direction": "asc"}
]
}
}
}
},
...
}View the common properties of the
sortingConfigproperty in the table below.Property
Property description
columnName
Name of the column by which to sort data.
direction
Sorting order. Available values:
asc(ascending),desc(descending). -
Configure the Freedom UI page.
- Go to the component whose
nameproperty is set tosettings. - Add configuration objects as string.
View the example that configures the Freedom UI page below.
Example that configures the Freedom UI page[
{
"operation": "insert",
"name": "settings",
"values": {
"entitySchemaName": "UsrSection",
"settingsType": "RecordPage",
"localizableStrings": {},
"columnSets": [],
"operation": "insert",
"details": [],
"viewConfigDiff": "[{\"operation\":\"merge\",...}]",
"viewModelConfigDiff": "[{\"operation\":\"merge\",\"attributes\":{\"Items\":{\"modelConfig\":{\"path\":\"PDS\",\"sortingConfig\":{\"default\":[{\"columnName\":\"CreatedOn\",\"direction\":\"asc\"}]}}}},...}]",
"modelConfigDiff": "[{\"operation\":\"merge\",...,}}]"
}
}
] - Go to the component whose
-
Save the changes.
As a result, the received data will be sorted.