استفاده از فیلدهای محاسبه شده در طرحواره

از ویژگی فیلد formula می توان برای افزودن فیلدهای محاسبه شده به طرح کانکتور خود استفاده کرد.

لیست کامل توابعی که در فرمول ها پشتیبانی می شوند را می توان در لیست توابع یافت. علاوه بر این، اسناد بیشتری برای موارد زیر وجود دارد:

وقتی به ID فیلد دیگری در فرمول ارجاع می دهید، پیشوند آن را با یک $ قرار دهید. به عنوان مثال، اگر ID فیلد شما t_celsius است، باید در فرمول به عنوان $t_celsius اشاره شود.

برای فیلدهای محاسبه شده Type

Type برای فیلدهای محاسبه شده پشتیبانی می شود، اما خروجی فرمول باید با قالب مورد انتظار برای آن Type مطابقت داشته باشد.

به عنوان مثال، برای فرمول:

"HYPERLINK($url, $description)"

Type باید HYPERLINK باشد.

aggregation برای فیلدهای محاسبه شده

اگر فرمول شما شامل یک تجمیع است، aggregation باید روی AUTO تنظیم شود. ستون type در لیست توابع بررسی کنید تا ببینید آیا یک تابع یک تجمیع را برمی گرداند یا خیر. اگر فرمول شما شامل یک تجمیع نیست، آن را روی NONE تنظیم کنید.

فرمول aggregation
"SUM($cost) / SUM($units)" AUTO
"$cost + $units" NONE

نمونه هایی از فیلدهای محاسبه شده در طرحواره

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

  fields.newDimension()
      .setId('date')
      .setName('Date')
      .setDescription('Date of measurement')
      .setType(types.YEAR_MONTH_DAY);

  fields.newMetric()
      .setId('t_celsius')
      .setName('Temperature (Celsius)')
      .setDescription('Temperature in Celsius')
      .setType(types.NUMBER)
      .setAggregation(aggregations.NONE);

  fields.newMetric()
      .setId('t_fahrenheit')
      .setName('Temperature (Fahrenheit)')
      .setDescription('Temperature in Fahrenheit')
      .setFormula('$t_celsius / 5 * 9 + 32')
      .setType(types.NUMBER)
      .setAggregation(aggregations.NONE);

  fields.newMetric()
      .setId('average_temperature (Celsius)')
      .setName('Average Temperature (Celsius)')
      .setDescription('Temperature in Fahrenheit')
      .setFormula('AVG($t_celsius)')
      .setType(types.NUMBER)
      .setAggregation(aggregations.AUTO);

  fields.newMetric()
      .setId('average_temperature (Celsius)')
      .setName('Average Temperature (Celsius)')
      .setDescription('Temperature in Fahrenheit')
      .setFormula('AVG($t_celsius / 5 * 9 + 32)')
      .setType(types.NUMBER)
      .setAggregation(aggregations.AUTO);

  fields.newDimension()
      .setId('feels_like')
      .setName('Feels Like')
      .setDescription('What it feels like outside.')
      .setFormula('CASE WHEN $t_celsius < 0 THEN "Freezing" WHEN $t_celsius > 40 THEN "Too warm" ELSE "Not bad" END')
      .setType(types.TEXT);

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