如何获得我的社区连接器以触发Datastudio中的“日期范围维”?

时间:2019-09-26 17:03:29

标签: google-data-studio

我已经按照Community Connector Codelab创建了一个正常工作的社区连接器,但是当在datastudio中选择它作为数据源时,如何获得一个“日期范围维”呢?

这是我的数据源的样子(没有“日期范围维”):

enter image description here

这是带有“日期范围维”的数据源的示例:

Data source with 'Date Range Dimension'

我不明白我在想什么。连接器从getFields()返回日期尺寸

  fields.newDimension()
    .setId('date_created')
    .setType(types.YEAR_MONTH_DAY)
    .setGroup('Date');

我们也在getConfig中将所需的日期范围设置为true:

function getConfig(request) {
  var cc = DataStudioApp.createCommunityConnector();
  var config = cc.getConfig();

  config.newInfo()
    .setId('instructions')
    .setText('Use the date range to specify what activities to return.');

  config.setDateRangeRequired(true);

  return config.build();
}

这是getSchema(),基本上所有内容都已从codelab抢走了

function getSchema(request) {
  var fields = getFields(request).build();
  return { schema: fields };
}

function getFields(request) {
  var cc = DataStudioApp.createCommunityConnector();
  var fields = cc.getFields();
  var types = cc.FieldType;
  var aggregations = cc.AggregationType;

  fields.newDimension()
    .setId('id')
    .setType(types.NUMBER);

  fields.newDimension()
    .setId('owner_id')
    .setType(types.NUMBER);

  fields.newDimension()
    .setId('subject')
    .setType(types.TEXT);

  fields.newDimension()
    .setId('medium')
    .setType(types.TEXT);

  fields.newDimension()
    .setId('date_logged')
    .setType(types.YEAR_MONTH_DAY);

  fields.newDimension()
    .setId('date_started')
    .setType(types.YEAR_MONTH_DAY);

  fields.newDimension()
    .setId('date_ended')
    .setType(types.YEAR_MONTH_DAY);

  fields.newMetric()
    .setId('billable')
    .setType(types.NUMBER)
    .setAggregation(aggregations.SUM);

  fields.newMetric()
    .setId('nonbillable')
    .setType(types.NUMBER)
    .setAggregation(aggregations.SUM);

 fields.newMetric()
    .setId('time_allocation')
    .setType(types.NUMBER)
    .setAggregation(aggregations.SUM);

  fields.newMetric()
    .setId('scheduled_duration')
    .setType(types.NUMBER)
    .setAggregation(aggregations.SUM);

  return fields;
}

干杯。

2 个答案:

答案 0 :(得分:0)

如果调用config.setDateRangeRequired(true),则日期范围维选择器将不可见。这是由于所需日期范围是如何工作的。

如果您的数据源在图表上具有不同的日期范围(选择器的用途),则应该设置config.setDateRangeRequired(false),选择器将出现。

答案 1 :(得分:0)

您不必检查是否选择了日期范围。如果未选择数据范围,则默认为1个月日期范围。因此,您只需将开始日期和结束日期保存到变量中即可。

var sinceDate = request.dateRange.startDate;
var untilDate = request.dateRange.endDate;

为了以后更好地理解,您始终可以console.log(request)并查看请求的内容。