Need a special offer?Find out if your project fits.
+
All documentation
  • Introduction
  • Connecting to Data Source
    1. Supported data sources
    2. Connecting to other data sources
  • Browser compatibility
  • Documentation for older versions
  • Supporting more aggregation functions

    Using the custom data source API allows you to decide which aggregations to enable in Flexmonster and support on the back end.

    The supported aggregations can be defined in the aggregations property of the response to the /fields request. The aggregations supported by Flexmonster for the custom data source API connection are the following: "sum", "count", "distinctcount", "average", "median", "product", "min", "max", "stdevp", "stdevs", "none", or a custom aggregation.

    It is possible to define which aggregations are available for which fields in the back end; it is also not necessary to implement all the aggregations supported by Flexmonter.

    Built-in front-end aggregations

    For the custom data source API, Flexmonster supports the following built-in front-end aggregations: "percent", "percentofcolumn", "percentofrow", "percentofparentcolumntotal", "percentofparentrowtotal", "index", "differenceofcolumn", "differenceofrow", "%differenceofcolumn", "%differenceofrow", "runningtotalsofcolumn", "runningtotalsofrow".

    These aggregations will appear in Flexmonster Pivot automatically if at least one aggregation is implemented on the back end (e.g., "sum").

    Note This feature is available only for the fields of the "number" type.

    Custom aggregations

    Besides aggregations supported by Flexmonster, you can implement a custom aggregation on your server. Define the custom aggregation (e.g., "squareroot") in the aggregations property of the response to the /fields request:

    {
      "aggregations": {
        "number": ["sum", "average", "squareroot"],
        …
      }
    }

    Now the custom aggregation can be used on the client side. In the component, a measure with the custom aggregation applied will look similar to the following: Price (squareroot).

    Manage the list of available aggregations in Flexmonster

    On the client side, you can customize the list of aggregations available for a specific field with the MappingObject. This object has the "aggregations" property, which defines a list of available aggregations. That list can contain both the aggregations supported on the back end (including custom ones) and the built-in front-end aggregations.

    To learn more about the "aggregations" property, refer to the Mapping guide.

    What's next?

    You may be interested in the following articles: