🎉 Flexmonster Pivot Table & Charts v2.8 has arrived!Read the blog post
Get Free Trial
Get Free Trial
  1. API reference
    1. Introduction
    2. Flexmonster()
  2. Objects
    1. All objects
    2. Report Object
    3. Data Source Object
    4. Mapping Object
    5. Slice Object
    6. Options Object
    7. Filtering
      1. Filter Object
      2. Number Query Object
      3. String Query Object
      4. Date Query Object
      5. Time Query Object
      6. Value Query Object
    8. Format Object
    9. Conditional Format Object
    10. Cell Data Object
    11. Chart Data Object
    12. Toolbar Object
  3. Methods
    1. All methods
    2. addCalculatedMeasure
    3. addCondition
    4. alert
    5. clear
    6. clearFilter
    7. clearXMLACache
    8. closeFieldsList
    9. collapseAllData
    10. collapseData
    11. connectTo
    12. customizeAPIRequest
    13. customizeCell
    14. customizeContextMenu
    15. dispose
    16. expandAllData
    17. expandData
    18. exportTo
    19. getAllConditions
    20. getAllHierarchies
    21. getAllMeasures
    22. getCell
    23. getColumns
    24. getCondition
    25. getFilter
    26. getFormat
    27. getMeasures
    28. getMembers
    29. getOptions
    30. getReport
    31. getReportFilters
    32. getRows
    33. getSelectedCell
    34. getSort
    35. getXMLACatalogs
    36. getXMLACubes
    37. getXMLADataSources
    38. getXMLAProviderName
    39. load
    40. off
    41. on
    42. open
    43. openCalculatedValueEditor
    44. openFieldsList
    45. openFilter
    46. print
    47. refresh
    48. removeAllCalculatedMeasures
    49. removeAllConditions
    50. removeCalculatedMeasure
    51. removeCondition
    52. removeSelection
    53. runQuery
    54. save
    55. setFilter
    56. setFormat
    57. setOptions
    58. setReport
    59. setSort
    60. showCharts
    61. showGrid
    62. showGridAndCharts
    63. sortingMethod
    64. sortValues
    65. updateData
  4. Events
    1. All events
    2. afterchartdraw
    3. aftergriddraw
    4. beforegriddraw
    5. beforetoolbarcreated
    6. cellclick
    7. celldoubleclick
    8. chartclick
    9. datachanged
    10. dataerror
    11. datafilecancelled
    12. dataloaded
    13. drillthroughclose
    14. drillthroughopen
    15. exportcomplete
    16. exportstart
    17. fieldslistclose
    18. fieldslistopen
    19. filterclose
    20. filteropen
    21. loadingdata
    22. loadinglocalization
    23. loadingolapstructure
    24. loadingreportfile
    25. localizationerror
    26. localizationloaded
    27. olapstructureerror
    28. olapstructureloaded
    29. openingreportfile
    30. printcomplete
    31. printstart
    32. querycomplete
    33. queryerror
    34. ready
    35. reportchange
    36. reportcomplete
    37. reportfilecancelled
    38. reportfileerror
    39. runningquery
    40. update
  5. Custom API requests
    1. All requests
    2. /handshake request
    3. /fields request
    4. /members request
    5. /select request for pivot table
    6. /select request for flat table
    7. /select request for drill-through view
    8. Field Object
  6. MongoDB Connector API
    1. All methods
    2. getSchema
    3. getMembers
    4. getSelectResult
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 OLAP cubes and CSV, updateData allows connecting to a new data source. 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. This property can be used only for JSON data source type. 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 Field 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 Field List. Check how "delete" type works in example number 4.
        • "hidden" – field is hidden. This field will not be shown in Field 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 Field List) when several fields are grouped under one dimension.
    • binary (optional) – Boolean. Flag to use Data Speed Accelerator instead of XMLA protocol. Only for MSAS and Mondian data sources.
    • browseForFile (optional) – Boolean. Defines whether you want to load CSV file from the local file system (true) or not (false). Only for CSV and JSON data sources. Default value: false.
    • catalog (optional) – String. The data source catalog name of the OLAP data source (only for "microsoft analysis services", "mondrian" data source types).
    • cube (optional) – String. Given catalog’s cube’s name of the OLAP data source (only for "microsoft analysis services", "mondrian" data source types).
    • dataSourceInfo (optional) – String. The service info of the OLAP data source (only for "microsoft analysis services", "mondrian" data source types).
    • type (optional) – String. Type of data source. The component supports the following types: "microsoft analysis services", "mondrian", "elasticsearch", "csv", and "json".
    • effectiveUserName (optional) – String. Use when an end user identity must be impersonated on the server. Specify the account in a domain\user format. Only for "microsoft analysis services" data source type.
    • fieldSeparator (optional) – String. 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 as "\t".
    • thousandSeparator (optional) – String. Defines specific character used to separate groups of digits in numbers. For example, to import CSV data with commas used to separate groups of digits in numbers (e.g. 1,000 for one thousand), set thousandSeparator parameter as ",".
    • filename (optional) – String. The URL to CSV or JSON file or to server-side script which generates CSV data or JSON data (only for CSV and JSON data source type).
    • ignoreQuotedLineBreaks (optional) – Boolean. Indicates whether the line breaks in quotes will be ignored (true) in CSV files or not (false). When set to true, CSV parsing is faster. Set it to false only if your data source has valuable for you line breaks in quotes. Note that this might slow down CSV parsing a little bit. Default value: true.
    • localeIdentifier (optional) – Number. Microsoft Locale ID Value for your language. Only for "microsoft analysis services" data source type.
    • proxyUrl (optional) – String. The path to proxy URL to the OLAP data source, such as Microsoft Analysis Services, Mondrian (only for "microsoft analysis services", "mondrian" data source types). In case of Microsoft Analysis Services, both tabular and multidimensional model types are supported.
    • recordsetDelimiter (optional) – String. Defines which char is used in CSV to denote the end of CSV row (only for CSV data source type). Default value: "↵".
    • roles (optional) – String. Comma-delimited list of predefined roles to connect to a server or database using permissions conveyed by that role. If this property is omitted, all roles are used, and the effective permissions are the combination of all roles. Supported only for "microsoft analysis services" and "mondrian" data sources.
    • subquery (optional) – String | Object. The parameter to set the server-side filter which helps to decrease the size of the response from the server (only for "microsoft analysis services" and "elasticsearch" data source types). For "microsoft analysis services" data source type, should be set as a string. Example: to show reports only for one specific year, set subquery the following way: "subquery": "select {[Delivery Date].[Calendar].[Calendar Year].&[2008]} on columns from [Adventure Works]". For "elasticsearch" data source type, should be set as a Bool Query Object.
    • requestHeaders (optional) – Object. For all data sources. This object allows you to add custom request headers. This object consists of "key": "value" pairs, where "key" is a header name and "value" is its value. Check out a live sample on JSFiddle. Important note: requestHeaders is not saved when obtaining the report via save() and getReport() API calls.
    • node (optional) – String | Object. The host for the connection (only for "elasticsearch" data source type). Can be set either as a URL string ("node": "https://olap.flexmonster.com:9200") or as an object with the following properties:
      • protocol – String. node URL protocol.
      • host – String. node URL hostname.
      • port – Number. node URL port.
      • path (optional) – String. node URL path.
    • index (optional) – String. The name of Elasticsearch index to connect (only for "elasticsearch" data source type).
    • mapping (optional) – Object. An additional setting to configure index mapping (only for "elasticsearch" data source type). Use the name of the field as a key of the object with the following parameters:
      • caption (optional) – String. Overrides the default name of the field.
      • visible (optional) – Boolean. When set as false, hides the field from the Field List.
      • interval (optional) – String. Used for date histogram. Check out supported time units.
      • time_zone (optional) – String. Used for date histogram. You can specify timezones as either an ISO 8601 UTC offset (e.g. +01:00 or -08:00) or as a timezone ID as specified in the IANA timezone database, such as`America/Los_Angeles`. Check out the example.
      • format (optional) – String. Used for date histogram. Check out date format/pattern.
      • min_doc_count (optional) – Number. Used for date histogram. Can be used to show intervals with empty values (min_doc_count: 0). Default value: 1 (empty intervals are hidden).
  • options (optional) – Object. Contains additional options:
    • partial (optional) – Boolean. For JSON data source only. Allows partial updating of the data. 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. Default value: false.
    • ignoreSorting (optional) – Boolean. Set ignoreSorting: true and current sorting defined in the report will be ignored when you update the data. Default value: false.
    • ignoreScroll (optional) – Boolean. Set ignoreScroll: true and current scroll position in pivot table will be ignored when you update the data. Default value: false.

Examples

1) Update data from Microsoft Analysis Services:

flexmonster.updateData({
  type: '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({
  type: '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