La propiedad de campo formula
se puede usar para agregar campos calculados al esquema de tu conector.
La lista completa de funciones que se admiten en las fórmulas se puede encontrar en la 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 $
. Por ejemplo, si tu campo ID
es t_celsius
, se debe denominar $t_celsius
en la fórmula.
Type
para campos calculados
Type
es compatible con los campos calculados, pero el resultado de la fórmula debe coincidir 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 incluye una agregación, aggregation
se debe establecer en AUTO
. Verifica la columna type
en la lista de funciones para ver si una función muestra una agregación. Si tu fórmula no implica una agregación, establécela en 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() };
}