Dashboards & Visualizations

Why am I getting error "addRowExpansionRenderer is not a function" in the JavaScript web framework after upgrade to Splunk 6.3 from 6.2.4?

ConnorG
Path Finder

After upgrading to Splunk 6.3, it seems the previous web framework for Javascript does not work properly.

My jscript is getting a TypeError: tableView.table.addRowExpansionRenderer is not a function error when being run under a 6.3 instance.

The code I'm using is expanding upon the concepts provides here

Anyone know if there were changes to the web framework and how to accommodate those changes?

0 Karma
1 Solution

ConnorG
Path Finder

I fixed it after referencing the example dashboards app. Below you can find my code.

6.2.4 code:

var tables = ['web_stat_page_tbl', 'web_diag_tran_tbl', 'web_diag_comp_tbl', 'web_stat_tran_tbl'];

    for(i = 0; i < tables.length; i++) {
        mvc.Components.get(tables[i]).getVisualization(function(tableView) {
            // Add custom cell renderer
            tableView.table.addCellRenderer(new CustomRangeRenderer());
            // Add custom row renderer
            tableView.table.addRowExpansionRenderer(new CustomRowRenderer());

            // Force the table to re-render
            tableView.table.render();
        });
    } 

6.3.0 code:

    var tableElement = mvc.Components.getInstance("web_stat_page_tbl");
    tableElement.getVisualization(function(tableView) {
        // Add custom cell renderer, the table will re-render automatically.
        tableView.addCellRenderer(new CustomRangeRenderer());
        tableView.addRowExpansionRenderer(new CustomRowRenderer());
    });

View solution in original post

ConnorG
Path Finder

I fixed it after referencing the example dashboards app. Below you can find my code.

6.2.4 code:

var tables = ['web_stat_page_tbl', 'web_diag_tran_tbl', 'web_diag_comp_tbl', 'web_stat_tran_tbl'];

    for(i = 0; i < tables.length; i++) {
        mvc.Components.get(tables[i]).getVisualization(function(tableView) {
            // Add custom cell renderer
            tableView.table.addCellRenderer(new CustomRangeRenderer());
            // Add custom row renderer
            tableView.table.addRowExpansionRenderer(new CustomRowRenderer());

            // Force the table to re-render
            tableView.table.render();
        });
    } 

6.3.0 code:

    var tableElement = mvc.Components.getInstance("web_stat_page_tbl");
    tableElement.getVisualization(function(tableView) {
        // Add custom cell renderer, the table will re-render automatically.
        tableView.addCellRenderer(new CustomRangeRenderer());
        tableView.addRowExpansionRenderer(new CustomRowRenderer());
    });

ConnorG
Path Finder

Sticking to the old format would give us:

    var tables = ['web_stat_page_tbl', 'web_diag_tran_tbl', 'web_diag_comp_tbl', 'web_stat_tran_tbl'];

    for(i = 0; i < tables.length; i++) {
        mvc.Components.get(tables[i]).getVisualization(function(tableView) {
            // Add custom cell renderer
            tableView.addCellRenderer(new CustomRangeRenderer());
            // Add custom row renderer
            tableView.addRowExpansionRenderer(new CustomRowRenderer());

        });
    } 
0 Karma

ConnorG
Path Finder

Below is the table object in a debug view coming from Splunk 6.2.4. Here we can see the addRowExpansionRenderer is still listed under the object.
alt text

Here is the same object in 6.3. No mention of RowExpansionRenderer anywhere.
alt text

0 Karma
Get Updates on the Splunk Community!

.conf24 | Day 0

Hello Splunk Community! My name is Chris, and I'm based in Canberra, Australia's capital, and I travelled for ...

Enhance Security Visibility with Splunk Enterprise Security 7.1 through Threat ...

 (view in My Videos)Struggling with alert fatigue, lack of context, and prioritization around security ...

Troubleshooting the OpenTelemetry Collector

  In this tech talk, you’ll learn how to troubleshoot the OpenTelemetry collector - from checking the ...