Exported JSON Details
In this section the structure of the exported report JSON is described.
The JSON file structure is similar to the following example:
{
"besWebReports": [
{
"name":"computersFiltered",
"type":"TemplateReport",
"sourcePage":"ExploreComputers",
"urlParameters":"#filterManager=%7b%22filterName%22:%22%22,%22filterID%22:%22%22,%22filterDescription%22:%22%7b%5c%22matchType%5c%22:%5c%22all%5c%22,%5c%22conditionList%5c%22:%5b%7b%5c%22selectedContentTypeName%5c%22:%5c%22Computer%5c%22,%5c%22selectorList%5c%22:%5b%7b%5c%22selectedOperatorName%5c%22:%5c%22contains%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%22native%5c%22%7d,%7b%5c%22selectedOperatorName%5c%22:%5c%22does+not+contain%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%22prova%5c%22%7d%5d,%5c%22selectedProperty%5c%22:%7b%5c%22analysis%5c%22:null,%5c%22type%5c%22:%5c%22reserved%5c%22,%5c%22id%5c%22:%5c%22R-Agent+Type%5c%22,%5c%22name%5c%22:%5c%22Agent+Type%5c%22,%5c%22displayName%5c%22:%5c%22Agent+Type%5c%22%7d%7d,%7b%5c%22selectedContentTypeName%5c%22:%5c%22Fixlet%5c%22,%5c%22selectorList%5c%22:%5b%7b%5c%22selectedOperatorName%5c%22:%5c%22is+after%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%2212\u002f8\u002f2024%5c%22%7d%5d,%5c%22selectedProperty%5c%22:%7b%5c%22name%5c%22:%5c%22Source+Release+Date%5c%22,%5c%22id%5c%22:%5c%22Source+Release+Date%5c%22%7d%7d,%7b%5c%22selectedContentTypeName%5c%22:%5c%22Action%5c%22,%5c%22selectorList%5c%22:%5b%7b%5c%22selectedOperatorName%5c%22:%5c%22contains%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%22a%5c%22%7d%5d,%5c%22selectedProperty%5c%22:%7b%5c%22name%5c%22:%5c%22Name%5c%22,%5c%22id%5c%22:%5c%22Name%5c%22%7d%7d,%7b%5c%22selectedContentTypeName%5c%22:%5c%22Saved+Filter%5c%22,%5c%22selectorList%5c%22:%5b%7b%5c%22selectedOperatorName%5c%22:%5c%22saved+filter%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%221%5c%22%7d%5d,%5c%22selectedProperty%5c%22:%7b%5c%22id%5c%22:%5c%22%5c%22,%5c%22name%5c%22:%5c%22%5c%22%7d%7d,%7b%5c%22selectedContentTypeName%5c%22:%5c%22Site%5c%22,%5c%22selectorList%5c%22:%5b%7b%5c%22selectedOperatorName%5c%22:%5c%22is%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%22%7b%5c%5c%5c%22BESSiteID%5c%5c%5c%22:%7b%5c%5c%5c%22DatabaseSiteID%5c%5c%5c%22:3107%7d%7d%5c%22%7d%5d,%5c%22selectedProperty%5c%22:%7b%5c%22id%5c%22:%5c%22BESSiteID%5c%22,%5c%22name%5c%22:%5c%22BESSiteID%5c%22%7d%7d%5d%7d%22%7d&wr_computerTable=%22sort%3dR-Computer%20Name%26dir%3dasc%26startIndex%3d0%26results%3d50%26c%3dR-Computer%20Name%26c%3dC%2F_BESClient_Log_Timestamps_Detail%2FR0ueiv6uR5YU3C3zm3v9FHAVKnw%26c%3dR-IP%20Address%26c%3dR-OS%26c%3dR-CPU%26c%3dR-Last%20Report%20Time%22",
"urlParametersDetail": {
"filterDescription":"{\"matchType\":\"all\",\"conditionList\":[{\"selectedContentTypeName\":\"Computer\",\"selectorList\":[{\"selectedOperatorName\":\"contains\",\"selectedOperatorValue\":\"native\"},{\"selectedOperatorName\":\"does not contain\",\"selectedOperatorValue\":\"prova\"}],\"selectedProperty\":{\"analysis\":null,\"type\":\"reserved\",\"id\":\"R-Agent Type\",\"name\":\"Agent Type\",\"displayName\":\"Agent Type\"}},{\"selectedContentTypeName\":\"Fixlet\",\"selectorList\":[{\"selectedOperatorName\":\"is after\",\"selectedOperatorValue\":\"12\u002f8\u002f2024\"}],\"selectedProperty\":{\"name\":\"Source Release Date\",\"id\":\"Source Release Date\"}},{\"selectedContentTypeName\":\"Action\",\"selectorList\":[{\"selectedOperatorName\":\"contains\",\"selectedOperatorValue\":\"a\"}],\"selectedProperty\":{\"name\":\"Name\",\"id\":\"Name\"}},{\"selectedContentTypeName\":\"Saved Filter\",\"selectorList\":[{\"selectedOperatorName\":\"saved filter\",\"selectedOperatorValue\":\"1\"}],\"selectedProperty\":{\"id\":\"\",\"name\":\"\"}},{\"selectedContentTypeName\":\"Site\",\"selectorList\":[{\"selectedOperatorName\":\"is\",\"selectedOperatorValue\":\"{\\\"BESSiteID\\\":{\\\"DatabaseSiteID\\\":3107}}\"}],\"selectedProperty\":{\"id\":\"BESSiteID\",\"name\":\"BESSiteID\"}}]}",
"wr_computerTable":"\"sort=R-Computer Name&dir=asc&startIndex=0&results=50&c=R-Computer Name&c=C\u002f_BESClient_Log_Timestamps_Detail\u002fR0ueiv6uR5YU3C3zm3v9FHAVKnw&c=R-IP Address&c=R-OS&c=R-CPU&c=R-Last Report Time\""
}
} ,
{
"name":"historical",
"type":"TemplateReport",
"sourcePage":"ExploreContent",
"urlParameters":"#chartSection=%5b%7b%22configuration%22:%7b%22title%22:%22historical%22,%22chartType%22:2,%22dataType%22:4,%22showGraph%22:true,%22showTable%22:false,%22startDate%22:%222024-12-11%22,%22endDate%22:%222024-12-11%22,%22startTime%22:%220:00%22,%22endTime%22:%220:00%22,%22groupingInterval%22:%22day%22%7d,%22data%22:%7b%22numToShow%22:10,%22series%22:%5b%7b%22groups%22:%5b%5d%7d%5d%7d%7d%5d&collapseState=%7b%22Filter%22:true,%22Charts%22:true,%22Table%22:true%7d&filterManager=%7b%22filterName%22:%22%22,%22filterID%22:%22%22,%22filterDescription%22:%22%7b%5c%22matchType%5c%22:%5c%22all%5c%22,%5c%22conditionList%5c%22:%5b%7b%5c%22selectedContentTypeName%5c%22:%5c%22Fixlet%5c%22,%5c%22selectorList%5c%22:%5b%7b%5c%22selectedOperatorName%5c%22:%5c%22is%5c%22,%5c%22selectedOperatorValue%5c%22:%5c%22Visible%5c%22%7d%5d,%5c%22selectedProperty%5c%22:%7b%5c%22name%5c%22:%5c%22Visibility%5c%22,%5c%22id%5c%22:%5c%22Visibility%5c%22%7d%7d%5d%7d%22%7d",
"urlParametersDetail": {
"collapseState":"{\"Filter\":true,\"Charts\":true,\"Table\":true}",
"filterDescription":"{\"matchType\":\"all\",\"conditionList\":[{\"selectedContentTypeName\":\"Fixlet\",\"selectorList\":[{\"selectedOperatorName\":\"is\",\"selectedOperatorValue\":\"Visible\"}],\"selectedProperty\":{\"name\":\"Visibility\",\"id\":\"Visibility\"}}]}",
"chartSection":"[{\"configuration\":{\"title\":\"historical\",\"chartType\":2,\"dataType\":4,\"showGraph\":true,\"showTable\":false,\"startDate\":\"2024-12-11\",\"endDate\":\"2024-12-11\",\"startTime\":\"0:00\",\"endTime\":\"0:00\",\"groupingInterval\":\"day\"},\"data\":{\"numToShow\":10,\"series\":[{\"groups\":[]}]}}]"
}
} ,
{
"name":"UA.webreport",
"type":"TemplateReport",
"sourcePage":"UnmanagedAssetsReport",
"urlParameters":"AssetColumns=Keywords&AssetColumns=Device Type&ColumnSortOrder=-0-3&IsTranslated=1&SortColumn=3-1&SortColumn=0-1#",
"urlParametersDetail": {
"filterDescription":"",
"AssetColumns": [
"Keywords",
"Device Type"
],
"ColumnSortOrder": [
"-0-3"
],
"IsTranslated": [
"1"
],
"SortColumn": [
"3-1",
"0-1"
]
}
} ,
{
"name":"test.webreport",
"type":"CustomReport",
"data":"<div>Computer Names<\u002fdiv>\n <?Relevance names of bes computers?>",
"sourcePage":"CustomReport",
"urlParameters":"#filterManager=%7b%22filterName%22:%22%22,%22filterID%22:%22%22%7d",
"urlParametersDetail": {
"filterDescription":""
}
}
]
}
Below follows a description of the general structure of the JSON file:
- besWebReports (Array)
- A list of web report objects. Each object in this array represents a web report with its associated properties.
Each object in the besWebReports array has the following properties:
name(String)- The name of the web report.
description(String)- The description of the web report.
type(String)- The type of the web report. The possible values are: CustomReport, TemplateReport and ExternalReport.
data(String)- The data part of the web report. For CustomReport it is the code of the report itself, for ExternalReport it is the External URL, while for TemplateReport the key is not present.
source(String)- The source of the report, if any.
sourcePage(String)- The source page associated with the report. The value is the one reported in
the query part of the report URL, associated with the "page" key (for
example, if the URL is something
like
, then, the value associated with the "sourcePage" key will be ExploreOperators. Note that for the Custom Report this value will always be CustomReport).https://localhost:8083/webreports?page=ExploreOperators&IsTranslated=1 urlParameters(String)- A URL-encoded string containing all the parameters for customizing the web report. This string contains the unshortened version of the parameters reported in the report URL. The URLParameters string is the same already used in WebReports when defining a report using an XML file with *.webreport/*.beswrpt extension. Note that this string is contained in the BESReporting database (ReportXML column in the WEBREPORTS table) and also printed out when exporting the report XML using the method described in Creating a Portable Report for Propagation.
urlParametersDetail(Object)- A more detailed breakdown of the urlParameters, to simplify the parsing of the JSON file. The possible keys and associated values are detailed in the next section.
labels(Array)- The labels associated with the report, if any.
urlParametersDetail
This object in the extracted JSON file is a detailed breakdown of the
urlParameters string. It contains the following keys (depending
on the report some of the keys might be present):
collapseState(String)- A JSON-encoded string specifying the visibility state of various UI components of the report.
For example:
{"Filter":false,"Charts":false,"Table":false}
This collapseState describes a report in which all the sections have been collapsed, like in the following report:
filterName(String)- For saved filters, it is the name of the filter.
filterDescription(String)- A JSON-encoded string that describes the filters applied to the report in detail. More details are provided in the next section.
chartSection(String)- A JSON-encoded string to model the charts associated with the report. More details are provided in the next section.
wr_contentTable(String)- Content table options, including sorting and column preferences. It is only defined for Content Template Reports, i.e. the ones having ExploreContent in the "sourcePage" key.
wr_computerTable(String)- Computers table options, including sorting and column preferences. It is only defined for Computer Template Reports, i.e. the ones having ExploreComputers in the "sourcePage" key.
wr_actionTable(String)- Actions table options, including sorting and column preferences. It is only defined for Action Template Reports, i.e. the ones having ExploreActions in the "sourcePage" key.
The structure of wr_contentTable, wr_computerTable and wr_actionTable is the same, i.e. a set of & separated key-value pairs. Example:
"wr_contentTable":"sort=Type&sort=Name&dir=desc&dir=asc&startIndex=0&results=50&c=Progress&c=Activation Time (Analysis)&c=Activated By (Analysis)&c=Name&c=Type&c=Sitename"
This string specifies that the rows of the Content table must be sorted according to the Type column in descending order and then to the Name column in ascending order. "startIndex" and "results" specify how to paginate the results. Moreover, all the other "c" keys specify the columns of the table.
filterDescription
This JSON-encoded string describes in detail the filters applied to the report. Here
is an example of a possible value associated to the
filterDescription key:
{
"matchType": "all",
"conditionList": [
{
"selectedContentTypeName": "Computer",
"selectorList": [
{
"selectedOperatorName": "contains",
"selectedOperatorValue": "native"
},
{
"selectedOperatorName": "does not contain",
"selectedOperatorValue": "proxy"
}
],
"selectedProperty": {
"analysis": null,
"type": "reserved",
"id": "R-Agent Type",
"name": "Agent Type",
"displayName": "Agent Type"
}
},
{
"selectedContentTypeName": "Fixlet",
"selectorList": [
{
"selectedOperatorName": "is after",
"selectedOperatorValue": "12/8/2024"
}
],
"selectedProperty": {
"name": "Source Release Date",
"id": "Source Release Date"
}
},
{
"selectedContentTypeName": "Action",
"selectorList": [
{
"selectedOperatorName": "contains",
"selectedOperatorValue": "a"
}
],
"selectedProperty": {
"name": "Name",
"id": "Name"
}
},
{
"selectedContentTypeName": "Saved Filter",
"selectorList": [
{
"selectedOperatorName": "saved filter",
"selectedOperatorValue": "1"
}
],
"selectedProperty": {
"id": "",
"name": ""
}
},
{
"selectedContentTypeName": "Site",
"selectorList": [
{
"selectedOperatorName": "is",
"selectedOperatorValue": {
"BESSiteID": {
"DatabaseSiteID": 3107
}
}
}
],
"selectedProperty": {
"id": "BESSiteID",
"name": "BESSiteID"
}
}
]
}
This value would be generated from a filter defined graphically in this way:

The conditionList key of this JSON is an array, where each element
is a JSON object that models a filter. For a specific filter, it is possible to
define multiple clauses that are reported in the selectorList key
as an array. The selectedProperty key contains the details about
the property to which the specified filter applies.
chartSection
This JSON-encoded string models the charts associated with the report. The string represents a JSON array, where each element is a JSON Object describing a single chart of the report. There are two kinds of chart in WebReports: historical charts and properties charts. Depending on the type, the single object composing the chartSection array can have different keys.
Here is an example for a properties chart:
{
"configuration": {
"title": "Adobe Acrobat Version",
"chartType": 0,
"dataType": 3,
"showGraph": true,
"showTable": true,
"properties": [
{
"id": "O-3093-41-3",
"name": "Adobe Acrobat Version",
"displayName": "Adobe Acrobat Version (Adobe Product Detection (Windows))"
}
]
},
"data": {
"numToShow": 10,
"series": [
{
"groups": []
}
]
}
}
Where:
title- Is the title of the chart
chartType- Is the type of the chart, with 0 = PIE chart, 1 = BAR chart and 2 = LINE chart
dataType- Is the data type (category) of the chart, with 3 = PROPERTIES chart and 4 = HISTORICAL chart
showGraph- Refers to the "Show chart" check box of the chart creation wizard
showTable- Refers to the "Show table" check box of the chart creation wizard
properties- Describes the properties selected to create the chart
groups- Lists all the groups created in the chart, since there is the possibility to group multiple results together (specifying the name and the entries that have been grouped).
Here is an example for an historical chart:
{
"configuration": {
"title": "historical",
"chartType": 2,
"dataType": 4,
"showGraph": true,
"showTable": false,
"startDate": "2024-12-11",
"endDate": "2024-12-11",
"startTime": "0:00",
"endTime": "0:00",
"groupingInterval": "day"
},
"data": {
"numToShow": 10,
"series": [
{
"groups": []
}
]
}
}
where, instead of the properties key there are
startDate, endDate,
startTime, endTime and
groupingInterval, all referring to the corresponding fields of
the chart creation wizard.
Additional keys
For some categories of Web Reports there might be other additional keys, detailed below:
ColumnSortOrder(String)- It is a string composed by integers (representing the column indexes) separated by the - sign. It specifies in which order to consider the columns of the table to sort the rows. It is only used for Operators Template Reports and Unmanaged Assets Template Reports.
SortColumn(Array)- This array contains a number of elements equal to the number of columns
specified in the
ColumnSortOrderkey and each element specifies how to sort a particular column. For example, "1-1" specifies that the column with index 1 must be sorted in ascending order (1 = ASCENDING and 0 = DESCENDING). It is only used for Operators Template Reports and Unmanaged Assets Template Reports.
Example: A possible value for the ColumnSortOrder key could be:
-0-1-3-5
meaning that the rows must be sorted according to the columns with index 0, 1, 3 and 5 (in this order).
A possible value for the SortColumn key in this situation could
be:
[ "5-1", "3-1", "1-0", "0-1" ]
meaning that the columns with index 0, 3 and 5 must be sorted in ascending order, while the column with index 1 must be sorted in descending order.
AssetColumns(Array)- When creating an Unmanaged Assets Template Reports, you can explicitly specify which Unmanaged Assets properties to visualize as columns in the resulting table. This JSON Array lists the values that you selected.