La propiedad de campo formula se puede usar para agregar campos calculados a tu
esquema del conector.
Puedes encontrar la lista completa de funciones admitidas en las fórmulas en Lista de funciones. Además, hay documentación adicional sobre lo siguiente:
Cuando hagas referencia al ID de otro campo en una fórmula, agrégale el prefijo $. Para
Por ejemplo, si tu campo ID es t_celsius, debería denominarse como
$t_celsius en la fórmula.
Type para campos calculados
Type es compatible con campos calculados, pero el resultado de la fórmula debe
coincida con el formato esperado para ese Type.
Por ejemplo, para la fórmula:
"HYPERLINK($url, $description)"
El Type debe ser HYPERLINK.
aggregation para campos calculados
Si tu fórmula implica una agregación, aggregation debe configurarse como
AUTO Revisa la columna type en la Lista de funciones para ver si una función
devuelve una agregación. Si tu fórmula no implica una agregación, configúrala
a NONE.
| Formula | aggregation |
|---|---|
"SUM($cost) / SUM($units)" |
AUTO |
"$cost + $units" |
NONE |
Ejemplos de campos calculados en el 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() };
}