Usa campos calculados en el esquema

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

La lista completa de funciones que se admiten en las fórmulas se puede encontrar en la 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 $. Por ejemplo, si tu campo ID es t_celsius, se debe denominar $t_celsius en la fórmula.

Type para campos calculados

Type es compatible con los campos calculados, pero el resultado de la fórmula debe coincidir 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 incluye una agregación, aggregation se debe establecer en AUTO. Verifica la columna type en la lista de funciones para ver si una función muestra una agregación. Si tu fórmula no implica una agregación, establécela en 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() };
}