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