Mit der stufenweisen Konfiguration kann ein Connector den Connector dynamisch füllen Konfiguration basierend auf den Antworten der Nutzer. Beispiel: Das Ausfüllen einer Stadt nach einem „State“ (Bundesstaat) Drop-down-Menü ausgewählt ist.
Voraussetzungen
In diesem Leitfaden wird davon ausgegangen, dass Sie mit Community-Connector bereits vertraut sind. Konfigurationen. Frischen Sie Ihr Wissen unter Konfiguration über getConfig definieren auf.
Übersicht
Bei der schrittbasierten Konfiguration wird in Looker Studio mehrere getConfig()
-mal aufgerufen
und der Connector gibt jedes Mal weitere Konfigurationsfragen zurück. Jedes
Der Aufruf von getConfig()
enthält die Antworten des Nutzers auf die letzte getConfig()
Antwort. Dieser Prozess wird fortgesetzt, solange Sie eine Antwort mit
setIsSteppedConfig(true)
Richtlinien
- Legen Sie
setIsSteppedConfig(true)
fest, bis die Konfiguration abgeschlossen ist - In Looker Studio wird
getConfig()
wiederholt aufgerufen, solangesetIsSteppedConfig(true)
ist festgelegt.Sobald die Konfiguration abgeschlossen ist, Die AntwortgetConfig()
solltesetIsSteppedConfig(false)
festlegen. - Legen Sie
isDynamic(true)
für Konfigurationsfragen fest, die spätere Fragen bestimmen - Wenn ein Feld mit der Kennzeichnung
isDynamic
vom Nutzer geändert wird, werden nachfolgende Konfigurationseinträge werden in der UI gelöscht und der Nutzer muss Folgendes tun: alle nachfolgenden Schritte konfigurieren. So wird sichergestellt, dass Ihnen keine ungültige Konfiguration. - Von Nutzern bereitgestellte Antworten werden über
request.configParams
weitergeleitet. request.configParams
istundefined
für die erstengetConfig()
an den Connector senden. Nachfolgende Ersuchen umfassen den vom Nutzer bereitgestellte Antworten als Objekt, das durch die Konfigurations-IDs oderundefined
, wenn der Nutzer keine Antwort gibt.Beispiel:
{ state: 'CA', city: 'mountain_view' }
- Konfigurationen sind additiv
Neue Fragen zur Konfiguration sollten hinter bestehenden Fragen hinzugefügt werden.
- Konfigurationen können nicht geändert werden
Wenn zuvor eine Konfigurationsfrage gestellt wurde, sollte diese für alle nachfolgenden Aufrufe. Wenn beispielsweise die Frage A zur Konfiguration im ersten Aufruf von
getConfig()
sollte A bei allen zukünftigen Antworten.- Konfigurationen sind idempotent
Aufrufe von
getConfig()
mit derselbenconfigParams
sollten dasselbe Ergebnis liefern. Konfiguration.- Dynamische Parameter können nicht überschrieben werden
In Looker Studio dürfen dynamische Konfigurationsparameter nicht überschrieben.
Beispielkonfigurationen
Dynamische Drop-down-Menüs
Die erste Frage fordert den Nutzer auf, einen Status auszuwählen. ein Drop-down-Menü für die Stadt für den ausgewählten Bundesstaat.
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();
}
Verzweigungspfade
Es wird eine zusätzliche Frage gestellt, wenn das ausgewählte Land ist „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();
}