Передача данных между шагами с помощью выходной переменной

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

Выходные переменные возвращаются этапами и могут быть переданы на другой этап. Например, адрес электронной почты может быть передан на другой этап, который использует его для указания получателя электронного письма.

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

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

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

В файле манифеста Apps Script укажите массив outputs[] и функцию onExecuteFunction() .

Каждый элемент массива outputs[] обладает следующими свойствами:

  • id : Уникальный идентификатор выходной переменной.
  • description : Описание выходной переменной, отображаемое конечным пользователям.
  • cardinality : количество допустимых значений. Возможные значения:
    • "SINGLE" : Допускается только одно значение.
  • dataType : Тип принимаемых значений. basicType dataType определяет тип данных. Допустимые значения:
    • "STRING" : буквенно-цифровая строка.
    • "INTEGER" : Число.
    • TIMESTAMP : Временная метка в формате "миллисекунды с начала эпохи Unix". Например, 27 ноября 2025 г., 16:49:02 UTC, представляется как 1764262142988 .
    • "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": "calculatorDemo",
          "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"
          }
        }
      ]
    }
  }
}

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

В коде этого шага содержится функция onExecuteCalculate() , которая является функцией onExecuteFunction определенной в манифесте. Она выполняет арифметические операции над двумя введенными пользователем значениями и возвращает результат в виде выходной переменной с помощью функции outputVariables() .

Для возврата выходной переменной необходимо вернуть JSON со следующими требованиями:

  • Идентификатор variableId каждой выходной переменной должен совпадать с id соответствующей выходной переменной в файле манифеста.
  • variableData выходной переменной должен соответствовать dataType и cardinality соответствующей выходной переменной в файле манифеста.

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

Apps Script

/**
 * Executes the calculation step based on the inputs from a flow event.
 *
 * This function retrieves input values and the operation from the flow event,
 * performs the calculation, and returns the result as an output variable.
 * The function logs the event for debugging purposes.
 */
function onExecuteCalculate(event) {
  console.log("output: " + JSON.stringify(event));
  var calculatedValue = 0;
  var value1 = event.workflow.actionInvocation.inputs["value1"];
  var value2 = event.workflow.actionInvocation.inputs["value2"];
  var operation = event.workflow.actionInvocation.inputs["operation"].stringValues[0];

  if (operation == "+") {
    calculatedValue = value1 + value2;
  } else if (operation == "-") {
    calculatedValue = value1 - value2;
  } else if (operation == "x") {
    calculatedValue = value1 * value2;
  } else if (operation == "/") {
    calculatedValue = value1 / value2;
  }
  const variableData = AddOnsResponseService.newVariableData()
    .addIntegerValue(calculatedValue);
  
  const workflowAction = AddOnsResponseService.newReturnOutputVariablesAction()
    .addVariableData("result", variableData);

  const hostAppAction = AddOnsResponseService.newHostAppAction()
    .setWorkflowAction(workflowAction);

  return AddOnsResponseService.newRenderActionBuilder()
    .setHostAppAction(hostAppAction)
    .build();
}