La configuración escalonada permite que un conector propague el contenido de forma dinámica. basada en las respuestas proporcionadas por el usuario. Por ejemplo, propagar una "Ciudad" el menú desplegable después de “State” está seleccionado el menú desplegable.
Requisitos
En esta guía, se asume que ya tienes conocimientos sobre el conector de la comunidad parámetros de configuración. Consulta cómo definir la configuración a través de getConfig para actualizar.
Descripción general
La configuración escalonada consiste en que Looker Studio llame a getConfig()
varias veces
veces, y tu conector devolverá más preguntas de configuración cada vez. Cada
La llamada a getConfig()
incluirá las respuestas del usuario a la última getConfig()
respuesta. Este proceso continúa siempre que devuelvas una respuesta con
setIsSteppedConfig(true)
Lineamientos
- Establece
setIsSteppedConfig(true)
hasta que se complete la configuración - Looker Studio llamará reiteradamente a
getConfig()
siempre que Se configurasetIsSteppedConfig(true)
.Una vez que se completa la configuración, La respuesta degetConfig()
debe establecersetIsSteppedConfig(false)
. - Establece
isDynamic(true)
para preguntas de configuración que determinan preguntas posteriores. - Si el usuario modifica un campo marcado como
isDynamic
, ocurrirá lo siguiente: las entradas de configuración se borrarán de la IU, y el usuario deberá configurar todos los pasos posteriores. De esta forma, te aseguras de que los usuarios no te envíen configuración no válida. - Las respuestas proporcionadas por el usuario se pasarán a través de
request.configParams
. request.configParams
seráundefined
durante los primerosgetConfig()
. solicitud a tu conector. Las solicitudes posteriores incluirán el las respuestas proporcionadas por el usuario como un objeto con clave de los IDs de configuración o Esundefined
si el usuario no proporciona ninguna respuesta.Ejemplo:
{ state: 'CA', city: 'mountain_view' }
- Las configuraciones son aditivas
Se deben agregar preguntas de configuración nuevas después de las existentes.
- No se pueden mutar las configuraciones
Si se hizo una pregunta de configuración anteriormente, debe estar presente para todas las llamadas posteriores. Por ejemplo, si se hizo la pregunta de configuración A En la primera llamada a
getConfig()
, se debe incluir A en todas las llamadas de respuestas ante incidentes.- Las configuraciones son idempotentes
Las llamadas a
getConfig()
con el mismoconfigParams
deben mostrar el mismo resultado. configuración.- Los parámetros dinámicos no se pueden anular
Looker Studio no permitirá que se borren los parámetros de configuración anulado.
Configuración de ejemplo
Menús desplegables dinámicos
En la primera pregunta, se solicita al usuario que seleccione un estado, y luego se proporciona, de forma dinámica, un menú desplegable de ciudad según el estado seleccionado.
var cc = DataStudioApp.createCommunityConnector();
function optionsForState(state) {
switch (state) {
case "IL": {
return [["Chicago", "chicago"], ["Springfield", "springfield"]];
}
case "CA": {
return [["Mountain View", "mountain_view"], ["Los Angeles", "los_angeles"]];
}
default: {
cc.newUserError()
.setText('You must either select "IL" or "CA"')
.throwException();
}
}
}
function getConfig(request) {
var configParams = request.configParams;
var isFirstRequest = configParams === undefined;
var config = cc.getConfig();
if (isFirstRequest) {
config.setIsSteppedConfig(true);
}
config.newSelectSingle()
.setId("state")
.setName("State")
// Set isDynamic to true so any changes to State will clear the city
// selections.
.setIsDynamic(true)
.addOption(config.newOptionBuilder().setLabel("Illinois").setValue("IL"))
.addOption(config.newOptionBuilder().setLabel("California").setValue("CA"));
if (!isFirstRequest) {
var city = config.newSelectSingle()
.setId("city")
.setName("City");
var cityOptions = optionsForState(configParams.state);
cityOptions.forEach(function(labelAndValue) {
var cityLabel = labelAndValue[0];
var cityValue = labelAndValue[1];
city.addOption(config.newOptionBuilder().setLabel(cityLabel).setValue(cityValue));
});
}
return config.build();
}
Rutas con ramas
Se hará una pregunta adicional si el "País" seleccionado es "EE.UU.".
var cc = DataStudioApp.createCommunityConnector();
function getConfig(request) {
var configParams = request.configParams;
var isFirstRequest = configParams === undefined;
var config = cc.getConfig();
if (isFirstRequest) {
config.setIsSteppedConfig(true);
}
config
.newSelectSingle()
.setId('country')
.setName('Country')
// Set isDynamic to true so any changes to Country will clear the state
// selections.
.setIsDynamic(true)
.addOption(config.newOptionBuilder().setLabel('United States').setValue('USA'))
.addOption(config.newOptionBuilder().setLabel('Canada').setValue('CA'));
if (!isFirstRequest) {
// validate a valid value was selected for configParams.country
if (configParams.country === undefined) {
cc.newUserError().setText('You must choose a country.').throwException();
}
switch (configParams.country) {
case 'USA': {
config
.newSelectSingle()
.setId('state')
.setName('State')
.addOption(config.newOptionBuilder().setLabel('New York').setValue('NY'))
.addOption(config.newOptionBuilder().setLabel('Calfornia').setValue('CA'));
break;
}
case 'CA': {
// No additional configuration is needed for Canada.
break;
}
default: {
cc.newUserError()
.setText('You must either select "CA" or "USA"')
.throwException();
}
}
}
return config.build();
}