Usa campos calculados en el esquema

La propiedad de campo formula se puede usar para agregar campos calculados a tu esquema del conector.

Puedes encontrar la lista completa de funciones admitidas en las fórmulas en Lista de funciones. Además, hay documentación adicional sobre lo siguiente:

Cuando hagas referencia al ID de otro campo en una fórmula, agrégale el prefijo $. Para Por ejemplo, si tu campo ID es t_celsius, debería denominarse como $t_celsius en la fórmula.

Type para campos calculados

Type es compatible con campos calculados, pero el resultado de la fórmula debe coincida con el formato esperado para ese Type.

Por ejemplo, para la fórmula:

"HYPERLINK($url, $description)"

El Type debe ser HYPERLINK.

aggregation para campos calculados

Si tu fórmula implica una agregación, aggregation debe configurarse como AUTO Revisa la columna type en la Lista de funciones para ver si una función devuelve una agregación. Si tu fórmula no implica una agregación, configúrala a NONE.

Formula aggregation
"SUM($cost) / SUM($units)" AUTO
"$cost + $units" NONE

Ejemplos de campos calculados en el esquema

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() };
}