Basamaklı yapılandırma, bağlayıcının bağlayıcıyı dinamik olarak doldurmasına olanak tanır kullanıcı tarafından sağlanan yanıtlara göre yapılandırmayı öğretir. Örneğin, bir "Şehir" dolduruluyor "Eyalet"ten sonra açılır menü seçili olduğundan emin olun.
Şartlar
Bu kılavuzda, Topluluk Bağlayıcısı hakkında zaten bilgi sahibi olduğunuz varsayılır yapılandırmanın üç yolu vardır. Bilgilerinizi tazelemek için getConfig aracılığıyla yapılandırmayı tanımlama başlıklı makaleye göz atın.
Genel Bakış
Basamaklı yapılandırma, Looker Studio'nun getConfig()
birden çok çağrısından oluşur
ve bağlayıcınızın her seferinde daha fazla yapılandırma sorusu döndürmesi gerekir. Her biri
getConfig()
çağrısı, kullanıcının son getConfig()
soruya verdiği yanıtları içerecek
tıklayın. Bu işlem,
setIsSteppedConfig(true)
Yönergeler
- Yapılandırma tamamlanana kadar
setIsSteppedConfig(true)
ayarını yapın - Looker Studio, aşağıdaki koşulları karşıladığı sürece
getConfig()
numaralı telefonu tekrar tekrar çağırır.setIsSteppedConfig(true)
ayarlandı.Yapılandırma tamamlandıktan sonra,getConfig()
yanıtısetIsSteppedConfig(false)
olarak ayarlanmalıdı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 kullanıcı arayüzündeki yapılandırma girişleri temizlenir ve yapılandırma adımına geçelim. Bu, kullanıcıların size Geçersiz yapılandırma.- Kullanıcı tarafından sağlanan yanıtlar
request.configParams
üzerinden iletilecek. request.configParams
ilkgetConfig()
içinundefined
olacak isteğini yerine getirir. Sonraki istekler kullanıcı tarafından sağlanan yanıtlar, yapılandırma kimlikleri veya Kullanıcı herhangi bir yanıt vermezseundefined
.Örnek:
{ state: 'CA', city: 'mountain_view' }
- Yapılandırmalar eklemelidir
Yeni yapılandırma soruları mevcut sorulardan sonra eklenmelidir.
- Yapılandırmalar değiştirilemez
Daha önce bir yapılandırma sorusu sorulmuşsa, tüm aramalar. Örneğin, A yapılandırma sorusu sorulursa
getConfig()
için yapılan ilk çağrıda A, ileride yapılacak tüm işlemlere dahil edilmelidir. tıklayın.- Yapılandırmalar önemli
getConfig()
numaralı telefona yapılan aynıconfigParams
ile yapılan aramalar aynı sonucu döndürmelidir yapılandırma.- Dinamik parametreler geçersiz kılınamaz
Looker Studio, dinamik yapılandırma parametrelerinin kullanılmasına izin vermez geçersiz kılındı.
Örnek yapılandırmalar
Dinamik açılır listeler
Bu ilk soruda kullanıcıdan bir eyalet seçmesi istenir ve ardından, seçilen eyalete göre şehir açılır listesi.
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ı
"Ülke" seçilmişse bu bölümde ek bir soru sorulur "ABD"dir.
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();
}