We have updated Flexmonster Software License Agreement, effective as of September 30, 2024. Learn more about what’s changed.
All documentation
  • API Reference for older versions
  • FieldMappingObject

    This object allows setting the mapping for a specific field from the dataset.

    Properties

    <uniqueName>: {
    caption: string,
    type: string,
    hierarchy: string,
    parent: string,
    folder: string,
    aggregations: string[],
    filters: boolean | {
    members: boolean
    },
    visible: boolean,
    showEmptyValues: boolean,
    interval: string,
    calendar_interval: string,
    fixed_interval: string,
    isMeasure: boolean,
    time_zone: string,
    format: string,
    min_doc_count: number
    }
    Property/TypeDescription
    caption
    String
    optional The field’s caption.
    By default, a caption is a field’s uniqueName.
    type
    String
    optional The field’s data type. Check out the full list of available data types.
    Only for "json", "csv", and "api" data source types.
    hierarchy
    String
    optional The hierarchy’s name. When configuring hierarchies, specify this property to mark the field as a level of a hierarchy or as a member property of a hierarchy (in this case, the type parameter should be set to "property").
    Only for "json", "csv", and "api" data source types.
    See how to configure multilevel hierarchies.
    parent
    String
    optional The unique name of the parent level. This property is necessary if the field is a level of a hierarchy and has a parent level.
    Only for "json", "csv", and "api" data source types.
    See how to configure multilevel hierarchies.
    folder
    String
    optional The field’s folder. Folders are used to group several fields in the Field List. folder supports nesting via / (e.g., "Folder/Subfolder/").
    Only for "json", "csv", and "api" data source types.
    aggregations
    String[]
    optional This property represents the list of aggregation functions that can be applied to the current measure.
    For "csv" and "json" data source types, you can also define available aggregations for all fields of a certain type.
    filters
    Boolean | Object
    optional This property allows enabling and disabling the filter pop-up window for the field. When set to false, the filter pop-up window is disabled.
    If you are using the "api" data source type, you can set this property to an object to enable or disable the selection filter in the filter pop-up window.
    Default value: true.
    filters.members
    Boolean
    optional Indicates whether the selection filter in the filter pop-up window is enabled (true) or disabled (false) for the field Live example.
    If the field has many members, setting filters.members to false can improve the component's performance since the members won't be loaded in the filter pop-up window.
    Only for the "api" data source type.
    Default value: true.
    visible
    Boolean
    optional When set to false, hides the field from the Field List.
    showEmptyValues
    Boolean
    optional Indicates whether to show the field's members with empty values (true) or not (false).
    To configure this behavior for all fields in rows or columns, use the options.showEmptyValues property.
    Only for "json", "csv", and "api" data source types.
    Note that for the "api" data source type, this property has usage specifics for multilevel hierarchies:Default value: false.
    interval
    String
    optional Allows rounding down dates by the given interval. For example, if the interval is "1d", the 2021-05-25T21:30:00 date will be rounded to 2021-05-25T00:00:00 Live example. Only for "csv", "json", and "elasticsearch" data source types.

    For "json" and "csv", the interval property can be used only for the "date string" and "datetime" field types. Supported date intervals are the following:
    • "y" for one year (e.g., "y").
    • "q" for one quarter (e.g., "q").
    • "M" for one month (e.g., "M").
    • "w" for one week (e.g., "w").
    • "d" for days (e.g., "1d"). Note that rounding by days starts from 1 January 1970.
    • "h" for hours (e.g., "7h").
    • "m" for minutes (e.g., "20m").
    • "s" for seconds (e.g., "30s").
    Note that "y", "q", "M", and "w" intervals must be specified without numbers.

    For the "elasticsearch" data source type, the interval property can be used for the date histogram. Check out the list of supported intervals.
    Note that the interval was deprecated in Elasticsearch version 7.2 and removed in version 8. If your Elasticsearch version is higher than 7.2, use either calendar_interval or fixed_interval properties instead of the interval.
    calendar_interval
    String
    optional Sets the Elasticsearch’s calendar_interval parameter for the date histogram. This parameter allows rounding down dates by the given interval. For example, if the calendar_interval is "day", 2021-05-25T19:30:00 will be rounded to 2021-05-25T00:00:00 Live example.
    See the list of supported intervals: Calendar intervals.
    Only for Elasticsearch version 7.2 and higher.
    Default value: "day".
    fixed_interval
    String
    optional Sets the Elasticsearch’s fixed_interval parameter for the date histogram. This parameter allows rounding down dates by the given interval. For example, if the fixed_interval is "3h", 2021-05-25T19:30:00 will be rounded to 2021-05-25T18:00:00 Live example.
    See the list of supported intervals: Fixed intervals.
    Only for Elasticsearch version 7.2 and higher.
    isMeasure
    Boolean
    optional Indicates whether a field can be selected only for measures (true) or only for rows, columns, or report filters (false). The isMeasure property works only when the strictDataTypes option is set to true Live example.
    Only for the "json" data source type.
    Default value: false.
    time_zone
    String
    optional Used for the date histogram. You can specify time zones as either an ISO 8601 UTC offset (e.g., +01:00 or -08:00) or as a time zone ID as specified in the IANA time zone database, such as America/Los_Angeles. Check out an example here.
    Only for the "elasticsearch" data source type.
    format
    String
    optional Used to format different types of date fields. The format can be used in the following ways:
    min_doc_count
    Number
    optional Used for the Elasticsearch date histogram. Can be used to show intervals with empty values (min_doc_count: 0).
    Only for the "elasticsearch" data source type.
    Default value: 1 (empty intervals are hidden).

    Available types for fields

    TypeDescription
    "string"The field stores string data.
    "number"The field stores numerical data. It can be aggregated with all available aggregations.
    "month"The field stores months.
    If the field stores only month names in either short or full form, Flexmonster will autodetect the field type as "month". If the field contains custom month names, specify this type explicitly.
    "weekday"The field stores days of the week.
    "date"The field stores a date. Fields of this type are split into 3 different fields: year, month, and day Live example.
    Only for "json" and "csv" data source types.
    "year/month/day"The field stores a date. It’s displayed as a multilevel hierarchy with the following levels: "Year" > "Month" > "Day".
    Only for "json" and "csv" data source types.
    "year/quarter/month/day"The field stores a date. It’s displayed as a multilevel hierarchy with the following levels: "Year" > "Quarter" > "Month" > "Day".
    Only for "json" and "csv" data source types.
    "date string"The field stores a date. Field members of this type are represented as strings but are sorted as dates.
    Note that by default, "date string" fields are rounded down with the "1d" interval (e.g., "04/25/2021T21:30:05" is rounded down to "04/25/2021T00:00:00"). If needed, you can set a custom interval for a field. Learn more about intervals.
    Fields of the "date string" type can be formatted using the datePattern option.
    Default pattern: "dd/MM/yyyy".
    Live example
    Read more about formatting fields of the “date string” type.
    "datetime"The field stores the date and time. Field members of this type are represented as strings but are sorted as dates.
    Fields of the "datetime" type can be formatted using the dateTimePattern option.
    Default pattern: "dd/MM/yyyy HH:mm:ss".
    Live example
    Read more about formatting fields of the “datetime” type.
    "time"The field stores time. The "time" type is used for fields that store a time interval (e.g., duration or elapsed time) and are not related to a specific date.
    Fields of this type can be formatted using the timePattern option. Default pattern: "HH:mm:ss".
    Read more about formatting fields of the “time” type.
    "id"The field identifies records in the dataset. You can specify only one "id" field in the mapping.
    Values of this field are returned in the CellDataObject.recordId property and the datachanged event. Note that an "id" field is not shown in the Field List.
    Use the "id" field type to create custom drill-through functionality or edit data from JSON.
    Only for "json" and "csv" data source types.
    "property"The field is a member property of another field. Fields of this type must be associated with a different field via the hierarchy property.
    Live example
    Note that "property" fields are not shown in the Field List.
    Only for the "json" data source type.

    Example

    Here is an example of setting the mapping for specific fields in a CSV data source:

    dataSource: {
      filename: "data.csv",
      mapping: {
        "Order ID": {
          type: "string"
        },
        "Month": {
          type: "month"
        },
        "Company Name": {
          type: "string"
        },
        "Region": {
          type: "string",
          hierarchy: "Geography"
        },
        "State": {
          type: "string",
          parent: "Region",
          hierarchy: "Geography"
        },
        "City": {
          type: "string",
          parent: "State",
          hierarchy: "Geography"
        },
        // Mapping for other fields
      },
    }
    Live example

    See also

    Mapping guide
    MappingObject
    AggregationsObject