Menu
Download Free Trial
Table of contents

updateData

updateData(connectionParameters:Object, options:Object)

[starting from version: 2.3]

Helps to update data for the report without cleaning the report. Only the dataSource is updated, whereas the slice, all defined options, number and conditional formatting, the scroll position stay the same. For JSON data source it is also possible to update only some part of the data.

Parameters

  • connectionParameters is the object which contains connection parameters. All of them are optional. Structure of connectionParameters object:
    • data – Property to set JSON data if it is already on the page. data contains the array of objects, where each object is an unordered set of name/value pairs or array of arrays, where each sub-array contains ordered values. The first object in JSON array can be used to define data types, captions, etc. Here is the list of supported properties that can be used in the first object of input array:
      • type – data type. Can be:
        • "string" – field contains string data. You will be able to aggregate it only with Count and Distinct Count aggregations. It will be sorted as string data.
        • "number" – field contains numeric data. You will be able to aggregate it with all different aggregations. It will be sorted as numeric data.
        • "level" – field is a level of hierarchy. This type is used together with other properties such as: hierarchy, level and parent
        • "month" – field contains months.
        • "weekday" – field contains days of the week.
        • "date" – field is a date. Such field will be split into 3 different fields: Year, Month, Day.
        • "date string" – field is a date. Such field will be formatted using date pattern (default is dd/MM/yyyy).
        • "year/month/day" – field is a date. You will see such date as a hierarchy: Year > Month > Day.
        • "year/quarter/month/day" – field is a date. You will see such date as a hierarchy: Year > Quarter > Month > Day.
        • "time" – field is a time (numeric data). Such field will be formatted using HH:mm pattern. Min, Max, Count and Distinct Count aggregations can be applied to it.
        • "datetime" – field is a date (numeric data). Such field will be formatted using dd/MM/yyyy HH:mm:ss pattern. Min, Max, Count and Distinct Count aggregations can be applied to it.
        • "id" – field is an id of the fact. Such field is used for editing data. This field will not be shown in Fields List. Use "id" type if you want to add/edit/delete partial data without updating the whole dataset. To understand how to use this type, please check example number 4.
        • "delete" – field for an indication that the record of JSON array can be deleted. This field will not be shown in Fields List. Check how "delete" type works in example number 4.
        • "hidden" – field is hidden. This field will not be shown in Fields List.
      • caption – hierarchy caption.
      • hierarchy – hierarchy name, if the field is a level of hierarchy ("type":"level").
      • level – caption of the level, if the field is a level of hierarchy ("type":"level").
      • parent – caption of the parent level, if the field is a level of hierarchy ("type":"level").
      • dimensionUniqueName – dimension unique name. Can be used to group several fields under one dimension.
      • dimensionCaption – dimension caption. Is used as a display name (folder name in Fields List) when several fields are grouped under one dimension.
    • dataSourceType – type of data source. The component supports the following types: "microsoft analysis services", "mondrian", "iccube", "csv", "ocsv", "json".
    • proxyUrl – the path to proxy URL to the OLAP data source, such as Microsoft Analysis Services, Mondrian, icCube (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • dataSourceInfo – the service info of the OLAP data source (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • catalog – the data source catalog name of the OLAP data source (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • cube – given catalog’s cube’s name of the OLAP data source (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • filename – the URL to CSV file or to server side script which generates CSV data (only for "csv", "ocsv" and "json" data source type)
    • browseForFile – this boolean parameter defines whether you want to load CSV file from the local file system (true) or not (false). It is false by default. (only for "csv", "ocsv" and "json" data source type)
    • fieldSeparator – defines specific fields separator to split CSV row (only for "csv" data source type). There is no need to define it if CSV fields are separated by , or ;. This property is used if another char separates fields. For example, if you use TSV, where tab char is used to separate fields in row, fieldSeparator parameter should be defined explicitly.
  • options (optional) – Object. Contains additional options:
    • partial (optional) – Boolean. For JSON data source only. Allows partial updating of the data. The default value is false. When partial is set to true, you can add, update or remove certain records of JSON array. For more information please check example number 4.
    • ignoreSorting (optional) – Boolean. The default value is false. Set ignoreSorting: true and current sorting defined in the report will be ignored when you update the data.
    • ignoreScroll (optional) – Boolean. The default value is false. Set ignoreScroll: true and current scroll position in pivot table will be ignored when you update the data.

Examples

1) Update data from Microsoft Analysis Services:

flexmonster.updateData({
  dataSourceType: 'microsoft analysis services',
  proxyUrl: 'http://olap.flexmonster.com/olap/msmdpump.dll',
  dataSourceInfo: 'Provider=MSOLAP; Data Source=extranet;', 
  catalog: 'Adventure Works DW Standard Edition', 
  cube: 'Adventure Works'
});

Open the example on JSFiddle.

2) Update data from CSV data source:

flexmonster.updateData({
  dataSourceType: 'csv', 
  filename: 'data.csv'
});

Try on JSFiddle.

3) Update data from JSON inline data:

var jsonData = [{
  "Color": { "type": "string" },
  "M": {
    "type": "month",
    "dimensionUniqueName": "Days",
    "dimensionCaption": "Days",
    "caption": "Month"
  },
  "W": {
    "type": "weekday",
    "dimensionUniqueName": "Days",
    "dimensionCaption": "Days",
    "caption": "Week Day"
  },
  "Country": {
    "type": "level",
    "hierarchy": "Geography",
    "level": "Сountry"
  },
  "State": {
    "type": "level",
    "hierarchy": "Geography",
    "level": "State",
    "parent": "Сountry"
  },
  "City": {
    "type": "level",
    "hierarchy": "Geography",
    "parent": "State"
  },
  "Price": { "type": "number" },
  "Quantity": { "type": "number" }
}, {
  "Color": "green",
  "M": "September",
  "W": "Wed",
  "Country": "Canada",
  "State": "Ontario",
  "City": "Toronto",
  "Price": 174,
  "Quantity": 22
}];
flexmonster.updateData({ data: jsonData });

Check out on JSFiddle.

4) How to use updateData for adding/updating/removing partial data:

First of all, we add id and delete types to the first object of JSON array:

{
      "Category": { "type": "string" },
      "Price": { "type": "number" },
      "RowId": { "type": "id" },
      "DeleteRow": { "type": "delete" }
}

Then, when defining the data, we specify an id field for every object the following way:

{
      "Category": "Accessories",
      "Price": 242,   
      "RowId": 1 
}

To add or update only some of the records use partial: true:

var dataForUpdate = [{
      "Category": "Cars",
      "Price": 51844,
      "RowId": 4   	
}]
flexmonster.updateData({data: dataForUpdate}, {partial: true});

To delete the records specify id and delete fields:

var dataForUpdate = [{
      "RowId": 3,
      "DeleteRow": true  	
}]
flexmonster.updateData({data: dataForUpdate}, {partial: true});

Live example on JSFiddle.

See also

connectTo