Usar campos calculados no esquema

A propriedade de campo formula pode ser usada para adicionar campos calculados ao esquema do conector.

A relação completa de funções compatíveis com as fórmulas fica na lista de funções. Também disponibilizamos outras documentações para:

Ao fazer referência ao ID de outro campo em uma fórmula, use o caractere $ como prefixo. Por exemplo, se o campo ID for t_celsius, ele precisará ser chamado de $t_celsius na fórmula.

Type em campos calculados

Type é compatível com campos calculados, mas os resultados da fórmula precisam corresponder ao formato esperado do Type em questão.

Por exemplo, na fórmula:

"HYPERLINK($url, $description)"
    

Type precisa ser HYPERLINK.

aggregation em campos calculados

Se a fórmula envolve uma agregação, aggregation precisa ser definido como AUTO. Consulte a coluna type na lista de funções para ver se uma função retorna uma agregação. Caso a fórmula não envolva uma agregação, defina-a como NONE.

Fórmula aggregation
"SUM($cost) / SUM($units)" AUTO
"$cost + $units" NONE

Exemplos de campos calculados no 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() };
    }