Utiliser des champs calculés dans un schéma

La propriété de champ formula permet d'ajouter des champs calculés à votre schéma du connecteur.

La liste complète des fonctions prises en charge dans les formules est disponible à l’adresse Liste des fonctions. Vous trouverez également d'autres documents sur les sujets suivants:

Lorsque vous faites référence au ID d'un autre champ dans une formule, ajoutez le préfixe $. Pour Par exemple, si votre champ ID est t_celsius, il doit être désigné comme suit : $t_celsius dans la formule.

Type pour les champs calculés

La fonction Type est compatible avec les champs calculés, mais le résultat de la formule doit au format attendu pour ce Type.

Par exemple, pour la formule:

"HYPERLINK($url, $description)"

L'état Type doit être défini sur HYPERLINK.

aggregation pour les champs calculés

Si votre formule implique une agrégation, aggregation doit être défini sur AUTO Consultez la colonne type dans la liste des fonctions pour voir si une fonction renvoie une agrégation. Si votre formule n'implique pas d'agrégation, définissez-la à NONE.

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

Exemples de champs calculés dans un schéma

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