我已经按照Community Connector Codelab创建了一个正常工作的社区连接器,但是当在datastudio中选择它作为数据源时,如何获得一个“日期范围维”呢?
这是我的数据源的样子(没有“日期范围维”):
这是带有“日期范围维”的数据源的示例:
我不明白我在想什么。连接器从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;
}
干杯。
答案 0 :(得分:0)
如果调用config.setDateRangeRequired(true)
,则日期范围维选择器将不可见。这是由于所需日期范围是如何工作的。
如果您的数据源在图表上具有不同的日期范围(选择器的用途),则应该设置config.setDateRangeRequired(false)
,选择器将出现。
答案 1 :(得分:0)
您不必检查是否选择了日期范围。如果未选择数据范围,则默认为1个月日期范围。因此,您只需将开始日期和结束日期保存到变量中即可。
var sinceDate = request.dateRange.startDate;
var untilDate = request.dateRange.endDate;
为了以后更好地理解,您始终可以console.log(request)并查看请求的内容。