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

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

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

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

खास जानकारी

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

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

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

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

उदाहरण:

{
  state: 'CA',
  city: 'mountain_view'
}
कॉन्फ़िगरेशन अलग-अलग तरह के होते हैं

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

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

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

कॉन्फ़िगरेशन इस तरह के नहीं हैं

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

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

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

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

अगर चुना गया "देश" "अमेरिका" है, तो इससे एक और सवाल पूछा जाएगा.

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