Data Studio Connector getData()未运行

问题描述 投票:1回答:1

我似乎无法让getData()函数在我正在构建的此连接器上运行。 Data Studio可以正确显示我的模式,但是当我“探索”数据时,会引发错误。查看项目执行情况,“ getData”功能根本不会运行。

Data Studio has encountered a system error.

Sorry, we encountered an error and were unable to complete your request.

没有显示调试错误,我不确定如何继续调试。

这是我的代码...

var cc = DataStudioApp.createCommunityConnector();


function isAdminUser(){
  return true
}



function responseToRows(requestedFields, response){
  return response.map(function(item) {
    var row = [];
    requestedFields.asArray().forEach(function(field){
      var id = field.getId()
      row.push(item[id])
    });
    console.log(row);
    return { values: row };
  });
}

function getAuthType() {
  var response = { type: 'NONE' };
  return response;
}


function getConfig(){
  var json = UrlFetchApp.fetch("<api-url>");
  var data = JSON.parse(json);
  var config = cc.getConfig();
  var tables = data.TableNames
  var configElement = config
      .newSelectSingle()
      .setId('tables')
      .setName("Choose your data source")
      .setHelpText('Choose your data source');

  for(i=0;i<tables.length;i++){
    configElement
    .addOption(config.newOptionBuilder().setLabel(tables[i]).setValue(tables[i]))
  }

  return config.build();


}

function getSchema(request){

  var fields = cc.getFields();
  var types = cc.FieldType;
  var table = request.configParams.tables;
  var data = UrlFetchApp.fetch("<api-url>"+"?name="+table);
  var itemArray = JSON.parse(data);
  var singleRow = itemArray["Items"][0];
  var keys = Object.keys(singleRow)
  for(i=0;i<keys.length;i++){   
    var nestedKeys = Object.keys(singleRow[keys[i]])
    var propName = keys[i];
    var dataType = nestedKeys[0]
    if(dataType == "S"){
      fields.newDimension()
      .setId(propName)
      .setName(propName)
      .setType(types.TEXT)
    }else if (dataType == "N"){
      fields.newMetric()
      .setId(propName)
      .setName(propName)
      .setType(types.NUMBER)
    }

  }
  console.log(fields.build());
  console.log('get schema')
  return { schema: fields.build() };

}

function getData(request){
  var fields = cc.getFields();
  console.log(fields);
  console.log('getdata running');
  // TODO: Create Schema for requested field
  var table = request.configParams.tables;
  var requestedFieldIds = request.fields.map(function(field) {
    return field.name
  });
  var requestedFields = fields.forIds(requestedFieldIds);

  // TODO: Fetch and Parse data from API
  var response = UrlFetchApp.fetch("<api-url>"+"?name="+table);

  var parsedResponse = JSON.parse(response)

  // TODO: Transform parsed data and filter for requested fields
  var rows = responseToRows(requestedFields, parsedResponse)
  return {
    schema: requestedFields.build(),
    rows: rows
  }

}




google-apps-script google-data-studio
1个回答
0
投票

要查看调试跟踪,您只需使用console.log()进行记录,然后在Google Apps脚本仪表板中查看您的日志:

https://script.google.com/home/executions

© www.soinside.com 2019 - 2024. All rights reserved.