| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/report/run |
|---|
import 'package:servicestack/servicestack.dart';
class ReportMeasure implements IConvertible
{
String? FieldCode;
String? Agg;
ReportMeasure({this.FieldCode,this.Agg});
ReportMeasure.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
FieldCode = json['FieldCode'];
Agg = json['Agg'];
return this;
}
Map<String, dynamic> toJson() => {
'FieldCode': FieldCode,
'Agg': Agg
};
getTypeName() => "ReportMeasure";
TypeContext? context = _ctx;
}
class ReportSort implements IConvertible
{
String? FieldCode;
String? Dir;
ReportSort({this.FieldCode,this.Dir});
ReportSort.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
FieldCode = json['FieldCode'];
Dir = json['Dir'];
return this;
}
Map<String, dynamic> toJson() => {
'FieldCode': FieldCode,
'Dir': Dir
};
getTypeName() => "ReportSort";
TypeContext? context = _ctx;
}
class ReportDefinition implements IConvertible
{
String? DatasetCode;
List<String>? Dimensions = [];
List<ReportMeasure>? Measures = [];
List<String>? Joins = [];
String? Filters;
List<ReportSort>? Sorts = [];
int? Limit;
ReportDefinition({this.DatasetCode,this.Dimensions,this.Measures,this.Joins,this.Filters,this.Sorts,this.Limit});
ReportDefinition.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DatasetCode = json['DatasetCode'];
Dimensions = JsonConverters.fromJson(json['Dimensions'],'List<String>',context!);
Measures = JsonConverters.fromJson(json['Measures'],'List<ReportMeasure>',context!);
Joins = JsonConverters.fromJson(json['Joins'],'List<String>',context!);
Filters = json['Filters'];
Sorts = JsonConverters.fromJson(json['Sorts'],'List<ReportSort>',context!);
Limit = json['Limit'];
return this;
}
Map<String, dynamic> toJson() => {
'DatasetCode': DatasetCode,
'Dimensions': JsonConverters.toJson(Dimensions,'List<String>',context!),
'Measures': JsonConverters.toJson(Measures,'List<ReportMeasure>',context!),
'Joins': JsonConverters.toJson(Joins,'List<String>',context!),
'Filters': Filters,
'Sorts': JsonConverters.toJson(Sorts,'List<ReportSort>',context!),
'Limit': Limit
};
getTypeName() => "ReportDefinition";
TypeContext? context = _ctx;
}
class ReportColumnMeta implements IConvertible
{
String? Code;
String? Name;
String? DataType;
String? FieldKind;
String? Agg;
ReportColumnMeta({this.Code,this.Name,this.DataType,this.FieldKind,this.Agg});
ReportColumnMeta.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Code = json['Code'];
Name = json['Name'];
DataType = json['DataType'];
FieldKind = json['FieldKind'];
Agg = json['Agg'];
return this;
}
Map<String, dynamic> toJson() => {
'Code': Code,
'Name': Name,
'DataType': DataType,
'FieldKind': FieldKind,
'Agg': Agg
};
getTypeName() => "ReportColumnMeta";
TypeContext? context = _ctx;
}
class ReportRunResult implements IConvertible
{
List<ReportColumnMeta>? Columns = [];
List<Map<String,dynamic>>? Rows = [];
int? RowCount;
bool? Truncated;
List<String>? Notes = [];
ReportRunResult({this.Columns,this.Rows,this.RowCount,this.Truncated,this.Notes});
ReportRunResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Columns = JsonConverters.fromJson(json['Columns'],'List<ReportColumnMeta>',context!);
Rows = JsonConverters.fromJson(json['Rows'],'List<Map<String,dynamic>>',context!);
RowCount = json['RowCount'];
Truncated = json['Truncated'];
Notes = JsonConverters.fromJson(json['Notes'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Columns': JsonConverters.toJson(Columns,'List<ReportColumnMeta>',context!),
'Rows': JsonConverters.toJson(Rows,'List<Map<String,dynamic>>',context!),
'RowCount': RowCount,
'Truncated': Truncated,
'Notes': JsonConverters.toJson(Notes,'List<String>',context!)
};
getTypeName() => "ReportRunResult";
TypeContext? context = _ctx;
}
class ReportRunResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
ReportRunResult? Result;
ReportRunResponse({this.ResponseStatus,this.Result});
ReportRunResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
Result = JsonConverters.fromJson(json['Result'],'ReportRunResult',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'Result': JsonConverters.toJson(Result,'ReportRunResult',context!)
};
getTypeName() => "ReportRunResponse";
TypeContext? context = _ctx;
}
class ReportRunRequest extends ReportDefinition implements IConvertible
{
ReportRunRequest();
ReportRunRequest.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "ReportRunRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'ReportMeasure': TypeInfo(TypeOf.Class, create:() => ReportMeasure()),
'ReportSort': TypeInfo(TypeOf.Class, create:() => ReportSort()),
'ReportDefinition': TypeInfo(TypeOf.Class, create:() => ReportDefinition()),
'List<ReportMeasure>': TypeInfo(TypeOf.Class, create:() => <ReportMeasure>[]),
'List<ReportSort>': TypeInfo(TypeOf.Class, create:() => <ReportSort>[]),
'ReportColumnMeta': TypeInfo(TypeOf.Class, create:() => ReportColumnMeta()),
'ReportRunResult': TypeInfo(TypeOf.Class, create:() => ReportRunResult()),
'List<ReportColumnMeta>': TypeInfo(TypeOf.Class, create:() => <ReportColumnMeta>[]),
'List<Map<String,dynamic>>': TypeInfo(TypeOf.Class, create:() => <Map<String,dynamic>>[]),
'Map<String,dynamic>': TypeInfo(TypeOf.Class, create:() => Map<String,dynamic>()),
'ReportRunResponse': TypeInfo(TypeOf.Class, create:() => ReportRunResponse()),
'ReportRunRequest': TypeInfo(TypeOf.Class, create:() => ReportRunRequest()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
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: application/xml
Content-Type: application/xml
Content-Length: length
<ReportRunRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<DatasetCode>String</DatasetCode>
<Dimensions xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:string>String</d2p1:string>
</Dimensions>
<Filters>String</Filters>
<Joins xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:string>String</d2p1:string>
</Joins>
<Limit>0</Limit>
<Measures>
<ReportMeasure>
<Agg>String</Agg>
<FieldCode>String</FieldCode>
</ReportMeasure>
</Measures>
<Sorts>
<ReportSort>
<Dir>String</Dir>
<FieldCode>String</FieldCode>
</ReportSort>
</Sorts>
</ReportRunRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<ReportRunResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
<Result>
<Columns>
<ReportColumnMeta>
<Agg>String</Agg>
<Code>String</Code>
<DataType>String</DataType>
<FieldKind>String</FieldKind>
<Name>String</Name>
</ReportColumnMeta>
</Columns>
<Notes xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>String</d3p1:string>
</Notes>
<RowCount>0</RowCount>
<Rows xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:ArrayOfKeyValueOfstringanyType>
<d3p1:KeyValueOfstringanyType>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value />
</d3p1:KeyValueOfstringanyType>
</d3p1:ArrayOfKeyValueOfstringanyType>
</Rows>
<Truncated>false</Truncated>
</Result>
</ReportRunResponse>