Stufenkonfiguration

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, solange setIsSteppedConfig(true) ist festgelegt.Sobald die Konfiguration abgeschlossen ist, Die Antwort getConfig() sollte setIsSteppedConfig(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 ist undefined für die ersten getConfig() an den Connector senden. Nachfolgende Ersuchen umfassen den vom Nutzer bereitgestellte Antworten als Objekt, das durch die Konfigurations-IDs oder undefined, 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 derselben configParams 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();
}