Truyền dữ liệu giữa các bước bằng một biến đầu ra

Hướng dẫn này giải thích cách tạo một biến đầu ra.

Các biến đầu ra được các bước trả về và có thể được gửi đến một bước khác. Ví dụ: truyền địa chỉ email đến một bước khác để dùng địa chỉ đó chỉ định người nhận email.

Xác định biến đầu ra ở 2 vị trí: tệp kê khai của tiện ích bổ sung và trong mã bằng một hàm trả về biến đầu ra.

Ví dụ sau đây trả về kết quả toán học được tính từ 3 biến đầu vào: 2 số và một phép toán số học.

Xác định biến đầu ra trong tệp kê khai

Trong tệp kê khai Apps Script, hãy chỉ định một mảng outputs[] và một onExecuteFunction().

Mỗi mục trong mảng outputs[] đều có các thuộc tính sau:

  • id: Giá trị nhận dạng duy nhất cho một biến đầu ra.
  • description: Nội dung mô tả về biến đầu ra để hiển thị cho người dùng cuối.
  • cardinality: Số lượng giá trị được phép. Các giá trị có thể sử dụng là:
    • "SINGLE": Bạn chỉ được phép gửi một giá trị.
  • dataType: Loại giá trị được chấp nhận. dataType có thuộc tính basicType xác định loại dữ liệu. Các giá trị hợp lệ bao gồm:
    • "STRING": Một chuỗi dạng chữ và số.
    • "INTEGER": Một số.
    • "TIMESTAMP": Dấu thời gian ở định dạng ISO 8601. Ví dụ: theo ISO 8601, ngày 15 tháng 3 năm 2025 được biểu thị là 2025-03-15.
    • "BOOLEAN": True hoặc false.
    • "EMAIL_ADDRESS": Địa chỉ email ở định dạng dana@example.com.

Ví dụ sau đây xác định một biến đầu ra cho bước tính toán. Biến đầu ra là một số nguyên.

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

Xác định biến đầu ra trong mã

Mã của bước này bao gồm một hàm có tên là onExecuteCalculate(), đây là onExecuteFunction được xác định trong tệp kê khai. Nó thực hiện phép toán số học trên 2 giá trị do người dùng nhập và trả về kết quả dưới dạng một biến đầu ra bằng một hàm có tên là outputVariables().

Để trả về một biến đầu ra, hãy trả về JSON theo các yêu cầu sau:

  • variableId của mỗi biến đầu ra phải khớp với id của biến đầu ra tương ứng trong tệp kê khai.
  • variableData của biến đầu ra phải khớp với dataTypecardinality của biến đầu ra tương ứng trong tệp kê khai.

Ví dụ sau đây trả về một biến đầu ra là giá trị số học của hai số đầu vào:

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