استخدام الحقول المحسوبة في المخطط

يمكن استخدام خاصية الحقل 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() };
}