在某些情况下不会调用getData()方法

时间:2018-12-14 10:22:29

标签: google-data-studio

我创建了一个连接器,该连接器从API提取CSV并在表格中显示数据。在几乎所有情况下,它都能很好地工作。

但是,由于未知原因,当我想显示一些列时,不会调用getData方法。我使用Utilities.parseCsv,所以我认为它不是来自CSV的,因为它可以与其他列一起使用。无效的列似乎格式正确...

getData()方法:

function getData(request) {
  console.log(request);
  var indexes = [];

  try {        
    // Fetch the CSV and return the schema and the CSV as a string
    var response = connectAndParse(request)

    // Find the columns to display
    var requestedSchema = request.fields.map(function (field) {
      for (var i = 0; i < response.schema.length; i++) {
       if (response.schema[i].name == field.name) {
          indexes.push(i);
          return response.schema[i];
        }
      }
    });

    // Build the data to display
    var rows = [];    
    response.csv.forEach(function(row, i){
      var splittedRow = Utilities.parseCsv(row)[0];

      if (!splittedRow || splittedRow.length !== response.schema.length) {return;}

      var contentRow = indexes.map(function (index) {
         return splittedRow[index];
      });

      if (contentRow && parseInt(contentRow.length) > 0) {
        rows.push({values: contentRow});
      }
    });

    return {
      schema: requestedSchema,
      rows: rows
    };

  } catch(error) {
    console.log(error);
  } 
}

我认为未调用该方法,因为第一个console.log没有显示在StackDriver日志中,但是也许我遗漏了一些东西...

0 个答案:

没有答案