يوضّح هذا الدليل كيفية إنشاء متغيّر إخراج.
يتم عرض متغيّرات الإخراج من خلال الخطوات ويمكن إرسالها إلى خطوة أخرى. على سبيل المثال، يمكنك تمرير عنوان بريد إلكتروني إلى خطوة أخرى تستخدمه لتحديد مستلم رسالة إلكترونية.
حدِّد متغيّر الإخراج في مكانَين: ملف بيان الإضافة وفي الرمز البرمجي باستخدام دالة تعرض متغيّر الإخراج.
يعرض المثال التالي نتيجة رياضية محسوبة من ثلاثة متغيرات مُدخَلة: عددان وعملية حسابية.
تحديد متغيّر الناتج في ملف البيان
في ملف بيان "برمجة تطبيقات Google"، حدِّد مصفوفة outputs[] وonExecuteFunction.
يحتوي كل عنصر في مصفوفة outputs[] على السمات التالية:
-
id: معرّف فريد لمتغيّر الناتج. description: وصف لمتغيّر الناتج سيتم عرضه للمستخدمين النهائيين.-
cardinality: عدد القيم المسموح بها القيم المحتمَلة هي:SINGLE: يُسمح بقيمة واحدة فقط.
dataType: نوع القيم المقبولة تحتويdataTypeعلى السمةbasicTypeالتي تحدّد نوع البيانات. تشمل القيم الصالحة ما يلي:STRING: سلسلة أبجدية رقمية-
INTEGER: رقم TIMESTAMP: طابع زمني بتنسيق "بالملي ثانية منذ بدء حقبة يونكس" على سبيل المثال، يتم تمثيل 27 نوفمبر 2025، الساعة 16:49:02 بالتوقيت العالمي المنسّق على النحو التالي: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لمتغيّر الناتج المقابل في ملف البيان.
يعرض المثال التالي متغيّر إخراج يمثّل القيمة الحسابية لرقمَي إدخال:
برمجة التطبيقات
/**
* 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();
}