1 Reply Latest reply on Jan 19, 2017 7:19 AM by lenaic.ridinger

    Help resolving issue: "An embedded page at [server] says: Assert failed: Accessing outside range of column: tuple_id <line break> Break into debugger?"

    Paul Galvin

      Greetings,

       

      I've been using the tableau javascript API to embed Tableau reports from a 9.2 server inside of SharePoint online.

       

      In one of these reports, the user has report (and I've been able to replicate) an error:

       

      An embedded page at [server] says: Assert failed: Accessing outside range of column: tuple_id <line break> Break into debugger?

       

      This arises when the user:

      - Selects the report

      - Selects a few filter values

      - Clicks on the report itself to filter by clicking on value --> this is when the error occurs.

       

      This apparently does not happen when the user accesses the report directly (i.e. not as an embedded report on the page).

       

      Here's the code that instantiates the report:

       

              private _initializeTableauReport(forReportUrl: string): void {

       

       

                  this.$log.debug(`TableauPreviewComponent: _initializeTableauReport: Initializing for a reporturl: [${forReportUrl}].`);

       

       

                  if (this._viz != undefined)

                      this._viz.dispose();

       

       

                  this._vizDiv = document.getElementById('tableauViz');

       

       

                  this._vizUrl = forReportUrl;

       

       

                  var home = this;

       

       

                  this._widthInPixels = $(window).width() - 25;

       

       

                  this._vizOptions = <tabInterfaces.IVizOptions>{};

                  this._vizOptions.width = this.ReportWidthInPixels;

                  this._vizOptions.height = this.ReportHeightInPixels;

                  this._vizOptions.hideToolbar = false;

                  this._vizOptions.hideTabs = false;

                  this._vizOptions.toolbarPosition = tableauSoftware.ToolbarPosition.TOP,

                  this._vizOptions.onFirstInteractive = () => {

                      //this.$log.debug(`TableauPreviewComponent: on first interactive: firing.`);

                      this._tableauWorkbook = this._viz.getWorkbook();

                      this.activeSheet = this._tableauWorkbook.getActiveSheet();

                      this._tableauReportIsInteractive = true;

                      this.$timeout(() => { return null; }, 0); // Tableau doesn't tell angular something important changed, so this is needed.

                  }

       

       

                  this._vizOptions.onFirstVizSizeKnown = (event) => {

                      this.$log.debug(`TableauPreviewComponent: onFirstVizSizeKnown: got some info:`, event);

                      this.$log.debug(`TableauPreviewComponent: onFirstVizSizeKnown: event.getVizSize():`, event.getVizSize());

                  }

       

       

                  this.$log.debug(`TableauPreviewComponent: _initializeTableauReport: Finished initalizing report options:`, this._vizOptions);

       

       

              }

       

      That is TypeScript and Angular 1.5.

       

      Any thoughts or insights are very welcome!

       

      TIA.