| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/report/run |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class ReportRunRequest : ReportDefinition()
{
}
open class ReportDefinition
{
open var DatasetCode:String? = null
open var Dimensions:ArrayList<String> = ArrayList<String>()
open var Measures:ArrayList<ReportMeasure> = ArrayList<ReportMeasure>()
open var Joins:ArrayList<String> = ArrayList<String>()
open var Filters:String? = null
open var Sorts:ArrayList<ReportSort> = ArrayList<ReportSort>()
open var Limit:Int? = null
}
open class ReportMeasure
{
open var FieldCode:String? = null
open var Agg:String? = null
}
open class ReportSort
{
open var FieldCode:String? = null
open var Dir:String? = null
}
open class ReportRunResponse
{
open var ResponseStatus:ResponseStatus? = null
open var Result:ReportRunResult? = null
}
open class ReportRunResult
{
open var Columns:ArrayList<ReportColumnMeta> = ArrayList<ReportColumnMeta>()
open var Rows:ArrayList<HashMap<String,Object>> = ArrayList<HashMap<String,Object>>()
open var RowCount:Int? = null
open var Truncated:Boolean? = null
open var Notes:ArrayList<String> = ArrayList<String>()
}
open class ReportColumnMeta
{
open var Code:String? = null
open var Name:String? = null
open var DataType:String? = null
open var FieldKind:String? = null
open var Agg:String? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/report/run HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
DatasetCode: String,
Dimensions:
[
String
],
Measures:
[
{
FieldCode: String,
Agg: String
}
],
Joins:
[
String
],
Filters: String,
Sorts:
[
{
FieldCode: String,
Dir: String
}
],
Limit: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
Result:
{
Columns:
[
{
Code: String,
Name: String,
DataType: String,
FieldKind: String,
Agg: String
}
],
Rows:
[
{
String: {}
}
],
RowCount: 0,
Truncated: False,
Notes:
[
String
]
}
}