Pasa datos entre pasos con una variable de salida

En esta guía, se explica cómo crear una variable de salida.

Las variables de salida son las que devuelven los pasos y se pueden enviar a otro paso. Por ejemplo, pasa una dirección de correo electrónico a otro paso que la usa para especificar el destinatario de un correo electrónico.

Define la variable de salida en dos lugares: el archivo de manifiesto del complemento y en el código con una función que devuelve la variable de salida.

En el siguiente ejemplo, se muestra un resultado matemático calculado a partir de tres variables de entrada: dos números y una operación aritmética.

Define la variable de salida en el archivo de manifiesto

En el archivo de manifiesto de Apps Script, especifica un array outputs[] y un onExecuteFunction().

Cada elemento del array outputs[] tiene estas propiedades:

  • id: Es el identificador único de una variable de salida.
  • description: Es una descripción de la variable de salida que se mostrará a los usuarios finales.
  • cardinality: Cantidad de valores permitidos. Los valores posibles son los siguientes:
    • "SINGLE": Solo se permite un valor.
  • dataType: Es el tipo de valores aceptados. dataType tiene la propiedad basicType, que define el tipo de datos. Estos son algunos de los valores válidos:
    • "STRING": Es una cadena alfanumérica.
    • "INTEGER": Es un número.
    • "TIMESTAMP": Es una marca de tiempo en formato ISO 8601. Por ejemplo, en ISO 8601, el 15 de marzo de 2025 se representa como 2025-03-15.
    • "BOOLEAN": Puede ser verdadero o falso.
    • "EMAIL_ADDRESS": Una dirección de correo electrónico en el formato dana@example.com

En el siguiente ejemplo, se define una variable de salida para un paso de calculadora. La variable de salida es un número entero.

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"
          }
        }
      ]
    }
  }
}

Cómo definir la variable de salida en el código

El código del paso incluye una función llamada onExecuteCalculate(), que es el onExecuteFunction definido en el manifiesto. Realiza operaciones aritméticas con dos valores ingresados por el usuario y devuelve el resultado como una variable de salida con una función llamada outputVariables().

Para devolver una variable de salida, devuelve JSON con los siguientes requisitos:

  • El variableId de cada variable de salida debe coincidir con el id de su variable de salida correspondiente en el archivo de manifiesto.
  • El variableData de la variable de salida debe coincidir con el dataType y el cardinality de la variable de salida correspondiente en el archivo de manifiesto.

En el siguiente ejemplo, se devuelve una variable de salida que es el valor aritmético de dos números de entrada:

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 onExecuteCalculateFunction(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;
  }
  var renderAction = {
    "hostAppAction" : {
      "workflowAction" : {
        "returnOutputVariablesAction" : {
          "variableValues" : [
            {
              "variableId": "result",
              "integerValues": [
                calculatedValue
              ]
            }
          ]
        }
      }
    }
  };

  console.log("renderAction: " + JSON.stringify(renderAction));

  return renderAction;
}