स्टेप्ड कॉन्फ़िगरेशन

स्टेप्ड कॉन्फ़िगरेशन की मदद से कनेक्टर, कनेक्टर को डाइनैमिक तौर पर अपने-आप जानकारी भर देता है का कॉन्फ़िगरेशन, उपयोगकर्ता से मिले जवाबों के आधार पर किया गया है. उदाहरण के लिए, किसी "शहर" की जानकारी डालना "राज्य" के बाद ड्रॉपडाउन ड्रॉपडाउन चुना गया.

ज़रूरी शर्तें

यह गाइड मान लेती है कि आपको कम्यूनिटी कनेक्टर के बारे में पहले से जानकारी है कॉन्फ़िगरेशन. रीफ़्रेशर के लिए, getConfig से कॉन्फ़िगरेशन तय करना लेख पढ़ें.

खास जानकारी

स्टेप्ड कॉन्फ़िगरेशन में Looker Studio की मदद से, एक से ज़्यादा getConfig() को कॉल किया जाता है बार है और आपका कनेक्टर हर बार कॉन्फ़िगरेशन से जुड़े ज़्यादा सवाल दिखा रहा है. हर getConfig() को किए गए कॉल में, पिछले getConfig() के लिए उपयोगकर्ता के जवाब शामिल होंगे जवाब. यह प्रक्रिया तब तक जारी रहती है, जब तक आप setIsSteppedConfig(true).

दिशा-निर्देश

कॉन्फ़िगरेशन पूरा होने तक setIsSteppedConfig(true) सेट करें
Looker Studio तब तक बार-बार getConfig() को कॉल करेगा, जब तक setIsSteppedConfig(true) सेट है.कॉन्फ़िगरेशन पूरा होने के बाद, फ़ाइनल getConfig() जवाब setIsSteppedConfig(false) सेट होना चाहिए.
कॉन्फ़िगरेशन से जुड़े सवालों के लिए, isDynamic(true) को सेट करें. इन सवालों के आधार पर, बाद में पूछे जाने वाले सवाल तय किए जाएंगे
अगर isDynamic के तौर पर मार्क किए गए फ़ील्ड में उपयोगकर्ता ने बदलाव किया है, तो बाद में यूज़र इंटरफ़ेस (यूआई) में कॉन्फ़िगरेशन एंट्री मिटा दी जाएंगी. इसके बाद, उपयोगकर्ता को बाद के सभी चरणों को कॉन्फ़िगर करना होगा. इससे यह सुनिश्चित करने में मदद मिलती है कि उपयोगकर्ता अमान्य कॉन्फ़िगरेशन.
उपयोगकर्ता के दिए गए जवाब, request.configParams के ज़रिए पास किए जाएंगे.

request.configParams, पहले getConfig() के लिए undefined होगी का अनुरोध किया है. बाद के अनुरोधों में उपयोगकर्ता से मिले जवाबों को कॉन्फ़िगरेशन आईडी के हिसाब से किसी ऑब्जेक्ट के तौर पर सेट करें या अगर उपयोगकर्ता कोई जवाब नहीं देता है, तो undefined.

उदाहरण:

{
  state: 'CA',
  city: 'mountain_view'
}
नए और बेहतर कॉन्फ़िगरेशन को एक साथ जोड़ा जा सकता है

नए कॉन्फ़िगरेशन सवालों को मौजूदा सवालों के बाद जोड़ा जाना चाहिए.

कॉन्फ़िगरेशन में बदलाव नहीं किया जा सकता

अगर कॉन्फ़िगरेशन से जुड़ा कोई सवाल पहले पूछा गया था, तो वह इस क्वेरी के लिए मौजूद होना चाहिए को ब्लॉक कर दिया जाएगा. उदाहरण के लिए, अगर कॉन्फ़िगरेशन सवाल A पूछा गया था getConfig() को किए गए पहले कॉल में, आने वाले समय में A को शामिल किया जाना चाहिए जवाब.

कॉन्फ़िगरेशन अलग-अलग हैं

getConfig() पर किए गए configParams वाले कॉल के डेटा का रिटर्न पहले जैसा ही होना चाहिए कॉन्फ़िगरेशन.

डाइनैमिक पैरामीटर को बदला नहीं जा सकता

Looker Studio, डाइनैमिक कॉन्फ़िगरेशन पैरामीटर को ओवरराइड किया गया.

कॉन्फ़िगरेशन के उदाहरण

डाइनैमिक ड्रॉपडाउन

यह पहला सवाल उपयोगकर्ता को राज्य चुनने के लिए कहता है. इसके बाद, यह डाइनैमिक तौर पर चुने गए राज्य के आधार पर शहर का ड्रॉपडाउन.

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

ब्रांचिंग पाथ

अगर आपने "देश" चुना है, तो इससे एक और सवाल पूछा जाएगा "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();
}