أتمتة Workforce وبرمجته نصيًا

تنبيه:

يتناول هذا الموضوع كيفية أتمتة ووضع برامج نصية لمشروعات Workforce الكلاسيكية التي تظهر في Workforce for ArcGIS. للحصول على معلومات حول كيفية أتمتة ووضع برامج نصية للمشروعات الممكّنة للاستخدام دون اتصال والتي تظهر في ArcGIS Workforce، راجع أتمتة Workforce.

يعد ذلك موضوعًا متقدمًا معني بالمسئولين وملاك المشروع الذين يتعاملون مع طبقات المعالم مباشرةً، مثل من خلال ArcGIS API for Python أو REST API.

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

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

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

تأكد من التعرف على مخطط مشروعات Workforce وكيفية عمل حقول تاريخ ووقت حالة المهمة قبل بدء الأتمتة والبرمجة النصية. في حين أنه يوصى باستخدام ArcGIS API for Python، يمكنك أيضًا أتمتة Workforce من خلال REST API لطبقات المعالم. طالما أنه تم إنشاء المهام بنفس المخطط، فإن Workforce يمكنه تفسيرها.

نظرة عامة على المخطط

يتألق مشروع القوة العاملة من أربع طبقات معالم وأربعة مجالات قيمة مكودة مع مخطط معرف مسبقًا. اسم كل طبقة معلم عبارة عن مجموعة من مسار الارتباط، الذي يصف الغرض من طبقة المعلم، الملحقة بـ GUID من عنصر مشروع Workforce. على سبيل المثال، طبقة العمال المقترنة بمشروع مع GUID 5dd018fcd88c4d33814cf3da9c44061e سيكون باسم workers_5dd018fcd88c4d33814cf3da9c44061e. هذا يضمن التميز لكل طبقة معلم.

رسم تخطيطي لمخطط Workforce
ملاحظة:‏

تختلف حقول تتبع المحرر في ArcGIS Enterprise. بدلًا من CreationDate وCreator وEditDate وEditor، تكون created_date وcreated_user وlast_edited_date وlast_edited_user على التوالي.

تكون طبقات المعلم الأربع على النحو التالي:

  1. العاملين
    • طبقة المعالم النقطية التي تحتوي على سجل لكل عامل مُتنقل مُضمَّن في المشروع.
    • يشمل المعلومات المتعلقة بالعامل المُتنقل، بما في ذلك رقم جهة الاتصال وعنوان الوظيفة.
    • يُخزّن اسم المستخدم ArcGIS المؤسسي الخاص بالعامل المُتنقل في حقل userId.
    • تتبع الطبقة من قام بإنشائها وآخر عملية تحديث لكل عامل مُتنقل.
    • توجد علاقة مفتاح أساسي-مفتاح خارجي (PK-FK) من OBJECTID إلى Assignments.workerId. عند استخدام قيمة OBJECTID من طبقة العمال كقيمة حقل Assignments.workerId، يتم إقران العامل المتنقل بجميع المهام الخاصة بهم.
    • تحتوي الطبقة على ارتباطات مجال القيمة المكودة التالية:
      • يتم إقران حقل الحالة مع مجال قيمة Worker_Status المشفرة لتتبع حالة العامل المتنقل.
  2. تعيينات
    • طبقة المعلم النقطية التي تحتوي على سجل لكل مهمة.
    • تشمل المعلومات المتعلقة بالمهمة، بما في ذلك الحالة والموقع والوصف، بين الأخرين.
    • تتبع الطبقة من قام بإنشائها وأخر عملية تحديث لكل مهمة.
    • يتم تمكين المرفقات على طبقة المعلم.
    • تحتوي الطبقة على مفاتيح خارجية لبعض الحقول، التي تقترن القيم من طبقة أخرى مع هذه الطبقة:
      • Assignments.workerId إلى Workers.OBJECTID.
      • Assignments.dispatcherId إلى Dispatchers.OBJECTID.
      • Assignments.workOrderId يمكن استخدامه كمفتاح خارجي إلى نظام خارجي، مثل نظام إدارة الأصول أو الصيانة، عن طريق توفير قيم من النظام الأخر.
    • تحتوي الطبقة على ارتباطات مجال القيمة المكودة التالية:
      • يرتبط حقل status بمجال قيمة Assign_Status المشفرة لتتبع حالة العامل المتنقل.
      • يتم إقران حقل priority بمجال قيمة Priority المرمزة لإدارة أولوية مهام العمل.
      • يتم إقران حقل assignmentType بمجال قيمة Assign_Type المشفرة تخزين أنواع المهمة الخاصة بالمشروع.
  3. المرسلين
    • طبقة المعلم النقطية التي تحتوي على سجل لكل مرسل ضمن المشروع.
    • يشمل المعلومات المتعلقة بالمرسل، بما في ذلك الاسم ورقم جهة الاتصال.
    • يُخزّن اسم مستخدم ArcGIS المؤسسي الخاص بالمرسل في حقل userId.
    • تتبع الطبقة من قام بإنشائها وأخر عملية تحديث لكل مرسل.
    • توجد علاقة PK-FK من OBJECTID إلى Assignments.dispatcherId. يؤدي استخدام قيمة OBJECTID من طبقة المرسلين على أنها قيمة حقل Assignments.dispatcherId إلى ارتباط المرسلين بجميع المهام التي عينوها.
  4. تعُقب الموقع
    • طبقة معلم نقطية تحتوي على سجل لكل موقع نقطي مسجل في حين تمكين تتبع الموقع.
    • تتبع الطبقة من قام بإنشائها وأخر عملية تحديث لكل تتبع للموقع.

مجالات القيمة الأربعة المكودة على النحو التالي:

  1. Assign_Status—تُخزن القيم الست الصالحة لحالة المهمة.
  2. Priority—تقوم بتخزين القيم الأربع الصحيحة الخاصة بأولوية المهمة.
  3. Assign_Type—تخزن أنواع المهمة للمشروع. يكون مجال القيمة المكودة الحالية فارغًا عند إنشاء المشروع. إنه يحتوي على قيم بمجرد إضافة أنواع المهمة أثناء عملية تكوين المشروع.
  4. Worker_Status—تخزن القيم الثلاث الصحيحة لحالة العامل المتنقل.

بالنسبة لقيم مجالات القيمة المرمزة، راجع الرسم التخطيطي للمخطط Workforce.

حقول تاريخ ووقت حالة المهمة.

يوجد لدى كل حالة مهمة محددة في مجال Assign_Status حقل تاريخ ووقت متطابق في طبقة معلم المهام. تحتوي هذه الحقول على أحدث تاريخ في المهمة التي كانت في الحالة المطابقة. عندما يتم استخدام القيمة لأول مرة لمهمة محددة، يتم دعم حقل التاريخ والوقت المقترن أولاً. عندما تكون المهمة في نفس الحالة مرة أخرى لاحقًا، يتم تحديث حقل الوقت والتاريخ مع تاريخ ووقت جديد. على سبيل المثال، عندما يتم تعيين مهمة لأول مرة، فإن التاريخ المُعين هو التاريخ والوقت الحالي. إذا تمت إعادة تعيينه بعد ثلاث ساعات، فسيتم تحديث حقل assignedDate إلى الوقت الجديد، ويتم فقد وقت المهمة الأصلي.

حالة المهمةحقل التاريخ والوقت المتطابق

غير معين

CreationDate

تم إسناده

assignedDate

قيد التقدم

inProgressDate

اكتمل

completedDate

تم الرفض

declinedDate

تم الإيقاف المؤقت

pausedDate

ملاحظة:‏

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

للتعرف على القيمة بصورة أفضل عند تعيينها، ضع في الاعتبار السيناريوهات التالية:

  • إعادة تعيين العمل المُوكل مسبقًا
    • لقد قمتَ بتعيين مهمة في الوقت t1، لذا يكون assignedDate هو t1.
    • ولاحقًا، في الوقت t2، يتم إعادة تعيين المهمة إلى عامل متنقل آخر، لذا يكون assignedDate هو t2.
  • إعادة تعيين العمل المرفوض
    • لقد قمتَ بتعيين مهمة في الوقت t1، لذا يكون assignedDate هو t1.
    • يرفض العامل المتنقل المهمة في الوقت t2، لذا يكون declinedDate هو t2. assignedDate تظل t1.
    • أنت تقوم بتعيين المهمة إلى عامل متنقل آخر في الوقت t3، لذا يكون assignedDate هو t3.
  • إيقاف العمل مؤقتًا واستئنافه
    • لقد قمتَ بتعيين مهمة في الوقت t1، لذا يكون assignedDate هو t1.
    • يبدأ العامل المتنقل المهمة في الوقت t2، لذا يكون inProgressDate هو t2. assignedDate تظل t1.
    • يقوم العامل المتنقل بإيقاف المهمة مؤقتًا في الوقت t3، لذا يكون pausedDate هو t3. assignedDate تظل t1 وinProgressDatet1 تظل t2.
    • يقوم العامل المتنقل بإعادة تشغيل المهمة في الوقت t4، لذا يكون inProgressDate هو t4. assignedDate تظل t1 وpausedDate تظل t3.

استخدام ArcGIS API for Python (موصى به)

استخدم ArcGIS API for Python ووحدة Workforce النمطية الخاصة به لأتمتة Workforce وبرمجته نصيًا. يمكن تفسير المهام المنشأة بواسطة وحدة Workforce بواسطة Workforce، وذلك لأنها تتبع المخطط نفسه. للحصول على أمثلة وأفضل الممارسات، راجع نموذج البرامج النصية المتاح في GitHub. تعرض البرامج النصية كيفية استخدام بايثون لإكمال العديد من المهام، مثل مهام التحميل البرمجية من مصادر البيانات الخارجية والاستيراد وإدارة العمال وإزالة المهام المكتملة، وغير ذلك المزيد. You can also use this مذكرة Jupyter لرؤية بعض العمليات النموذجية.

تم تقديم وحدة Workforce النمطية في ArcGIS API for Python الإصدار 1.4.1. في حين أنك تمكنت من استخدام Python قبل تقديم هذه الوحدة النمطية، فإنه يعمل على تبسيط أتمتة مهام Workforce. تضع وحدة Workforce النمطية القواعد والمخطط لمشروع Workforce في كبسولة. تشمل عوامل الحماية، وكذلك حماية تكامل مشروع Workforce.

ملاحظة:‏

هل لديك أي تعليق أو ملحوظة على أي من البرامج النصية؟ أو هل لديك أي فكرة لأي برنامج نصي تريد توفيره؟ قم بمشاركتها على GitHub.

استخدم REST API لطبقات المعالم

تنبيه:

يوصى باستخدام ArcGIS API for Python. إنها تحتوي على عوامل حماية متعددة في الموضع الصحيح تعمل على حماية تكامل مشروع Workforce.

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

إنشاء مهمة من خلال REST API

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

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

يتعين عليك توفير قيم للحقول التالية:

الحقلتعريفقيمة لتوفيرها

SHAPE

موقع النقطة الخاص بالمهمة

زوج إحداثي X، وY

status

حالة المهمة مشتقة من القيم الموجودة في نطاق Assign_Status.

  • 0 (غير مُعين) لإنشاء عمل غير مُعين
  • 1 (مُعين) إذا كنت تمضي لتعيين العمل كجزء من عملية الإنشاء
تنبيه:

إذا كنت تتجه إلى تعيين العمل، فإنه يجب عليك أيضًا تضمين قيم حقلي workerId وassignedDate الموضحتين في جدول لاحق.

assignmentType

نوع المهمة، من القيم الموجودة في مجال Assign_Type

أي قيمة صحيحة من نطاق Assign_Type.

location

وصف نصي لموقع النقطة الخاص بالمهمة

عنوان، زوج الإحداثي x وy، أو أي نص وصفي

assignmentRead

تحديد ما إذا عرض العامل المتنقل المهمة أم لا

0 نظرًا لأن المهمة غير مقروءة

dispatcherId

مُعرف المرسِل الذي ينشئ المهمة (dispatchers.OBJECTID من طبقة "المرسلين")

قد يكون مُعرف المرسل الخاص بمستخدم ArcGIS المؤسسي الذي قمت بالاتصال به، أو يمكن أن يكون مُعرف مرسل محدد مقترن بالمشروع

يُمكن أيضًا تضمين القيم الخاصة بالحقول الاختيارية التالية:

حقل اختياريتعريفقيمة لتوفيرها

description

معلومات خاصة بالعامل المتنقل حول المهمة

نص خاص بالعامل المتنقل. يتم التعامل مع المسافة البيضاء بواسطة قيمة لكل خط.

priority

أولوية المهمة

قيمة صحيحة من نطاق الأولوية.

workOrderId

مفتاح خارجي يشير إلى طلب العمل من نظام خارجي أو جهة أخرى

قيمة من نظامك الخارجي.

dueDate

التاريخ والوقت حسب المهمة التي تحتاج اكتمالها

تاريخ وقيمة صحيحة، متوفرة في صورة توقيت UTC بالثواني من الفترة الماضية

ملاحظة:‏

لتوفير تاريخ مستحق بدون وقت، حدد التاريخ واستخدم 11:59:59 مساءً في صورة الوقت.

إذا كنت ترغب في تعيين العمل كجزء من عملية الإنشاء، استخدم الحالة 1 (كما هو مذكور أعلاه) وقم بتوفير الحقول التالية أيضًا:

الحقلتعريفقيمة لتوفيرها

workerId

مُعرف العامل المتنقل إلى الشخص المُوكل إليه المهمة (workers.OBJECTID من طبقة "العمال")

OBJECTID الخاصة بالعامل المتنقل الذي تعينه.

assignedDate

التاريخ والوقت عند تعيين المهمة

التاريخ والوقت الحالي، متوفر في صورة توقيت UTC الوقت بالثواني من الفترة الماضية

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

تعيين المهام من خلال REST API

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

الحقلتعريفقيمة لتوفيرها

status

حالة المهمة مشتقة من القيم الموجودة في نطاق Assign_Status.

  • 1 (مُعين)

workerId

مُعرف العامل المتنقل إلى الشخص المُوكل إليه المهمة (workers.OBJECTID من طبقة "العمال")

OBJECTID الخاصة بالعامل المتنقل الذي تعينه.

assignedDate

التاريخ والوقت عند تعيين المهمة

التاريخ والوقت الحالي، متوفر في صورة توقيت UTC الوقت بالثواني من الفترة الماضية

dispatcherId

مُعرف المرسل الذي يقوم بتعيين المهمة، إذا اختلفَ عن المرسل الذي أنشأه (dispatchers.OBJECTID من طبقة "المرسلين")

قد يكون مُعرف المرسل الخاص بمستخدم ArcGIS المؤسسي الذي قمت بالاتصال به، أو يمكن أن يكون مُعرف مرسل محدد مقترن بالمشروع