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ürecegetConfig()
yöntemini tekrar tekrar çağırır.Yapılandırma tamamlandıktan sonra songetConfig()
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çinrequest.configParams
değeriundefined
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ğlamazsaundefined
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
ilegetConfig()
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();
}