步驟設定

步驟設定可讓連接器動態填入連接器 建立 AI 開發原則審查與設定例如:填入「城市」 「狀態」後方的下拉式選單下拉式選單

需求條件

本指南假設您已熟悉「社群連接器」 儲存空間設定如需複習,請參閱透過 getConfig 定義設定

總覽

經過階梯的設定,包含呼叫 getConfig() 多個 Looker Studio 的 Looker Studio 時,連接器每次都會傳回更多設定問題。每項 呼叫 getConfig() 時會包含使用者上次對 getConfig() 的回答 回應。只要您以 setIsSteppedConfig(true)

指南規範

設定 setIsSteppedConfig(true),直到設定完成為止
只要達成條件的預測條件如下,Looker Studio 就會重複呼叫 getConfig() setIsSteppedConfig(true) 已設定完成。設定完成後,最後的 getConfig() 回應應設定 setIsSteppedConfig(false)
針對設定問題設定 isDynamic(true),用於決定後續問題
如果使用者修改標示 isDynamic 的欄位,則接下來 系統會清除使用者介面的設定項目,使用者必須 設定所有後續步驟以免使用者誤將 設定無效。
使用者提供的資料將透過 request.configParams 傳遞。

request.configParams」將是前getConfig()undefined 向連接器傳送要求。後續的要求會包含 使用者提供的答案,以設定 ID 做為索引鍵,或是 如果使用者未提供任何答案,請設為 undefined

範例:

{
  state: 'CA',
  city: 'mountain_view'
}
設定屬於累加

如要回答新的設定問題,請在現有問題後方加上。

無法修改設定

如果之前問過設定問題,則應該是 所有後續呼叫。舉例來說,如果系統詢問設定問題 A, 對 getConfig() 發出的第一次呼叫中,A 應包含在未來所有作業中 回應。

設定皆為冪等

使用相同 configParams 呼叫 getConfig() 應會傳回相同的結果 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定

無法覆寫動態參數

Looker Studio 不允許啟用動態設定參數 overridden

設定範例

動態下拉式選單

第一個問題會提示使用者選取狀態,然後動態提供 以所選州別為依據的城市下拉式選單。

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