إنشاء أوامر العمل باستخدام Power Automate

يمكنك إنشاء أوامر عمل تلقائيا في Dynamics 365 Field Service باستخدام تدفقات Power Automate. يكون هذا مفيدا عندما تحتاج أوامر العمل إلى إنشاء استنادا إلى مشغلات خارجية، مثل تنبيه IoT أو إرسال نموذج أو طلب خدمة من نظام آخر أو تغيير في سجل ذي صلة.

تستخدم تدفقات Power Automate موصل Microsoft Dataverse للتفاعل مع سجلات Field Service. للحصول على معلومات حول إنشاء أوامر العمل من خلال التعليمات البرمجية، انتقل إلى إنشاء أوامر العمل باستخدام واجهة برمجة تطبيقات ويب Dataverse.

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

  • ترخيص Power Automate (مضمن مع معظم التراخيص Dynamics 365).
  • يجب تخصيص واحد على اًلْأقل مِنْ أدوار أمان Field Service اًلْتاًلْية لحساب اًلْاتصاًلْ اًلْخاص باًلْتدفق. تعرف على المزيد في إعداد المستخدمين وأدوار الأمان.
    • Field Service - المرسل
    • Field Service - المسؤول
  • السجلات الموجودة لحقول البحث التي تستخدمها عملية أوامر العمل الخاصة بك:
    • نوع أمر التشغيل (msdyn_workordertype الجهة)
    • قائمة الأسعار (pricelevel كيان)، إذا كانت عمليتك تتطلب ذلك
    • حساب الخدمة (account الكيان)، إذا كان نوع أمر العمل المحدد يتطلب حساب خدمة أو إذا كنت تريد سياقا مشتقا من الحساب

الخيار 1: إنشاء أمر عمل عند تغيير سجل Dataverse

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

إعداد المشغل

  1. في Power Automate، حدد إنشاء>تدفق السحابة المخصص.

  2. ابحث عن عند إضافة صف أو تعديله أو حذفه (موصل Microsoft Dataverse).

  3. عند المطالبة، سجل الدخول إلى موصل Microsoft Dataverse باستخدام بيانات اعتماد Dynamics 365. إذا كان لديك بالفعل اتصال بالبيئة الخاصة بك، فحدده من القائمة المنسدلة. لا تُعبأ إعدادات المحفز حتى يتم إنشاء اتصال نشط.

  4. إعداد إعدادات المشغل:

    الحقل Value
    تغيير النوع معدّل
    اسم الجدول أصول العملاء
    النطاق المؤسسة
  5. اختياريا، أضف شرط صفوف التصفية للحد من وقت تشغيل التدفق. على سبيل المثال: msdyn_operationalstatus eq 690970001 (يحتاج إلى خدمة).

Tip

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

إضافة إجراء إنشاء أمر عمل

  1. حدد + خطوة جديدة وابحث عن إضافة صف جديد (موصل Microsoft Dataverse).

  2. حدد اتصاًلْ Dataverse نفسه اًلْذي استعملته فِي اًلْمشغل. يظهر حقل اسم الجدول فقط بعد تحديد اتصال.

  3. تعيين اسم الجدول إلى أوامر العمل.

  4. املأ الحقول المطلوبة:

    الحقل Value
    رقم أمر العمل أدخل التعبير guid() كالعنصر النائب. حقل رقم أمر العمل مطلوب بواسطة واجهة مستخدم موصل Dataverse، ولكن المكون الإضافي للرقم التلقائي ل Field Service يعين تلقائيا رقم أمر العمل التسلسلي الصحيح عند حفظ السجل. لإدخال تعبير، حدد الحقل، وقم بالتبديل إلى علامة التبويب تعبير في لوحة المحتوى الديناميكي، واكتب guid()، وحدد موافق.
    حساب الخدمة مطلوب فقط عندما يتطلب نوع أمر العمل المحدد حساب الخدمة. اختر الحساب باستخدام حقل البحث، أو أدخل التعبير concat('/accounts(', 'service-account-guid', ')') في تبويب التعبير إذا كنت بحاجة لاستخدام واجهة مستخدم رسومية مشفرة أو ديناميكية. اترك هذا الحقل فارغا لأنواع أوامر العمل التي لا يطلب فيها حساب الخدمة ويستخدم أمر العمل سياقا خدمة آخر.
    نوع أمر العمل حدد نوع أمر العمل باستخدام حقل البحث، أو أدخل التعبير concat('/msdyn_workordertypes(', 'work-order-type-guid', ')') في علامة التبويب تعبير إذا كنت بحاجة إلى استخدام GUID مشفر أو ديناميكي. انظر أدناه لمعرفة كيفية العثور على هذا.
    قائمة الأسعار حدد قائمة الأسعار باستخدام حقل البحث، أو أدخل التعبير concat('/pricelevels(', 'your-price-list-guid', ')') في علامة التبويب تعبير إذا كنت بحاجة إلى استخدام GUID مشفر أو ديناميكي. إذا قمت باسترداد قائمة الأسعار ديناميكيا باستخدام إجراء صفوف القائمة داخل حلقة لكل تكرار حلقي، فاستخدم concat('/pricelevels(', items('YourLoopName')?['pricelevelid'], ')') بدلا من ذلك، استبدال YourLoopName باسم التكرار الحلقي الخاص بك. انظر أدناه لمعرفة كيفية العثور على هذا.
    حالة النظام 690970000 (غير مجدول)
    الخاضع للضريبة false
    الإرشادات استخدام الْمحتوى الْديناميكي مِنْ الْمُحفِز، على سبيل الْمثالْ اسم الْأصل

    حساب الخدمة: اكتب اسم الحساب مباشرة في حقل حساب الخدمة للبحث عنه وتحديده. إذا كان الْمشغل تغييرا في أصل الْعميل وكان الْأصل مرتبطا بحساب، يمكنك بدلا مِنْ ذلك تحديد الْحساب (أصول الْعميل) مِنْ لوحة الْمحتوى الْديناميكي. إذا كنت بحاجة إلى استخدام GUID مباشرة، فانتقل إلى منطقة >حسابات> في Field Service، وافتح الحساب، وانسخ معرف السجل من عنوان URL للمستعرض (القيمة بين %7B و%7D، أو GUID العادي إذا كان عنوان URL غير مشفر). تعرف على المزيد في إعدادات متطلبات حساب الخدمة لأوامر العمل.

    نوع أمر العمل: اكتب اسم نوع أمر العمل مباشرة في حقل نوع أمر العمل للبحث عنه وتحديده. إذا كنت بحاجة إلى استخدام GUID مباشرة، فانتقل إلى منطقة الإعدادات في >أوامر العمل>أنواع أوامر العمل في Field Service، وافتح نوع أمر العمل، وانسخ معرف السجل من عنوان URL للمستعرض.

    قائمة الأسعار: اكتب اسم قائمة الأسعار مباشرة في حقل قائمة الأسعار للبحث عنه وتحديده. إذا كنت بحاجة إلى استخدام GUID مباشرة، فانتقل إلى الإعدادات>قوائم الأسعار> في Field Service، وافتح قائمة الأسعار، وانسخ معرف السجل من عنوان URL للمستعرض.

    ملاحظة

    يتطلب موصل Dataverse حقول بحث لاستخدام مسار مرجع كيان OData (على سبيل المثال، /accounts(guid)) بدلا من GUID عادي. يؤدي إدخالْ معرف فريد عمومي غير معالْج (GUID) إلى ODataUnrecognizedPathException عند وقت الْتشغيل. concat تنشئ التعبيرات أعلاه تنسيق المسار الصحيح.

  5. احفظ سير العَمل واختبره.

الخيار 2: إنشاء أمر عمل من طلب HTTP

استخدم هذا النمط لإنشاء أمر عمل من نظام خارجي، مثل مدخل العميل أو نظام إصدار التذاكر أو النظام الأساسي ل IoT.

إعداد المشغل

  1. في Power Automate، حدد إنشاء>تدفق سحابي فوري.

  2. قم بتسمية التدفق وحدد عند تلقي طلب HTTP كمشغل.

  3. حدد إنشاء.

  4. في حقل Request Body JSON Schema ، الصق المخطط التالي:

    {
      "type": "object",
      "properties": {
        "serviceAccountId": { "type": "string" },
        "workOrderTypeId": { "type": "string" },
        "priceListId": { "type": "string" },
        "instructions": { "type": "string" }
      },
      "required": ["workOrderTypeId", "priceListId"]
    }
    

    أدرج serviceAccountId متى يتطلب نوع أمر العمل المحدد حساب خدمة أو عندما تريد أن يستخدم أمر العمل السياق المستخرج من الحساب. احذفها لأنواع أوامر العمل التي لا يطلب فيها حساب الخدمة.

  5. بالنسبة إلى من يمكنه تشغيل التدفق، حدد أحد الخيارات التالية:

    خيار وقت الاستخدام
    المستخدمون فقط في المستأجر الخاص بي موصى به للاستخدام في العمليات الإنتاجية. يجب على المتصلين المصادقة باستخدام Microsoft Entra ID وتقديم رمز مميز صالح لحامل OAuth. استخدم هذا للأنظمة الداخلية أو أساسيات الخدمة الموثوق بها.
    اي شخص يعمل عنوان URL نفسه كبيانات اعتماد — لا يلزم وجود عنوان مصادقة إضافي. استخدم فقط عندما لا يمكن لنظام الاستدعاء الحصول على رمز مميز Entra ID ويمكنك التأكد من تخزين عنوان URL بشكل آمن.

    تعرف على المزيد حول تأمين التدفقات التي يتم تشغيلها من قبل HTTP في إضافة مصادقة OAuth لمشغلات طلب HTTP.

  6. حقل HTTP URL للقراءة فقط — لا تقم بتعبئته. Power Automate تملأه تلقائيا عند حفظ التدفق للمرة الأولى.

  7. احفظ التدفق. يتم الآن ملء حقل HTTP URL بعنوان URL لنقطة النهاية. انسخ عنوان URL هذا وقم بتوفيره لمن يقوم بتكوين النظام الخارجي (مثل مطور أو مسؤول نظام). يقوم النظام الخارجي بتشغيل التدفق عن طريق إرسال طلب HTTP POST إلى عنوان URL هذا مع نص JSON الذي يطابق المخطط الذي حددته. على سبيل المثال:

    POST <paste the HTTP URL here>
    Content-Type: application/json
    
    {
      "workOrderTypeId": "<work order type record GUID>",
      "priceListId": "<price list record GUID>",
      "serviceAccountId": "<optional account record GUID>",
      "instructions": "Reported issue: equipment not functioning"
    }
    

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

إضافة إجراء إنشاء أمر عمل

  1. حدد + خطوة جديدة وابحث عن إضافة صف جديد (موصل Microsoft Dataverse).

  2. سجل الدخول إلى موصل Microsoft Dataverse أو حدد اتصالا موجودا. يظهر حقل اسم الجدول فقط بعد تحديد اتصال.

  3. تعيين اسم الجدول إلى أوامر العمل.

  4. ربط حقول نص الطلب HTTP إلى حقول أمر العمل:

    حقل أمر العمل Value
    رقم أمر العمل أدخل التعبير guid() كالعنصر النائب. حقل رقم أمر العمل مطلوب بواسطة واجهة مستخدم موصل Dataverse، ولكن المكون الإضافي للرقم التلقائي ل Field Service يعين تلقائيا رقم أمر العمل التسلسلي الصحيح عند حفظ السجل. لإدخال تعبير، حدد الحقل، وقم بالتبديل إلى علامة التبويب تعبير في لوحة المحتوى الديناميكي، واكتب guid()، وحدد موافق.
    حساب الخدمة استخدم concat('/accounts(', triggerBody()?['serviceAccountId'], ')') فقط عندما serviceAccountId يكون متوفرا في الوقت المناسب. إذا لم يكن حساب الخدمة مطلوبا لنوع أمر العمل المحدد ولم يتضمن الطلب serviceAccountId، لا تقم بتعيين هذا الحقل البحثي.
    نوع أمر العمل concat('/msdyn_workordertypes(', triggerBody()?['workOrderTypeId'], ')')
    قائمة الأسعار concat('/pricelevels(', triggerBody()?['priceListId'], ')')
    حالة النظام 690970000 (غير مجدول)
    الإرشادات @{triggerBody()?['instructions']}
  5. اختياريا، أضف إجراء استجابة لإرجاع معرف أمر العمل الجديد إلى نظام الاستدعاء:

    1. حدد + New step وابحث عن Response (من موصل الطلب ).
    2. تعيين رمز الحالة إلى 200.
    3. في حقل النص الأساسي ، حدد أيقونة المحتوى الديناميكي واختر msdyn_workorderid من الخطوة إضافة صف جديد . هذا هو المعرف الفريد لأمر العمل الذي تم إنشاؤه للتو.

    بدون هذه الخطوة، لا تتلقى أنظمة الاستدعاء أي استجابة وتنتهي مهلة طلب HTTP بعد الانتظار. إذا قمت بإضافة هذه الخطوة، يتلقى نظام الاتصال استجابة 200 بمعرف أمر العمل بمجرد اكتمال التدفق.

قيم مجموعة خيارات حالة النظام

استخدم قيم العدد الصحيح هذه عند تعيين حالة النظام في تدفق أو استدعاء واجهة برمجة التطبيقات.

تسمية Value
غَير مجدول 690970000
مجدول 690970001
قيد التقدم 690970002
مكتمل 690970003
مُرحَّل 690970004
مُلغى‬ 690970005

الاعتبارات

ملكية حساب اتصالْ الْتدفق

أوامر العمل التي يتم إنشاؤها بواسطة flow مملوكة لحساب الاتصال المستخدم في موصل Dataverse. تأكد من أن هذا الحساب له دور الأمان الصحيح وأن أوامر العمل التي تم إنشاؤها بواسطة التدفق تظهر في طرق العرض وقوائم الانتظار المتوقعة.

السجلات التابعة

ينشئ إجراء إضافة صف جديد رأس أمر العمل فقط. لإضافة منتجات أو خدمات أو مهام خدمة لأمر العمل، أضف خطوات صف جديدة منفصلة لكل جدول تابع (msdyn_workorderproduct، msdyn_workorderservice، ، msdyn_workorderservicetask) وقم بتعيين حقل بحث أمر العمل إلى المعرف الذي تم إرجاعه بواسطة خطوة الإنشاء.

حدود معدل واجهة برمجة التطبيقات

تخضع Power Automate التدفقات لحدود واجهة برمجة تطبيقات Dataverse. بالْنسبة للسيناريوهات عالْية الْحجم، ضع في اعتبارك استخدام نقطة نهاية معالْجة الْدفعات في Dataverse Web API أو نشر تشغيل الْتدفقات باستخدام مشغل مجدول مع معالْجة الْدفعات.

تجنب طلبات العمل المكررة

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

معالجة الخطأ

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

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