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. Slice Object
    5. Options Object
    6. Filtering
      1. Filter Object
      2. Number Query Object
      3. String Query Object
      4. Date Query Object
      5. Time Query Object
      6. Value Query Object
    7. Format Object
    8. Conditional Format Object
    9. Cell Data Object
    10. 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. customizeCell
    13. customizeContextMenu
    14. dispose
    15. expandAllData
    16. expandData
    17. exportTo
    18. getAllConditions
    19. getAllHierarchies
    20. getAllMeasures
    21. getCell
    22. getColumns
    23. getCondition
    24. getFilter
    25. getFormat
    26. getMeasures
    27. getMembers
    28. getOptions
    29. getReport
    30. getReportFilters
    31. getRows
    32. getSelectedCell
    33. getSort
    34. getXMLACatalogs
    35. getXMLACubes
    36. getXMLADataSources
    37. getXMLAProviderName
    38. load
    39. off
    40. on
    41. open
    42. openCalculatedValueEditor
    43. openFieldsList
    44. openFilter
    45. print
    46. refresh
    47. removeAllCalculatedMeasures
    48. removeAllConditions
    49. removeCalculatedMeasure
    50. removeCondition
    51. removeSelection
    52. runQuery
    53. save
    54. setFilter
    55. setFormat
    56. setOptions
    57. setReport
    58. setSort
    59. showCharts
    60. showGrid
    61. showGridAndCharts
    62. sortingMethod
    63. sortValues
    64. updateData
  4. Events
    1. All events
    2. afterchartdraw
    3. aftergriddraw
    4. beforegriddraw
    5. beforetoolbarcreated
    6. cellclick
    7. celldoubleclick
    8. datachanged
    9. dataerror
    10. datafilecancelled
    11. dataloaded
    12. exportcomplete
    13. exportstart
    14. fieldslistclose
    15. fieldslistopen
    16. filterclose
    17. filteropen
    18. loadingdata
    19. loadinglocalization
    20. loadingolapstructure
    21. loadingreportfile
    22. localizationerror
    23. localizationloaded
    24. olapstructureerror
    25. olapstructureloaded
    26. openingreportfile
    27. printcomplete
    28. printstart
    29. querycomplete
    30. queryerror
    31. ready
    32. reportchange
    33. reportcomplete
    34. reportfilecancelled
    35. reportfileerror
    36. runningquery
    37. update
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, CSV, and OCSV, 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). Default value is false. Only for CSV and JSON data sources.
    • 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", "ocsv" 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). Default value is true, which makes CSV parsing faster. Set it to false only if your data source has valuable for you line breaks in quotes. Please note that this might slow down CSV parsing a little bit.
    • 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 is "↵".
    • 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. 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({
  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