首页 > 解决方案 > Google 数据洞察连接器 getData 缺少字段

问题描述

我正在尝试为 HubSpot 创建一个数据连接器,并且一直在努力解决这个问题。据我所知,我做的一切都是正确的,但getData调用中的请求对象缺少我在架构中指定的字段之一。

当我检查日志时,getSchema正在返回两个字段,但由于某种原因,我似乎只得到一个。我在下面包含了代码和日志:

function getData(request) {
  console.log("ORIGINAL FIELDS FOR GETDATA(): " + JSON.stringify(request.fields));

  switch (request.configParams.apiEndPoint) {
    case "sources":
      var url = API_URL + "/analytics/v2/reports/totals/summarize/daily?start=" + startYYYYMMDD + "&end=" + endYYYYMMDD;   
      break;
    case "stages":
      console.info("Fetching for Stages API");
      var url = API_URL + "/deals/v1/pipelines/default";
      getPipelineData(request, url);
      break;
  }
}

function getPipelineData(request, endPoint) {
  var header_row = [];

  console.log("FIELDS: " + JSON.stringify(request));

  request.fields.forEach(function(field) {
    for (var i = 0; i < mySchema.length; i++) {
      console.log("for loop i: " + i);
      console.log("mySchema[i]: " + JSON.stringify(mySchema[i]));

      if (mySchema[i].name === field.name) {
        console.log("Matched " + mySchema[i].name + " to " + field.name);

        header_row.push(mySchema[i]);
      } else {
        console.error("Did not match " + mySchema[i].name + " to " + field.name);
      }
    }
  });

您可以在日志中看到关于getSchema返回 2 个字段“label”和“stageId”的第 5 行。然而,日志中的下一行显示正在使用的对象getData只有一个字段“标签”。

在我的一生中,我无法弄清楚我在哪里出错并且真的可以使用一些帮助!

这是日志输出的链接:https ://www.screencast.com/t/rpD7oz5ZuDdv

标签: google-apps-scriptgoogle-data-studiohubspot

解决方案


getSchema() 在数据源初始化/配置期间被调用。它为所有字段调用,通常在您创建数据源时执行一次。

每当您在仪表板上创建/查看图表元素时都会调用 getData(),并且仅针对该图表元素中的特定字段调用。此字段列表将在 request.fields 中传递。

工作流程图可能会有所帮助。

在您的日志中,第 3 行和第 4 行发生在您创建数据源时。第 5 行发生在您向仪表板添加图表元素时(并且该图表元素只有label字段)。


推荐阅读