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