Соберите данные с помощью входной переменной

В этом руководстве объясняется, как создать входную переменную.

Для выполнения шагов требуется определённая информация. Например, для отправки электронного письма требуется адрес электронной почты. Чтобы предоставить шагам эту необходимую информацию, определите входные переменные. После определения входные переменные обычно задаются пользователем на карте конфигурации шага во время настройки шага.

Определите входную переменную в двух местах: в файле манифеста надстройки и в коде с помощью карты конфигурации, где пользователи могут вводить значения для входных переменных.

Определите входную переменную в файле манифеста

В файле манифеста укажите входные переменные с помощью массива inputs[] . Каждый элемент массива inputs[] имеет следующие свойства:

  • id : уникальный идентификатор входной переменной. Чтобы поток мог связать элемент ввода карты конфигурации с этой входной переменной, он должен совпадать с именем соответствующего элемента карты.
  • description : Описание входной переменной для отображения конечным пользователям.
  • cardinality : допустимое количество значений. Возможные значения:
    • SINGLE : допускается только одно значение.
  • dataType : Тип принимаемых значений. У dataType есть свойство basicType , которое определяет тип данных. Допустимые значения:
    • STRING : Буквенно-цифровая строка.
    • INTEGER : Число.
    • TIMESTAMP : временная метка в формате ISO 8601. Например, в ISO 8601 15 марта 2025 года представляется как 2025-03-15.
    • BOOLEAN : Либо истина, либо ложь.
    • EMAIL_ADDRESS : Адрес электронной почты в формате dana@example.com .

В следующем примере определяются три входные переменные для шага калькулятора. Первые две входные переменные — целые числа, а третья — арифметическая операция.

JSON

{
  "timeZone": "America/Los_Angeles",
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "addOns": {
    "common": {
      "name": "Calculator",
      "logoUrl": "https://www.gstatic.com/images/branding/productlogos/calculator_search/v1/web-24dp/logo_calculator_search_color_1x_web_24dp.png",
      "useLocaleFromApp": true
    },
    "flows": {
      "workflowElements": [
        {
          "id": "actionElement",
          "state": "ACTIVE",
          "name": "Calculate",
          "description": "Asks the user for two values and a math operation, then performs the math operation on the values and outputs the result.",
          "workflowAction": {
            "inputs": [
              {
                "id": "value1",
                "description": "value1",
                "cardinality": "SINGLE",
                "dataType": {
                  "basicType": "INTEGER"
                }
              },
              {
                "id": "value2",
                "description": "value2",
                "cardinality": "SINGLE",
                "dataType": {
                  "basicType": "INTEGER"
                }
              },
              {
                "id": "operation",
                "description": "operation",
                "cardinality": "SINGLE",
                "dataType": {
                  "basicType": "STRING"
                }
              }
            ],
            "outputs": [
              {
                "id": "result",
                "description": "Calculated result",
                "cardinality": "SINGLE",
                "dataType": {
                  "basicType": "INTEGER"
                }
              }
            ],
            "onConfigFunction": "onConfigCalculate",
            "onExecuteFunction": "onExecuteCalculate"
          }
        }
      ]
    }
  }
}

Определить входную переменную в коде

Код шага включает функцию onConfigFunction() , которая возвращает карточку конфигурации, определяющую один виджет карточки ввода для каждой входной переменной, определенной в массиве inputs[] файла манифеста.

Входные виджеты, определенные в карте конфигурации, имеют следующие требования:

  • name каждого входного виджета должно соответствовать id соответствующей входной переменной в файле манифеста.
  • Мощность входного виджета должна соответствовать cardinality входной переменной в файле манифеста.
  • Тип данных виджета ввода должен соответствовать dataType входной переменной в файле манифеста. Если dataType входной переменной — целое число, она не может содержать строку.

Для получения помощи по созданию интерфейсов карт воспользуйтесь одним из следующих вариантов:

  • Конструктор карт : интерактивный инструмент, который можно использовать для создания и определения карт.
  • Карточка : в справочной документации API надстройки Google Workspace.
  • Служба карт : служба скриптов приложений, которая позволяет скриптам настраивать и создавать карты.
  • Обзор интерфейсов на основе карт : в документации разработчика дополнений Google Workspace.

Следующий пример возвращает карту конфигурации для каждого входного виджета, определенного в разделе «Определение входной переменной в файле манифеста» .

Скрипт приложений

/**
 * Generates and displays a configuration card for the sample calculation step.
 *
 * This function creates a card with input fields for two values and a drop-down
 * for selecting an arithmetic operation. The card also includes a "Save"
 * button to save the step configuration for the workflow.
 *
 * The input fields are configured to let the user select outputs from previous
 * workflow steps as input values using the `hostAppDataSource` property.
 */
function onConfigFunction() {
  var card = {
    "sections": [
      {
        "header": "Step example: Calculate",
        "widgets": [
          {
            "textInput": {
              "name": "value1", // "name" must match an "id" in the manifest file's inputs[] array.
              "label": "First value",
              "hostAppDataSource" : {
                "workflowDataSource" : {
                  "includeVariables" : true
                }
              }
            }
          },
          {
            "selectionInput": {
              "name": "operation", // "name" must match an "id" in the manifest file's inputs[] array.
              "label": "Operation",
              "type": "DROPDOWN",
              "items": [
                {
                  "text": "+",
                  "value": "+",
                },
                {
                  "text": "-",
                  "value": "-",
                },
                {
                  "text": "x",
                  "value": "x",
                },
                {
                  "text": "/",
                  "value": "/",
                }
              ]
            }
          },
          {
            "textInput": {
              "name": "value2", // "name" must match an "id" in the manifest file's inputs[] array.
              "label": "Second value",
              "hostAppDataSource" : {
                "workflowDataSource" : {
                  "includeVariables" : true
                }
              }
            }
          }
        ]
      }
    ]
  };
  return {
    "action": {
      "navigations": [{
        "push_card": card
      }]
    }
  };
}

Проверьте входную переменную

Рекомендуется проверять, что пользователь вводит правильное значение. См. раздел Проверка входной переменной .