Utiliser des champs calculés dans un schéma

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

La liste complète des fonctions compatibles avec les formules est disponible sur la page Liste des fonctions. Vous trouverez également d'autres documents sur les sujets suivants:

Lorsque vous faites référence à l'élément ID d'un autre champ dans une formule, ajoutez le préfixe $. Par exemple, si votre champ ID est défini sur t_celsius, il doit être désigné par $t_celsius dans la formule.

Type pour les champs calculés

Type est compatible avec les champs calculés, mais le résultat de la formule doit correspondre 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 sur NONE.

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

Exemples de champs calculés dans le 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() };
}