تغيير التحكم في التدفق باستخدام إجراء تحكم

مكتمل

تتيح إجراءات التحكم لتطبيق المنطق لديك اتخاذ القرارات. سيستعين مراقب وسائل التواصل الاجتماعي إجراءً رقابياً لاختبار درجة التوجهات للتغريدة والفرع بناءً على ما إذا كانت إيجابية أم سلبية. في هذه الوحدة، سنلقي نظرة على إجراءات التحكم الأربعة التي تساعدك على إدارة مسار التنفيذ من خلال تطبيقك. سنرى أيضًا كيفية استخدام Logic Apps Designer لإضافة إجراء تحكم وتهيئة إعداداته.

إجراء شرطي

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

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

An illustration showing a conceptual view of the entire social media monitor app. The *condition* control action is highlighted..

الأنواع والمشغلات

يمكنك اختبار عناصر رقمية ومتسلسلة ومنطقية و JavaScriptObject Notation في إجراءات التحكم الشرطي. يُظهر التعليمية البرمجية الزائفة التالية مثالاً واحدًا لكل نوع من الأنواع البسيطة:

if (score is-greater-than 0.7)              ... // Numeric
if (TweetedBy does-not-contain "MyCompany") ... // String
if (Favorited is-equal-to true)             ... // Boolean

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

عددي سلسلة منطقي عناصر JSON
يساوي يساوي يساوي يساوي
لا يساوي لا يساوي لا يساوي لا يساوي
أكبر من يحتوي على
أكبر من أو يساوي لا يحتوي على
أصغر من يبدأ بـ
أصغر من أو يساوي لا يبدأ بـ
ينتهي بـ
لا ينتهي بـ

معظم العمليات بديهية، ولكن هناك حالتان جديران بالذكر:

  • مقارنات السلاسل كلها حساسة لحالة الأحرف.
  • تستخدم مقارنات JSON ما يسمى بـ deep equals. تعني هذه المقارنة أن مشغلي المساواة سيقارنوا الغرض بأكمله، بما في ذلك أي رموز مميزة فرعية داخل عناصر معقدة.

اجمع بين التعبيرات باستخدام AND وOR

يتيح لك Logic Apps إنشاء تعبيرات معقدة من خلال الجمع بين الشروط باستخدام AND أو OR. لنفترض أنك أردت تحديد التغريدات المحايدة في توجهها (تذكر أن النتيجة القريبة من 0.5 تكون محايدة). يمكنك كتابة تعبير مشابه للتعليمات البرمجية الزائفة التالية:

if (score is-greater-than 0.4 AND score is-less-than 0.6)

توافر البيانات

تتيح Logic Apps البيانات من جميع الخطوات السابقة في خطوات لاحقة. تعني هذه الميزة أن تعبيراتك يمكنها استخدام القيم التي تم إنشاؤها من خلال أي من الخطوات السابقة. يمكنك حتى دمج القيم من خطوات مختلفة في تعبير واحد. على سبيل المثال، تبحث التعليمية البرمجية الزائفة التالية عن التغريدات ذات التوجهات الإيجابية التي لم ترسلها شركتك. لاحظ أن النتيجة تأتي من إجراء Detect sentiment بينما تكون قيمة TwitterBy من مشغل When a new tweet is posted.

if (score is-greater-than 0.7 AND TweetedBy does-not-contain "MyCompany")

إنشاء تعبيرات معقدة مع المجموعات

لنفترض أنك تريد تكوين تعبير لتحديد التغريدات المؤثرة. عليك أن تقرر ما إن كان هناك معياران من شأنهما أن يتمتعا بالأهلية:

  • درجة التوجه أعلى من 0.9 وتم تحديد التغريدة بوضع علامة عليها كمفضلة.
  • عدد مرات إعادة نشر التغريد أكبر من 1000.

تريد بناء تعبير مثل التعليمات البرمجية الزائفة التالية لتسجيل هذه الفكرة:

if (score is-greater-than 0.9 AND Favorited is-equal-to true OR RetweetCount is-greater-than 1000) // Error, cannot mix AND and OR

تدعم Logic Apps هذا التعبير، ولكن ليس بشكل مباشر. يمكنك استخدام ميزة تسمى «المجموعات» للقيام بذلك. المجموعة عبارة عن سلسلة من التعبيرات المدمجة باستخدام إما AND أو OR. لا يمكنك المزج بين AND وOR داخل مجموعة واحدة.

لنلقِ نظرة على بعض الأمثلة المُعبَّر عنها كتعليمة برمجية زائفة. للمساعدة في تسهيل القراءة، سنستخدم الأحرف الصغيرة لتمثيل التعبيرات التي نحتاج إلى دمجها. المثال الأول أدناه مجموعة قانونية ولكن المثال الثاني ليس كذلك:

if (a AND b AND c) // OK
if (a AND b OR  c) // Error, cannot mix AND and OR

بدلاً من ذلك، يمكنك إنشاء مجموعة للتعبيرات المدمجة باستخدام AND في المثال السابق. ثم استخدم OR لربط المجموعة بالتعبير الآخر. نستخدم الأقواس في التعليمات البرمجية الزائفة التالية لتمثيل مجموعة:

if ([a AND b] OR c) // OK

إجراء Switch

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

على سبيل المثال، نفترض أنك تقوم بمعالجة رسالة بريد إلكتروني وتريد الرد بشكل مختلف بناءً على أهمية الرسالة. Importance في بريد Outlook الإلكتروني هي عدد صحيح بين 0 و2. توضح التعليمة البرمجية الزائفة التالية أنك قد تبنى إجراء switch لأهمية البريد الإلكتروني.

switch (Importance)
  case 0: ... // action(s) for low importance
  case 1: ... // action(s) for medium importance
  case 2: ... // action(s) for high importance
  default: ...

تكرار Foreach الحلقي

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

على سبيل المثال، جزء من بيانات التغريدة التي يتم إرجاعها بواسطة المشغل When a new tweet is posted عبارة عن مجموعة من عناوين URL للوسائط المضمنة في التغريدة. لنفترض أنك تريد إدراج كل عنوان URL في صفه في قاعدة البيانات. يمكنك استخدام إجراء foreach مثل التعليمات البرمجية التالية للقيام بالمعالجة:

foreach url in MediaUrls
    insert-row

تكرار Until الحلقي

يشغل إجراء التحكم في تكرار Until الحلقي مجموعة من الإجراءات عدة مرات. يمكنك تعيين ثلاثة معايير مختلفة للإيقاف ويستمر التكرار الحلقي حتى يتحقق أحدها:

  • الشرط: تعبير يتم تقييمه بعد كل تكرار.
  • العدد: الحد الأقصى لعدد التكرارات (الافتراضي هو 60).
  • المهلة: أقصى وقت مسموح به على مدار الساعة محدد باستخدام تنسيق ISO 8601 (الافتراضي هو ساعة واحدة).

يمكن استخدام هذه الحلقة لمعالجة البيانات، ولكنها أيضاً خيار جيد عندما تحتاج إلى إعادة محاولة عملية شبكة حتى تنجح أو تنتهي مهلتها. على سبيل المثال، افترض أن تطبيقك بحاجة إلى تنفيذ إجراء أدى إلى طلب HTTP. يمكنك استخدام تكرار until الحلقي المماثل لذلك الموضح في التعليمة البرمجية الزائفة التالية (the time value PT5M is equal to five minutes):

repeat
    HTTP Get
until (StatusCode is-equal-to 200 OR Count is-greater-than 3 OR Timeout is-greater-than PT5M)

إضافة إجراء تحكم باستخدام المصمم

يمنحك Logic Apps Designer واجهة مستخدم رسومية لإضافة وتكوين إجراء تحكم. يتم تجميعها جميعًا داخل موصل Control، لذا فإن الخطوة الأولى هي العثور على هذا الموصل. بمجرد تحديد موقع الموصل، سترى إجراءات التحكم الأربعة التي ناقشناها وبعض الإجراءات الأخرى المفيدة، ولكن لا ترتبط مباشرة بهدفنا المتمثل في إدارة تدفق التحكم. تُظهر لقطة الشاشة التالية إجراءات التحكم المتاحة المعروضة في المصمم.

A screenshot showing the contents of the **Control** connector in the Logic Apps Designer. The four control-flow actions are included in the list: **Condition**, **For each**, **Switch**, and **Until**.

يمنحك المصمم واجهة مستخدم رسومية تتيح لك إنشاء تعبيرات معقدة ومجموعات مضمنة. تُظهر لقطة الشاشة التالية إجراء شرطيًا معروضًا في المصمم.

A screenshot showing a configured **Condition** action in the Logic Apps Designer. The image contains a **Detect sentiment** action followed by a **Condition** action. The **Condition** action has a simple expression that tests whether the sentiment score is greater than 0.7.

في تطبيق مراقبة وسائل التواصل الاجتماعي، سنستخدم إجراء التحكم Condition لإضافة عبارة شرطية لاختبار درجة التوجّهات.