1 Reply Latest reply on Dec 11, 2017 7:29 AM by pradeepbangarusamy

    JavaScript API to get Underlying Data

    pradeepbangarusamy

      Russell Christopher @Daniel Alvarez Vera   I am trying to get the underlying data from one of the workbook which is in the dashboard.

       

      am using the below code . the same code work well when I publish this in the tableau public but not in in-house tableau server. I have switched different javascript but nothing helped me.

       

      1. I have tried below URL one by one  in the code and  the dashboard is rendering but when I click the Get Data button then am getting this error "0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'getUnderlyingDataAsync'"

      http://in-houseserver/javascripts/api/tableau_v8.js

      http://in-houseserver/javascripts/api/tableau-2.0.0.js

      http://in-houseserver/javascripts/api/tableau-2.min.js

      http://in-houseserver/javascripts/api/viz_v1.js  -( dashboard also not rendering)

       

      2. when I try the same dashboard published in the tableau public and I have used the below java script. the dashboard and underlying data works well

      http://public.tableau.com/javascripts/api/tableau-2.min.js

       

      could you guide me to resolve this issue?

       

      -------------------------------------------------------------------------------------------------------

       

      <!DOCTYPE html>

      <html>

       

       

      <head>

          <title>getData() Basic Example</title>

          <!--<script type="text/javascript" src="http://public.tableau.com/javascripts/api/tableau-2.min.js"></script>-->

              <!--<script type="text/javascript" src="http://in-houseserver/javascripts/api/tableau-2.0.0.js"></script>-->

      <script type="text/javascript" src="http://in-houseserver/javascripts/api/tableau_v8.js"></script>

          <!--<script type='text/javascript' src='http://in-houseserver/javascripts/api/viz_v1.js'></script>-->

          <!--<script src="scripts/tableau-2.min.js"></script>-->

       

       

          <script type="text/javascript">

              var viz, sheet, table;

          

              function initViz() {

                  var containerDiv = document.getElementById("vizContainer"),

                      //  url = "https://public.tableau.com/views/MyFirstDashboard_74/MyFirstDB",

             

                      url = "http://in-houseserver/views/MyFirstDashboard/MyFirstDB",

                 

                      options = {

                          hideTabs: true,

                          hideToolbar: true,

                          onFirstInteractive: function() {

                              document.getElementById('getData').disabled = false; // Enable our button

                          }

                      };

                  viz = new tableau.Viz(containerDiv, url, options);

              }

       

       

              function getUnderlyingData() {

                 // sheet = viz.getWorkbook().getActiveSheet().getWorksheets().get("Sheet 26");

                  sheet = viz.getWorkbook().getActiveSheet().getWorksheets().get("Test3");

                  // If the active sheet is not a dashboard, then you can just enter:

                  // viz.getWorkbook().getActiveSheet();

                  options = {

                      maxRows: 12, // Max rows to return. Use 0 to return all rows

                      ignoreAliases: false,

                      ignoreSelection: true,

                      includeAllColumns: false

                  };

       

       

                  sheet.getUnderlyingDataAsync(options).always(function (t) {

                      table = t;

                      var tgt = document.getElementById("dataTarget");

                      tgt.innerHTML = "<h4>Underlying Data:</h4><p>" + JSON.stringify(table.getData()) + "</p>";

       

       

                  }

                  );

              }

          </script>

      </head>

       

       

      <body onload="initViz();">

          <div class="page-header">

              <h1>getData() Basic Example</h1>

              <p>Click the "Get Data" button to get underlying data for the viz.</p>

              <button id="getData" onclick="getUnderlyingData()" class="btn" disabled>Get Data</button>

          </div>

          <div id="vizContainer" style="width:600px; height:600px;"></div>

          <div id="dataTarget"></div>

      </body>

       

       

      </html>