Utilizzo dei campi calcolati nello schema

La proprietà del campo formula può essere utilizzata per aggiungere campi calcolati allo schema del connettore.

L'elenco completo delle funzioni supportate nelle formule è disponibile in Elenco funzioni. È inoltre disponibile ulteriore documentazione relativa a:

Quando fai riferimento al ID di un altro campo in una formula, aggiungi il prefisso $. Ad esempio, se il campo ID è t_celsius, dovrebbe essere indicato come $t_celsius nella formula.

Type per i campi calcolati

Type è supportato per i campi calcolati, ma l'output della formula deve corrispondere al formato previsto per Type.

Ad esempio, per la formula:

"HYPERLINK($url, $description)"

Il valore Type deve essere HYPERLINK.

aggregation per i campi calcolati

Se la formula prevede un'aggregazione, aggregation deve essere impostato su AUTO. Controlla la colonna type nell'elenco di funzioni per vedere se una funzione restituisce un'aggregazione. Se la formula non prevede un'aggregazione, impostala su NONE.

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

Esempi di campi calcolati nello schema

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