إنشاء متغيرات لتخزين القيم وإدارتها في Azure Logic Apps

ينطبق على: Azure Logic Apps (الاستهلاك + قياسي)

يوضح هذا الدليل الإرشادي كيفية إنشاء المتغيرات والعمل معها بحيث يمكنك تخزين القيم واستخدامها في سير عمل تطبيق المنطق الخاص بك. على سبيل المثال، يمكن أن تساعدك المتغيرات في تعقب عدد المرات التي يتم فيها تشغيل تكرار حلقي. للتكرار عبر صفيف أو التحقق من صفيف لعنصر معين، يمكنك استخدام متغير للإشارة إلى رقم الفهرس لكل عنصر في الصفيف.

يمكنك إنشاء متغيرات لأنواع البيانات مثل العدد الصحيح والعدد العشري والقيمة المنطقية والسلسلة والصفيف والعنصر. بعد إتمام إنشاء متغير، يمكنك تنفيذ مهام أخرى، على سبيل المثال:

  • الحصول على قيمة المتغير أو الإشارة إليها.
  • تزويد أو تقليل المتغير بقيمة ثابتة، والمعروفة أيضًا باسم الزيادة والإنقاص.
  • تعيين قيمة مختلفة للمتغير.
  • إدخال قيمة المتغير أو إلحاقها على أنها العنصر الأخير في سلسلة أو صفيف.

توجد المتغيرات وهي عمومية فقط داخل مثيل سير العمل الذي ينشئها. كما أنها تستمر عبر أي تكرارات تكرار حلقي داخل مثيل سير العمل. عند الإشارة إلى متغير، استخدم اسم المتغير على أنه الرمز المميز، وليس اسم الإجراء، وهو الطريقة المعتادة للإشارة إلى مخرجات الإجراء.

هام

بشكل افتراضي، يتم تشغيل التكرارات في حلقة لكل تكرار حلقي بالتوازي. عند استخدام المتغيرات في التكرارات الحلقية، شغل التكرار الحلقي بشكل تسلسلي حيث تستعيد المتغيرات نتائج يمكن التنبؤ بها.

المتطلبات الأساسية

تستخدم الخطوات التالية مدخل Microsoft Azure، ولكن مع ملحق Azure Logic Apps المناسب، يمكنك أيضا استخدام الأدوات التالية لإنشاء مهام سير عمل تطبيق المنطق:

استنادا إلى ما إذا كان لديك سير عمل Consumption أو Standard، اتبع الخطوات المقابلة:

تهيئة المتغير

يمكنك إنشاء متغير والإعلان عن نوع البيانات والقيمة الأولية باستخدام إجراء واحد في سير العمل الخاص بك. يمكنك فقط الإعلان عن المتغيرات على المستوى العمومي، وليس ضمن النطاقات والشروط والتكرارات الحلقية.

  1. في مدخل Microsoft Azure، افتح سير العمل في المصمم.

  2. في المصمم، اتبع هذه الخطوات العامة لإضافة إجراء يسمى Initialize variable.

  3. قدم المعلومات التالية حول المتغير الخاص بك:

    الخاصية مطلوب القيمة الوصف
    الاسم نعم < اسم المتغير> اسم المتغير المطلوب زيادته
    النوع نعم < نوع المتغير> نوع البيانات للمتغير
    القيمة لا < start-value> القيمة الأولية للمتغير الخاص بك

    تلميح: على الرغم من أنه اختياري، قم بتعيين القيمة كأفضل ممارسة حتى تعرف دائما قيمة بدء المتغير الخاص بك.

    يوضح المثال التالي القيم الأولية لهذا المتغير النموذجي:

    تظهر لقطة الشاشة مدخل Microsoft Azure وسير عمل المستهلك والإجراء المسمى Initialize variable.

  4. الآن تابع إضافة الإجراءات التي تريدها للسيناريو الخاص بك. عند الانتهاء، على شريط أدوات المصمم، حدد Save.

إذا قمت بالتبديل من المصمم إلى طريقة عرض التعليمات البرمجية، يوضح المثال التالي كيفية ظهور إجراء تهيئة المتغير في تعريف سير العمل الخاص بك، وهو بتنسيق JavaScript Object Notation (JSON):

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ 
            {
               "name": "Count",
               "type": "Integer",
               "value": 0
            }
         ]
      },
      "runAfter": {}
   }
},

ملاحظة

على الرغم من أن الإجراء Initialize variable يحتوي على "variables" كائن منظم كصفيف، يمكن للإجراء إنشاء متغير واحد فقط في كل مرة. يتطلب كل متغير جديد إجراء تهيئة متغير فردي.

توضح الأمثلة التالية أنواع المتغيرات الأخرى:

متغير منطقي

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myBooleanVariable",
               "type": "boolean",
               "value": false
            }
         ]
      },
      "runAfter": {}
   }
},

متغير حر

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myFloatVariable",
               "type": "float",
               "value": 1.99999
            }
         ]
      },
      "runAfter": {}
   }
},

متغير السلسلة

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myStringVariable",
               "type": "string",
               "value": "lorem ipsum"
            }
         ]
      },
      "runAfter": {}
   }
},

متغير الكائن

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "MyObjectVariable",
               "type": "object",
               "value": {
                  "ProductItem": {
                     "Name": "myProductName",
                     "ProductID": "000000"
                  }
               }
            }
         ]
      },
      "runAfter": {}
   }
},

صفيف من الأعداد الصحيحة

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": [1, 2, 3]
            }
         ]
      },
      "runAfter": {}
   }
},

صفيف من السلاسل

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": ["red", "orange", "yellow"]
            }
         ]
      },
      "runAfter": {}
   }
},

الحصول على قيمة متغير

لاسترداد محتويات متغير أو الرجوع إليها، يمكنك استخدام الدالة variables() في مصمم سير العمل ومحرر عرض التعليمات البرمجية. عند الإشارة إلى متغير، استخدم اسم المتغير على أنه الرمز المميز، وليس اسم الإجراء، وهو الطريقة المعتادة للإشارة إلى مخرجات الإجراء.

على سبيل المثال، يحصل التعبير التالي على العناصر من متغير الصفيف الذي تم إنشاؤه في هذا الدليل باستخدام الدالة variables() . تستعيد الدالة string() محتويات المتغير بتنسيق السلسلة: "1, 2, 3, red"

@{string(variables('myArrayVariable'))}

متغير الزيادة

لزيادة متغير أو زيادته بقيمة ثابتة معينة، أضف إجراء Increment variable إلى سير العمل الخاص بك. يعمل هذا الإجراء مع متغيرات الأعداد الصحيحة والعشرية فقط.

  1. في مصمم سير العمل، اتبع هذه الخطوات العامة لإضافة إجراء يسمى Increment variable.

  2. قدم المعلومات التالية لهذا الإجراء:

    الخاصية مطلوب القيمة الوصف
    الاسم نعم < اسم المتغير> اسم المتغير المطلوب زيادته
    القيمة لا < قيمة الزيادة> القيمة المستخدمة لزيادة المتغير. القيمة الافتراضية هي 1.

    تلميح: على الرغم من أنه اختياري، قم بتعيين هذه القيمة كأفضل ممارسة بحيث تعرف دائما القيمة المحددة لزيادة المتغير الخاص بك.

    يوضح المثال التالي قيم العينة لهذا الإجراء:

    تظهر لقطة الشاشة مدخل Microsoft Azure وسير عمل الاستهلاك والإجراء المسمى Increment variable.

  3. عند الانتهاء، احفظ سير العمل الخاص بك. في شريط أدوات المصمم، حدد "Save" .

إذا قمت بالتبديل من المصمم إلى طريقة عرض التعليمات البرمجية، يوضح المثال التالي كيفية ظهور إجراء متغير الزيادة في تعريف سير العمل الخاص بك، وهو بتنسيق JSON:

"actions": {
   "Increment_variable": {
      "type": "IncrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

مثال: إنشاء عداد تكرار حلقي

تستخدم المتغيرات على نحو شائع لحساب عدد المرات التي يتم فيها تشغيل تكرار حلقي. يوضح هذا المثال كيف يمكنك إنشاء المتغيرات واستخدامها لهذه المهمة عن طريق إنشاء تكرار حلقي يحسب المرفقات في رسالة بريد إلكتروني.

  1. في مدخل Microsoft Azure، قم بإنشاء مورد تطبيق منطق الاستهلاك الخاص بك بسير عمل فارغ. أضف مشغلاً يتحقق من وجود بريد إلكتروني جديد وأي مرفقات جديدة.

    يستخدم هذا المثال مشغل Office 365 Outlook عند وصول بريد إلكتروني جديد. يمكنك إعداد هذا المشغل للتشغيل فقط عندما يحتوي البريد الإلكتروني على مرفقات. ومع ذلك، يمكنك استخدام أي موصل يتحقق من وجود رسائل بريد إلكتروني جديدة تحتوي على مرفقات، مثل موصل Outlook.com.

  2. في المشغل، للتحقق من وجود مرفقات وتمرير هذه المرفقات إلى سير العمل، حدد نعم للخصائص التالية:

    • فقط مع المرفق
    • تضمين المرفقات

    تظهر لقطة الشاشة مدخل Microsoft Azure وسير عمل الاستهلاك والخصائص المحددة للتحقق من المرفقات وتضمينها.

  3. أضف إجراء Initialize variable لإنشاء متغير عدد صحيح يسمى Count يحتوي على قيمة بدء معينة إلى 0.

  4. للتكرار عبر كل مرفق، اتبع هذه الخطوات العامة لإضافة إجراء يسمى لكل تكرار حلقي.

  5. في التكرار الحلقي، حدد داخل المربع المسمى Select an output from previous steps. بعد ظهور قائمة المحتوى الديناميكي، ضمن عند وصول بريد إلكتروني جديد، حدد المرفقات.

    تظهر لقطة الشاشة سير عمل الاستهلاك، لكل تكرار حلقي، وقائمة المحتوى الديناميكي المفتوحة، وإخراج المرفقات المحددة.

    تمرر الخاصية المرفقات صفيفا يحتوي على مرفقات البريد الإلكتروني من إخراج المشغل إلى التكرار الحلقي لسير العمل الخاص بك للتكرار.

  6. في التكرار الحلقي لكل، حدد إضافة إجراء.

  7. اتبع هذه الخطوات العامة لإضافة إجراء يسمى متغير زيادة إلى الحلقة.

    ملاحظة

    تأكد من ظهور إجراء زيادة متغير داخل التكرار الحلقي. إذا ظهر الإجراء خارج التكرار الحلقي، فاسحب الإجراء إلى داخل التكرار الحلقي.

  8. في إجراء زيادة متغير، من قائمة الاسم، حدد متغير الحساب. قم بتعيين الخاصية Value إلى 1.

    تظهر لقطة الشاشة سير عمل الاستهلاك مع متغير محدد يسمى Count.

  9. ضمن التكرار الحلقي، أضف أي إجراء يرسل لك عدد المرفقات. في الإجراء الخاص بك، قم بتضمين القيمة من متغير الحساب، على سبيل المثال:

    لقطة شاشة تعرض سير عمل الاستهلاك وإجراء يرسل النتائج.

  10. عند الانتهاء، احفظ سير العمل الخاص بك. في شريط أدوات المصمم، حدد "Save" .

اختبار سير العمل

  1. لتشغيل سير العمل يدويا، اتبع الخطوة المقابلة:

    سير عمل الاستهلاك

    في شريط أدوات سير عمل المصمم، حدد Run Trigger>Run لتشغيل سير العمل يدويا.

    سير العمل القياسي

    في قائمة سير العمل، حدد Overview. في شريط الأدوات، حدد Run>Run.

  2. أرسل رسالة بريد إلكتروني تحتوي على مرفق واحد أو أكثر إلى حساب البريد الإلكتروني الذي استخدمته في هذا المثال.

    تقوم هذه الخطوة بتشغيل مشغل سير العمل، الذي ينشئ مثيل سير عمل ويشغله. ونتيجة لذلك، يرسل لك سير العمل رسالة أو بريدا إلكترونيا يعرض عدد المرفقات في البريد الإلكتروني الذي أرسلته.

إذا قمت بالتبديل من المصمم إلى طريقة عرض التعليمات البرمجية، يوضح المثال التالي كيفية ظهور التكرار الحلقي لكل حلقة جنبا إلى جنب مع إجراء متغير الزيادة في تعريف سير العمل الخاص بك، وهو بتنسيق JSON:

"actions": {
   "For_each": {
      "type": "Foreach",
      "actions": {
         "Increment_variable": {
           "type": "IncrementVariable",
            "inputs": {
               "name": "Count",
               "value": 1
            },
            "runAfter": {}
         }
      },
      "foreach": "@triggerBody()?['Attachments']",
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

متغير التناقص

لتقليل متغير أو إنقاصه بقيمة ثابتة معينة، اتبع الخطوات لزيادة متغير باستثناء إضافة إجراء متغير Decrement إلى سير العمل بدلا من ذلك. يعمل هذا الإجراء مع متغيرات الأعداد الصحيحة والعشرية فقط.

يصف الجدول التالي معلومات إجراء متغير التناقص :

الخاصية مطلوب القيمة الوصف
الاسم نعم < اسم المتغير> اسم المتغير المراد إنقاصه
القيمة لا < قيمة الزيادة> قيمة إنقاص المتغير. تكون القيمة الافتراضية رقم واحد.

تلميح: بالرغم من أنها خطوة اختيارية، عين هذه القيمة كأفضل ممارسة حتى تعرف القيمة المحددة لإنقاص المتغير الخاص بك على نحو دائم.

إذا قمت بالتبديل من المصمم إلى طريقة عرض التعليمات البرمجية، يوضح المثال التالي كيفية ظهور إجراء متغير التناقص في تعريف سير العمل الخاص بك، وهو بتنسيق JSON:

"actions": {
   "Decrement_variable": {
      "type": "DecrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

تعيين متغير

لتعيين قيمة مختلفة لمتغير موجود، اتبع الخطوات لزيادة متغير بالاستثناءات التالية:

  1. ابحث عن إجراء تعيين متغير وحدده بدلاً من ذلك.

  2. أدخل اسم المتغير والقيمة التي تريد تعيينها. يجب أن يكون لكل من القيمة الجديدة والمتغير نوع البيانات نفسه. تكون القيمة مطلوبة لأن هذا الإجراء لا يحتوي على قيمة افتراضية.

يصف الجدول التالي معلومات إجراء Set variable :

الخاصية مطلوب القيمة الوصف
الاسم نعم < اسم المتغير> اسم المتغير المراد تغييره
القيمة نعم < new-value> القيمة التي تريد تعيينها للمتغير. يجب أن يكون لكليهما نوع البيانات نفسه.

ملاحظة

ما لم تزد المتغيرات أو تنقصها، قد يؤدي تغيير المتغيرات داخل التكرارات الحلقية إلى نتائج غير متوقعة لأن التكرارات الحلقية تعمل بالتوازي أو بشكل متزامن بشكل افتراضي. بالنسبة إلى هذه الحالات، حاول إعداد التكرار الحلقي الخاص بك للتشغيل بشكل تسلسلي. على سبيل المثال، عندما تريد الإشارة إلى قيمة المتغير داخل التكرار الحلقي وتتوقع نفس القيمة في بداية ونهاية مثيل التكرار الحلقي هذا، اتبع هذه الخطوات لتغيير كيفية تشغيل التكرار الحلقي:

  1. في التكرار الحلقي، ابحث عن إعدادات التكرار الحلقي وافتحها.

  2. استنادا إلى نوع سير العمل الخاص بك، اتبع الخطوات المقابلة:

    • الاستهلاك: قم بتغيير إعداد التحكم في التزامن من إيقاف التشغيل إلى تشغيل.

    • قياسي: ضمن عام، قم بتغيير إعداد التحكم في التزامن من إيقاف التشغيل إلى تشغيل.

  3. اسحب شريط تمرير درجة التوازي إلى 1.

إذا قمت بالتبديل من المصمم إلى طريقة عرض التعليمات البرمجية، يوضح المثال التالي كيفية ظهور إجراء Set variable في تعريف سير العمل الخاص بك، وهو بتنسيق JSON:

يغير Count المثال التالي القيمة الحالية للمتغير إلى قيمة أخرى:

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
               "name": "Count",
               "type": "Integer",
               "value": 0
          } ]
      },
      "runAfter": {}
   },
   "Set_variable": {
      "type": "SetVariable",
      "inputs": {
         "name": "Count",
         "value": 100
      },
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

إلحاق بالمتغير

بالنسبة إلى المتغيرات التي تخزن السلاسل أو الصفائف، يمكنك إدخال قيمة متغير أو إلحاقها على أنها العنصر الأخير في تلك السلاسل أو الصفائف. يمكنك اتباع الخطوات لزيادة متغير مع الاستثناءات التالية:

  1. ابحث عن أحد هذه الإجراءات وحدده بناء على ما إذا كان المتغير عبارة عن سلسلة أم صفيف:

    • إلحاق متغير السلسلة
    • إلحاق مُتغير الصفيف
  2. أتح القيمة المراد إلحاقها على أنها العنصر الأخير في السلسلة أو الصفيف. هذه القيمة مطلوبة.

يصف الجدول التالي معلومات إجراءات الإلحاق ب... :

الخاصية مطلوب القيمة الوصف
الاسم نعم < اسم المتغير> اسم المتغير المراد تغييره
القيمة نعم < append-value> القيمة التي تريد إلحاقها، والتي يمكن أن يكون لها أي نوع

إذا قمت بالتبديل من المصمم إلى طريقة عرض التعليمات البرمجية، يوضح المثال التالي كيفية ظهور إجراء Append to array variable في تعريف سير العمل الخاص بك، وهو بتنسيق JSON.

ينشئ المثال التالي متغير صفيف، ويضيف قيمة أخرى كعنصر أخير في الصفيف. تكون في النهاية النتيجة الخاصة بك هي متغير محدث يحتوي على هذا الصفيف: [1,2,3,"red"]

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
            "name": "myArrayVariable",
            "type": "Array",
            "value": [1, 2, 3]
         } ]
      },
      "runAfter": {}
   },
   "Append_to_array_variable": {
      "type": "AppendToArrayVariable",
      "inputs": {
         "name": "myArrayVariable",
         "value": "red"
      },
      "runAfter": {
        "Initialize_variable": [ "Succeeded" ]
      }
   }
},

الخطوات التالية