Integration Guide — Dynamic Charts
API Areas: report service (/gateway/dynamic-chart-reports) — persistence, configuration, and export; main API (/gateway/dynamic-chart-report) — paginated catalog and menu.
Authentication: Bearer Token (JWT) or API Key header X-API-KEY.
To successfully follow this guide using JWT authentication, use the following endpoint:
POST /gateway/auth/combined-login
Introduction
This guide describes how to integrate with dynamic charts: saved configurations that associate a dynamic report (tabular data source and parameters @p_…) with visual definitions (series type, diagram, palette, axes, and legend).
There is no chart-specific SQL. The data source is always the dynamic report referenced by selectedDynamicReportGuid. At runtime, data is obtained with GET /gateway/dynamic-reports/{guid}/data?jsonParameters=…, as explained in the Dynamic Reports Guide.
This document is organized for step-by-step reading and tool reference: prerequisites and fields ↔ axes mapping, permissions, flows (creation, update, data retrieval), underlying report parameters, jsonParameters, visual enumerations, endpoint and DTO references, examples, and errors. See Document Map.
When to use
- Create or modify a chart linked to an existing dynamic report.
- List charts (full list in the report service, paginated catalog or menu entries in the main API).
- Get configuration (
…/config) to build filters and know which report and fields to use on the axes. - Export the chart’s internal JSON (backup or diagnostics).
Document Map
- Prerequisites — valid dynamic report and columns aligned with the chart; section Prerequisites.
- Fields and axes —
argument,value,serieMember; section Mapping to report data. - Permissions —
permissionType, groups, user; section Permissions. - Implementation flows — creation, update, data execution; section Implementation flows.
- Underlying report parameters — reuse of the dynamic report model; section Underlying report parameters.
jsonParameters— query string format; section Query parameterjsonParameters.- Visual types — series, diagrams, and numeric palettes; section Visual enumerations.
- Gateway prefixes — Two prefixes.
- Reference — Available endpoints, DTO structure, JSON examples, error handling, related resources.
Prerequisites: dynamic report
Before creating a dynamic chart:
- Have a dynamic report created and saved (known GUID). The flow includes SQL validation, configuration of
fieldsandparameters— see Dynamic Reports Guide. - Confirm that the columns returned by the SQL (property
namein each report field) cover the names you will use inargument,value, and, if applicable,serieMemberin the chart definitions. - Ensure permissions to read data from that report in the authenticated context (
GET …/dynamic-reports/{guid}/configandGET …/dynamic-reports/{guid}/data).
If selectedDynamicReportGuid points to a non-existent or inaccessible report, write operations or GET …/config may fail on the server when resolving the underlying report.
Mapping to report data
Property in settingsEntity / DynamicChartConfig | Role | Correspondence in the report |
|---|---|---|
argument | Category axis (e.g., X axis) | name of a column in the report result (e.g., SQL alias). |
value | Magnitude represented (e.g., Y axis) | name of a typically numeric column. |
serieMember | Grouping into multiple series (optional) | name of a column that distinguishes series (text or categorization). |
Names must match exactly the identifiers of the columns configured in the dynamic report (do not confuse with caption, which is for presentation only).
If you change the SQL or the fields of the dynamic report, revalidate that argument, value, and serieMember still exist in the result; otherwise, the chart client may receive incomplete or empty data without explicit error at the chart layer.
Permissions
The model of permissionType, permissionGroupsId, and userId follows the same pattern as dynamic reports (sharing concepts with GC):
permissionType value | Usual meaning | Notes |
|---|---|---|
0 | All users | No restriction by user or group in the “chart” model. |
1 | Current user | Association to the authenticated user; userId may be managed by the server. |
2 | Groups | Fill permissionGroupsId with the IDs of authorized groups. |
In PUT, the service may preserve the userId already stored on the server even if the client sends a different value — check behavior in your version and test with GET …/dynamic-chart-reports/{guid} after updating.
Implementation flows
The recommended behavior follows two paths: creating a new chart and updating an existing one. In both, the referenced dynamic report must remain valid.
Runtime execution (getting data for the chart)
To render the chart on the client, the data flow is a layer on top of the dynamic report:
| Step | Dynamic report (tabular) | Dynamic chart (visualization) |
|---|---|---|
| Identify resource | Report GUID | Chart GUID |
| Configuration for screen (filters + metadata) | GET /gateway/dynamic-reports/{guid}/config | GET /gateway/dynamic-chart-reports/{chartGuid}/config (includes dynamicReportGuid and parameters of the underlying report) |
| Get rows | GET /gateway/dynamic-reports/{guid}/data?jsonParameters=… | Same request, using the dynamicReportGuid returned in the chart’s config and the same jsonParameters |
| Mapping | Columns → table | Each row → argument, value, serieMember as per chart config |
In other words: the chart does not replace the report’s data endpoint; it only indicates which report to use and how to map columns to the charting library.
Creating a new chart
Flow diagram for first save:
- Choose
selectedDynamicReportGuidand definesettingsEntity(argument,value,serieMember, series type, diagram, palette, title, legends). - Optional: validate columns with
GET /gateway/dynamic-reports/{selectedDynamicReportGuid}/configon the report before saving the chart. POST /gateway/dynamic-chart-reportswith empty (or omitted)guidas per client.- On HTTP 200, the body contains the GUID of the created chart (text).
- Optional:
GET …/{guid}/configto getparametersalready prepared for the execution form.
Updating an existing chart
To modify a saved chart, you need the chart’s guid and the current configuration or a coherent delta:
GET /gateway/dynamic-chart-reports/{guid}— retrieves the persistedDynamicChartDataDTO(recommended before a PUT to avoid overwriting fields by omission).- Adjust name, description,
selectedDynamicReportGuid, permissions, orsettingsEntity. PUT /gateway/dynamic-chart-reportswith the correctguidin the body.- Expected response: 204 No Content.
If you only have a list from the main API catalog:
GET /gateway/dynamic-chart-report returns a paginated catalog (integration like a selection list in the main gateway). GET /gateway/dynamic-chart-reports (report service) returns all dynamic charts in a single array — useful for administrative tools; may be heavier in large installations.
When updating, the backend may keep the userId already stored for the chart; do not assume the value sent in the body always replaces the persisted one without validating with a subsequent GET.
Underlying report parameters
GET /gateway/dynamic-chart-reports/{guid}/config returns parameters as a collection of ReportParameterDetail: the same type of information the client uses to build filters before executing the dynamic report.
- The keys in
jsonParameterswhen callingGET /gateway/dynamic-reports/{dynamicReportGuid}/datamust align with theparamHolder/ markers@p_…of that report (see Parameters: configuration and visualization logic in the dynamic reports guide). - The control type on screen (
ViewType, lists, Lookup, etc.) follows the same documented rules for dynamic reports; the chart only routes the user to fill the source report filters.
There is no dedicated “verify” operation for charts: changes to the SQL or report parameters are handled in the dynamic report flow (verify-sqlquery, etc.).
Query parameter jsonParameters
To get the rows used in the chart, use GET /gateway/dynamic-reports/{dynamicReportGuid}/data with the optional query parameter jsonParameters: a JSON object serialized as text and URL-encoded, as in Standard Reports and the dynamic reports guide.
- Keys: same as the report parameters’ names (
@p_…). - Values: formatted according to type (date, number, text, etc.).
Send jsonParameters as JSON text encoded in the query string. Common HTTP libraries handle serialization and URL encoding automatically.
Visual types (series, diagram, palette)
In the API, selectedSeries, selectedDiagram, and selectedPalette are integers. The order of values corresponds to the server enumerations (also reflected in the OpenAPI schema of the report service).
DiagramType (values 0…5)
| Value | Member |
|---|---|
0 | SimpleDiagram2D |
1 | XYDiagram2D |
2 | RadarDiagram2D |
3 | PolarDiagram2D |
4 | SimpleDiagram3D |
5 | XYDiagram3D |
PaletteName (values 0…8)
| Value | Member |
|---|---|
0 | Chameleon |
1 | DXCharts |
2 | InAFog |
3 | NatureColors |
4 | NorthernLights |
5 | Office |
6 | PastelKit |
7 | TerracottaPie |
8 | TheTrees |
SeriesType (values 0…29)
| Value | Member | Value | Member |
|---|---|---|---|
0 | Pie | 15 | OverlappedRangeBar |
1 | Donut | 16 | Line |
2 | Area | 17 | StackedLine |
3 | StackedArea | 18 | FullStackedLine |
4 | FullStackedArea | 19 | StepLine |
5 | Bubble | 20 | ScatterLine |
6 | Point | 21 | Stock |
7 | StepArea | 22 | CandleStick |
8 | RangeArea | 23 | ManhattanBar |
9 | SideBySideBar | 24 | RadarArea |
10 | SideBySideStackedBar | 25 | RadarLine |
11 | SideBySideFullStackedBar | 26 | RadarPoint |
12 | StackedBar | 27 | PolarArea |
13 | FullStackedBar | 28 | PolarLine |
14 | SideBySideRangeBar | 29 | PolarPoint |
Some series types expect compatible diagram types in the visualization client (server code metadata Description associates series with diagram families). When in doubt, try in the product or consult the generated Swagger/OpenAPI schema.
Two prefixes in the gateway
| Prefix | Typical origin in gateway | Purpose |
|---|---|---|
/gateway/dynamic-chart-reports | Report service | CRUD, /{guid}/config, /{guid}/export. |
/gateway/dynamic-chart-report | Main API | GET paginated catalog; GET …/menu for menu entries. |
Do not confuse dynamic-chart-report (singular, catalog/menu) with dynamic-chart-reports (plural, full resource in the report microservice).
Available endpoints
Paginated catalog (main API)
URL: /gateway/dynamic-chart-report
Method: GET
Query (optional): page, pageSize
Returns a paginated listing of dynamic charts in the main API model (EntityListingDTO). Useful to select a guid before GET /gateway/dynamic-chart-reports/{guid}.
See more →
Visible menu entries (main API)
URL: /gateway/dynamic-chart-report/menu
Method: GET
List of charts marked to appear in the menu (integration with product ribbon/menu).
See more →
Operations under /gateway/dynamic-chart-reports
All following requests use this prefix and require authentication.
List all charts (report service)
URL: /gateway/dynamic-chart-reports
Method: GET
Response (200): array of DynamicChartDataDTO (complete list, no pagination in this resource).
See more →
Create dynamic chart
URL: /gateway/dynamic-chart-reports
Method: POST
Body: DynamicChartDataDTO
Response (200): body with the created chart’s GUID (text).
See more →
Update dynamic chart
URL: /gateway/dynamic-chart-reports
Method: PUT
Body: DynamicChartDataDTO (include guid)
Response: 204 No Content on success.
See more →
Get saved chart
URL: /gateway/dynamic-chart-reports/{guid}
Method: GET
Response (200): complete DynamicChartDataDTO.
See more →
Delete dynamic chart
URL: /gateway/dynamic-chart-reports/{guid}
Method: DELETE
Response: 204 No Content on success.
See more →
Get configuration for presentation
URL: /gateway/dynamic-chart-reports/{guid}/config
Method: GET
Response (200): DynamicChartConfig — visual definitions, dynamicReportGuid, and parameters of the underlying report.
See more →
Export internal chart data
URL: /gateway/dynamic-chart-reports/{guid}/export
Method: GET
Response (200): indented JSON string with the persisted internal state of the chart (useful for backup or diagnostics). Does not replace the GET …/dynamic-reports/…/data flow to feed the chart at runtime.
See more →
Main DTO structure
Composition follows the model chart metadata + visual definitions + report reference. Numeric values of visual types are in Visual types.
DynamicChartDataDTO
Body in POST / PUT and response in GET by GUID.
| Property | Type | Required (typical creation) | Description |
|---|---|---|---|
guid | string | Update | Empty or omitted on creation; required on PUT and routes with {guid} in path. |
name | string | Yes | Short name (max 25 characters). |
description | string | Yes | Description (max 250 characters). |
addToRibbon | boolean | No | Expose in product ribbon/menu when applicable. |
selectedDynamicReportGuid | string | Yes | GUID of the dynamic report data source. |
permissionType | int | No | See Permissions. |
userId | int? | No | Permission context; see note about PUT. |
permissionGroupsId | int[] | Conditional | Required when permissionType indicates groups. |
settingsEntity | DynamicChartSettingsDTO | Yes | Fields mapping and visual options. |
DynamicChartSettingsDTO
| Property | Type | Description |
|---|---|---|
chartTitle | string | Chart title. |
argument | string | Data field (category axis). |
value | string | Data field (values). |
serieMember | string | Field for multiple series (optional). |
selectedSeries | int | SeriesType index. |
selectedDiagram | int | DiagramType index. |
selectedPalette | int | PaletteName index. |
animate | boolean | Animation. |
showLegend | boolean | Main legend. |
showSeriesLegend | boolean | Series legend. |
DynamicChartConfig
Response of GET …/{guid}/config.
| Property | Description |
|---|---|
| Mirrored definitions | chartTitle, argument, value, serieMember, series, diagram, palette, animation, and legends (mirror of persisted). |
dynamicReportGuid | GUID of the report for GET …/dynamic-reports/{guid}/data. |
parameters | Collection of ReportParameterDetail to build the execution form. |
JSON examples
Creation body (POST /gateway/dynamic-chart-reports)
{
"guid": "",
"name": "VendasMensais",
"description": "Barras por mês e categoria",
"addToRibbon": true,
"selectedDynamicReportGuid": "fbdc2005-e157-4deb-9d49-a1a0557e4eef",
"permissionType": 0,
"userId": null,
"permissionGroupsId": [],
"settingsEntity": {
"chartTitle": "Vendas por mês",
"argument": "Mes",
"value": "TotalVendas",
"serieMember": "Categoria",
"selectedSeries": 9,
"selectedDiagram": 1,
"selectedPalette": 4,
"animate": true,
"showLegend": true,
"showSeriesLegend": true
}
}
Mes, TotalVendas, and Categoria must correspond to name of columns in the referenced dynamic report. The integers for visual types must correspond to the tables in Visual types.
Update body (PUT /gateway/dynamic-chart-reports)
Use the same DynamicChartDataDTO format, with guid filled with the identifier returned at creation. It is good practice to base the body on a prior GET and change only the desired fields.
Error handling
Operations return Problem Details or errors aligned with the API standard when they fail (authentication, resource not found, persistence failure, invalid underlying report when building config, etc.).
The integration client should:
- Check the HTTP status code (
4xx/5xx). - Read the body (title, detail, type) and correct the request, permissions, or data.
This guide does not fix internal numeric codes for localized messages: follow the returned text and the operation’s OpenAPI page.
Conclusion
Integrating dynamic charts boils down to: (1) ensuring a suitable dynamic report; (2) saving the chart via POST /gateway/dynamic-chart-reports (or updating with PUT); (3) using GET …/{guid}/config to get dynamicReportGuid and parameters; (4) obtaining rows with GET /gateway/dynamic-reports/{guid}/data and jsonParameters, and mapping columns to argument / value / serieMember. For listings in the main gateway, use GET /gateway/dynamic-chart-report (pagination) or …/menu.
It is recommended to test changes to the underlying report, permissions, and series/diagram combinations in a quality environment before production.
Related resources
- Integration Guide — Dynamic Reports
- Standard Reports Guide
- Getting Started / Authentication
- List all charts (report service)
- Create dynamic chart
- Update dynamic chart
- Get chart by GUID
- Delete chart
- Get chart configuration
- Export chart data
- Get dynamic report data
- Get dynamic report configuration
Last updated: May 12, 2026