Adımlı Yapılandırma

Adımlı yapılandırma, bir bağlayıcının kullanıcı tarafından sağlanan yanıtlara göre bağlayıcı yapılandırmasını dinamik olarak doldurmasına olanak tanır. Örneğin, "Eyalet" açılır listesi seçildikten sonra "Şehir" açılır listesini doldurmak.

Koşullar

Bu kılavuzda, Topluluk Bağlayıcısı yapılandırmaları hakkında bilgi sahibi olduğunuz varsayılmaktadır. Bilgilerinizi tazelemek için getConfig aracılığıyla yapılandırmayı tanımlama başlıklı makaleyi inceleyin.

Genel bakış

Adım adım yapılandırma, Looker Studio'nun getConfig() öğesini birden çok kez çağırmasını ve bağlayıcınızın her seferinde daha fazla yapılandırma sorusu döndürmesini içerir. Her getConfig() çağrısı, kullanıcının son getConfig() yanıtına verdiği yanıtları içerir. setIsSteppedConfig(true) ile bir yanıt verdiğiniz sürece bu süreç devam eder.

Yönergeler

Yapılandırma tamamlanana kadar setIsSteppedConfig(true) adlı cihazı ayarlayın
Looker Studio, setIsSteppedConfig(true) ayarlandığı sürece getConfig() yöntemini tekrar tekrar çağırır.Yapılandırma tamamlandıktan sonra son getConfig() yanıtı setIsSteppedConfig(false) olarak ayarlanır.
Sonraki soruları belirleyen yapılandırma soruları için isDynamic(true) değerini ayarlayın
isDynamic işaretli bir alan kullanıcı tarafından değiştirilirse sonraki yapılandırma girişleri kullanıcı arayüzünde silinir ve kullanıcının sonraki tüm adımları yapılandırması gerekir. Bu, kullanıcıların size geçersiz bir yapılandırma göndermemelerine yardımcı olur.
Kullanıcı tarafından sağlanan yanıtlar request.configParams üzerinden iletilir.

Bağlayıcınıza gönderilen ilk getConfig() isteği için request.configParams değeri undefined olur. Sonraki istekler, kullanıcı tarafından sağlanan yanıtları yapılandırma kimlikleri tarafından anahtarlanmış bir nesne olarak veya kullanıcı herhangi bir yanıt sağlamazsa undefined içerir.

Örnek:

{
  state: 'CA',
  city: 'mountain_view'
}
Yapılandırmalar eklemelidir

Mevcut yapılandırma sorularından sonra yeni yapılandırma soruları eklenmelidir.

Yapılandırmalar değiştirilemez

Daha önce bir yapılandırma sorusu sorulmuşsa bu soru sonraki tüm çağrılar için bulunmalıdır. Örneğin, getConfig() için yapılan ilk çağrıda A yapılandırma sorusu sorulduysa gelecekteki tüm yanıtlara A eklenmelidir.

Yapılandırmalar eşgüçlü

Aynı configParams ile getConfig() için yapılan çağrılar aynı yapılandırmayı döndürecektir.

Dinamik parametreler geçersiz kılınamaz

Looker Studio, dinamik yapılandırma parametrelerinin geçersiz kılınmasına izin vermez.

Örnek yapılandırmalar

Dinamik açılır listeler

Bu ilk soru, kullanıcıdan bir eyalet seçmesini ister, ardından seçilen eyalete göre dinamik olarak bir şehir açılır listesi sağlar.

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();
}

Dallara Ayırma Yolları

Seçilen "Ülke" "ABD" ise ek bir soru sorulur.

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();
}