Filtered Entity Retrieval
Description
This example shows how to retrieve entities filtering by a parameter and sorting by name.
Code
/**
* Main function to retrieve and display entities
* @param {Object} entityData - Context entity data
* @param {Object} filters - Filters passed from the widget
*/
var builder = $api.entitiesSearchBuilder().limit(100).flattened();
// 1. Filter by parameter (assuming it comes in filters.generic or a specific field)
// Here we assume filters.generic contains a string to filter by name
if (filters && filters.generic) {
builder.filter({
like: {
'provision.asset.name': filters.generic // Adjust field as needed (e.g., provision.device.name)
}
});
}
// 2. Sort by name
builder.sort([
{
column: 'provision.asset.name',
direction: 'asc'
}
]);
// 3. Execute query
var response = await builder.build().execute();
// 4. Transform results
var results = [];
if (response && response.data && response.data.entities) {
response.data.entities.forEach(function(entity) {
// Extract identifier (using bracket notation for flattened keys)
var id = entity['provision.administration.identifier'] ? entity['provision.administration.identifier']._value._current.value : "Unknown";
// Extract name (handle if it doesn't exist)
var name = "N/A";
if (entity['provision.asset.name']) {
name = entity['provision.asset.name']._value._current.value;
}
results.push({
identifier: id,
name: name
});
});
}
return results;