La configurazione con passaggi consente a un connettore di completare dinamicamente il connettore basata sulle risposte fornite dall'utente. Ad esempio, la compilazione di una "Città" menu a discesa dopo uno "Stato" l'elenco a discesa è selezionato.
Requisiti
Questa guida presuppone che tu abbia già familiarità con il Connettore della community configurazioni. Per un ripasso, consulta definire la configurazione tramite getConfig.
Panoramica
La configurazione con passaggi consiste in Looker Studio che chiama più getConfig()
e il connettore restituisce ogni volta più domande di configurazione. Ciascuna
la chiamata al numero getConfig()
includerà le risposte dell'utente alle ultime getConfig()
la risposta corretta. Questa procedura continua a condizione che tu restituisca una risposta con
setIsSteppedConfig(true)
.
Linee guida
- Imposta
setIsSteppedConfig(true)
fino al completamento della configurazione - Looker Studio chiamerà ripetutamente
getConfig()
a condizione chesetIsSteppedConfig(true)
è impostato.Al termine della configurazione, La rispostagetConfig()
deve impostaresetIsSteppedConfig(false)
. - Imposta
isDynamic(true)
per le domande di configurazione che determinano le domande successive - Se un campo contrassegnato come
isDynamic
viene modificato dall'utente, le successive le voci di configurazione verranno cancellate nella UI e l'utente dovrà e configurare tutti i passaggi successivi. Questo aiuta a garantire che gli utenti non ti inviino un configurazione non valida. - Le risposte fornite dall'utente verranno trasmesse tramite
request.configParams
. request.configParams
saràundefined
per i primigetConfig()
richiesta al connettore. Le richieste successive includeranno risposte fornite dall'utente come un oggetto basato sugli ID configurazione oundefined
se l'utente non fornisce risposte.Esempio:
{ state: 'CA', city: 'mountain_view' }
- Le configurazioni sono cumulative
È necessario aggiungere nuove domande di configurazione dopo quelle esistenti.
- Le configurazioni non possono essere mutate
Se in precedenza è stata fatta una domanda di configurazione, dovrebbe essere presente per per tutte le chiamate successive. Ad esempio, se è stata posta la domanda di configurazione A nella prima chiamata a
getConfig()
, A deve essere incluso in tutte le chiamate future diverse.- Le configurazioni sono idempotenti
Le chiamate a
getConfig()
con lo stessoconfigParams
dovrebbero restituire lo stesso configurazione.- Impossibile eseguire l'override dei parametri dinamici
Looker Studio non consente ai parametri di configurazione dinamica con override.
Configurazioni di esempio
Menu a discesa dinamici
Questa prima domanda chiede all'utente di selezionare uno stato, poi fornisce dinamicamente un menu a discesa della città in base allo stato selezionato.
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();
}
Percorsi di ramificazione
Verrà visualizzata un'ulteriore domanda se il "Paese" selezionato è "USA".
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();
}