Report on Values
Reports can be created within Actions by using the Report on Values Operation. This can be set to either Object or Summary Scope.
There are two ways to incorporate this:
-
The optimal method is to use a Rule and Action paired together in an Action Map. This will cleanly separate the two processes of identifying and reporting.
-
Use an Action that identifies the objects that will be reported on.
Reports are User-defined and display a specified set of Values that are configured within an Action. This extra layer of data manipulation allows you to shape reports to show exactly what information you need. This can include some basic data manipulation on the Values reported on. This includes Aggregate Functions or Built-in Functions; allowing it to include information that isn't necessarily in the base data.
Object Scope Example
The image below shows a Rule identifying FIRE_STATION objects that are contained within BUILDING objects. If this occurs, then any BUILDINGs with the Type "FIRE STATION" will pass the Rule.

The non-conformances however, can be passed directly to an Action by using an Action Map. The example below is the Action that will take the ID, SITE_NAME, and geometry of those FIRE_STATION non-conformances and put them into a report using the Report on Values Operation.

After running the Rule and Action within an Action Map, the Task Results will be available in the Session. The Task Results will list the non-conformances row by row as seen in the example below.

The report can also be downloaded as a JSON file listing each object in order, as the example JSON below shows.
[
{
"className": "FIRE_STATION",
"gothicId": "2",
"nonConformanceCount": 1,
"attributes": {
"geometry": {
"x0": "2690304.257034591",
"x1": "2690304.257034591",
"y0": "236467.76594970294",
"y1": "236467.76594970294"
}
},
"nonconformances": [
{
"description": " ____for all BUILDING objects for which BUILDING.geometry contains FIRE_STATION.geometry, BUILDING.TYPE equals \"FIRE STATION\"____ ",
"path": "/rules/SP/Example Report Rule",
"ruleHotspot": {}
}
],
"reports": [
{
"label": "Buildings",
"path": "/actions/SP/Example Reporting Action",
"values": [
{
"dataType": "integer64",
"description": "FIRE_STATION.ID",
"value": "35"
},
{
"dataType": "geometry",
"description": "FIRE_STATION.geometry",
"value": "POINT(2690304.25703 236467.76595)"
}
]
}
],
"taskLabel": "f7686fd6-8424-46c0-b769-7a926192d47a"
},
...
Summary Scope Example

Summary information can be found in the Summary of the Task Results.

This can be downloaded as a JSON by clicking Download Summary.
{
"kind": "ApplyActionTask",
"duration": 1803,
"first": "0",
"last": "0",
"actionreports": [
{
"label": "Fire Station",
"path": "/actions/docs/Example Reporting Action - Summary",
"values": [
{
"dataType": "integer64",
"description": "FIRE_STATION.ID",
"value": "59"
},
{
"dataType": "string",
"description": "FIRE_STATION.LOCATION",
"value": "S 20TH ST & FEDERAL ST"
}
]
}
],
"actions": [
{
"count": 0,
"errors": 0,
"path": "/actions/docs/Example Reporting Action - Summary",
"processed": 6,
"total": 0
}
],
"classes": [
{
"count": 0,
"errors": 0,
"name": "FIRE_STATION",
"processed": 6,
"total": 6
}
],
"count": 0,
"errors": 0,
"processed": 6,
"reportCount": 0,
"total": 6,
"srid": "EPSG=2272",
"started": 1745310905774,
"status": "FINISHED",
"taskIdentifier": "e1e1f35c-cf9d-4262-b7c9-2166c21838cf"
}