واجهة API للبحث عن توافر الموارد‬

تحتاج مؤسسات Field Service إلى جدولة العمل، في أغلب الأحيان من خلال خدمة مندوب مباشرة بواسطة العميل. يتم إنشاء الموارد عادةً بالاستناد إلى الموارد المتوفرة للشركة ومتطلبات العمل.

عندما تستخدم على الأقل Dynamics 365 Field Service v8.8.43.51 وUniversal Resource Scheduleling v3.12.46.21 لجدولة العمل، استخدم واجهة برمجة التطبيقات msdyn_SearchResourceAvailability لاسترجاع جميع الموارد المؤهلة للعمل، حتى تتمكن من جدولة العمل بكفاءة. في وقت كتابة هذا النص، فإن v3 هو أحدث إصدار من msdyn_SearchResourceAvailability ويدعم استدعاءات واجهة برمجة التطبيقات (Web API).

ملاحظة

استخدم أحدث إصدار من واجهة برمجة التطبيقات لأن الإصدارات القديمة قد تستخدم طرق مصادقة مهجورة.

معلمات الإدخال

Name Type الوصف مطلوب افتراضي
‏‏الإصدار‬ سلسلة يحدد رقم إصدار API إصدار API الذي يجب استدعاءه. وهو يتبع تنسيق major.minor.patch.

  • إذا لم يتم توفير نسخة، يتم استخدام الأحدث (موصى بها)
  • إذا تم تحديد إصدار رئيسي فقط، فهوي يستدعي أعلى إصدار ثانوي وإصدار تصحيح متوفر لذلك الإصدار الرئيسي.
  • إذا تم تحديد الإصدارين الرئيسي والثانوي، فإنه يستدعي أعلى إصدار تصحيح متوفر.
  • إذا تمت الإشارة إلى الأجزاء الثلاثة كلها من الإصدار، فهو يستدعي الإصدار الصحيح من واجهة API المحددة.
  • لا الإصدار الحالي
    IsWebApi منطقي قم بتعيين True لاستخدام مساعد الجدول عبر واجهة الويب. نعم -غير متوفر-
    شرط الكيان تحدد هذه السمة متطلب المورد الذي يتم استرداد توفر المورد له. من المتوقع أن يكون هذا كيان من النوع msdyn_resourcerequirement. بإمكان المتطلب أن يكون عبارة عن سجل موجود مسبقًا من قاعدة البيانات، أو سجل تم إنشاؤه بشكل سريع مع القيود الضرورية. يجب أن يحتوي الكيان على جميع المواصفات ذات الصلة ببحثك. يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.msdyn_requirement. فيما يلي بعض السمات المهمة التي يجب تعبئتها:
    1. msdyn_fromdate (DateTime): متطلب تاريخ البدء بتنسيق ISO
    2. msdyn_todate (DateTime): متطلبات تاريخ الانتهاء بتنسيق ISO
    3. msdyn_remainingduration (Integer): المدة المتبقية للمتطلب بالدقائق
    4. msdyn_duration (Integer): إجمالي مدة المتطلب بالدقائق
    نعم -غير متوفر-
    الإعدادات الكيان تساعد سمة الإعدادات على تصفية الموارد المستردة بشكل أكبر. حدد الإعدادات كسمات في حقيبة الكيان. نوع الكيان ليس بالأمر المهم. يمكنك تحديد أي اسم منطقي للكيان. نعم -غير متوفر-
    ResourceSpecification الكيان تعريف السمة resourceSpecification كسمات في حقيبة الكيان. يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.expando. لا لا يوجد

    كيان الإعدادات

    كيان الإعدادات ليس كيانًا موجودًا في Dataverse؛ ومع ذلك، فهو مجموعة من جميع السمات التالية التي تساعد API مساعد الجدولة في تصفية النتائج. لذا، يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.expando.

    Name Type الوصف مطلوب افتراضي
    ConsiderSlotsWithLessThanRequiredCapacity منطقي عيّن هذا الخيار إلى صواب إذا كان من الضروري مراعاة فترة زمنية مع أقل من السعة المطلوبة (الجهد) عند حساب الفترات الزمنية المتاحة المحتملة على تقويم المورد. لا خطأ
    ConsiderSlotsWithLessThanRequiredDuration منطقي عيّن هذا الخيار إلى صواب إذا كان من الضروري مراعاة فترة زمنية مع أقل من المدة المطلوبة عند حساب الفترات الزمنية المتاحة المحتملة على تقويم المورد. لا خطأ
    ConsiderSlotsWithOverlappingBooking منطقي عيّن هذا الخيار إلى صواب إذا كان من الضروري مراعاة فترة زمنية مع حجوزات متداخلة عند حساب الفترات الزمنية المتاحة المحتملة على تقويم المورد. لا خطأ
    ConsiderSlotsWithProposedBookings منطقي عيّن هذا الخيار إلى صواب إذا كان من الضروري مراعاة فترة زمنية مع حجوزات مقترحة عند حساب الفترات الزمنية المتاحة المحتملة على تقويم المورد. لا خطأ
    ConsiderAppointments منطقي قم بتعيين هذا إلى صواب لتوافر موارد البحث، واجهة برمجة التطبيقات (API) لاحترام مواعيد Dataverse الحالية كحجوزات على المورد، بشرط تعيين إعدادات مستوى المؤسسة والموارد. تعتبر المواعيد التي تحمل حالتها مشغولة أو مكتملة غير متاحة لجدولة العمليات. لا خطأ
    ConsiderTravelTime منطقي عيّن هذا الخيار إلى صواب إذا كان من الضروري مراعاة وقت السفر عند حساب الفترات الزمنية المحتملة على تقويم المورد. لا صواب
    استثناء الموارد الخصائص منطقي اضبط هذا على True لاستبعاد خصائص الموارد في الفترات الزمنية التي استجابت لها. لا خطأ
    MovePastStartDateToCurrentDate منطقي عيّن هذا الخيار إلى صواب لنقل تاريخ بدء في الماضي إلى التاريخ الحالي. لا خطأ
    UseRealTimeResourceLocation منطقي عيّن هذا الخيار إلى صواب إذا كان من الضروري استخدام موقع الموارد في الوقت الحقيقي عند حساب الفترات الزمنية المحتملة على تقويم المورد. لا خطأ
    SortOrder مجموعة الكيانات حدد ترتيب الفرز باستخدام مجموعة كيانات. يمثل كل كيان في المجموعة معايير فرز واحدة، ويمكنه فقط الفرز Resources من الاستجابة ولكن ليس TimeSlots. يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.expando. فيما يلي السمات التي تحتاج إلى تعبئتها:
    1. الاسم (السلسلة): معايير الفرز
    2. SortOrder (Integer): اتجاه الفرز (0 للفرز التصاعدي و1 للفرز التنازلي)
    لا لا يوجد
    MaxResourceTravelRadius الكيان تحدد هذه السمة الحد الأقصى الذي يمكن تحديده في الكيان. يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.expando. فيما يلي السمات التي تحتاج إلى تعبئتها:
    1. القيمة (عشرية): نصف القطر
    2. الوحدة (عدد صحيح): وحدة المسافة. راجع مجموعة خيارات الوحدة msdyn_distance للقيم المحتملة.
    لا 0 كم. إذا كان الأمر كذلك، فلن يتم إرجاع أي موارد للمتطلبات في الموقع.
    MaxNumberOfResourcesToEvaluate عدد صحيح تحدد هذه السمة حدًا على عدد الموارد التي يتم وضعها في الاعتبار للطلب. لا إذا لم تكن هذه السمة مدرجة في استدعاء API، يستخدم النظام حد استرجاع توفر الموارد من تعريف الكيان القابل للجدولة كما هو معرف في إعدادات التحرير للكيانات المفعلة. إذا تم تضمينها في المكالمة، فإنها تستبدل حد استرداد توفر الموارد المحدد.
    ConsiderOutlookSchedules منطقي اضبط هذا على True إذا كان يجب النظر في جداول Outlook. متوفر فقط في الإصدارات 3.1.0 وما بعدها. لا خطأ

    كيان مواصفات المورد

    Name Type الوصف مطلوب افتراضي
    ResourceTypes مجموعة الكيانات تحدد هذه السمة نوع المورد المطلوب للمتطلب. استخدم مجموعة الكيانات لتحديد هذه السمة. يمثل كل كيان في المجموعة نوع مورد واحد قابل للحجز. يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.msdyn_resourceType. هذه الصفة مطلوبة:
    1. القيمة (عدد صحيح): قيمة مجموعة الخيارات التي تمثل نوع المورد.
      • 1- عام
      • 2- جهة الاتصال
      • 3- المستخدم
      • 4- المعدات
      • 5- الحساب
      • 6- طاقم العمل
      • 7- المنشأة
      • 8- المجموعات
    لا جميع أنواع الموارد ما عداد طواقم العمل
    PreferredResources مجموعة الكيانات تحدد هذه السمة الموارد المفضلة للمتطلب. أضف موارد إلى مجموعة الكيانات هذه لضمان أنها في قمة قائمة الموارد المتاحة. حتى الموارد التي ليست جزءا من مجموعة الكيانات موجودة في القائمة، ولكن فقط بعد الموارد المفضلة. لا لا يوجد
    RestrictedResources مجموعة الكيانات تحدد هذه السمة الموارد التي يجب عدم أخذها في الاعتبار للمتطلب. يتم تصفية جميع الفترات الزمنية لهذا المورد من قائمة النتائج من هذه الواجهة. لا لا يوجد
    MustChooseFromResources مجموعة الكيانات تحدد هذه السمة الموارد الوحيدة التي يمكن أن تكون موجودة في قائمة الموارد المتوفرة. وستقوم بتصفية كافة النتائج الأخرى من قائمة الإخراج.
    القيود الكيان تحدد هذه السمة القيود الإضافية التي ينبغي تطبيقها على استرداد الموارد المتوفرة. لا لا يوجد
    RetrieveResourcesQueryId Guid معرف استعلام استرداد الموارد. لا معرف استعلام استرداد الموارد الافتراضي.
    BookedResourceId Guid تحدد هذه السمة المورد المحجوز حاليًا للمتطلب. لا لا يوجد

    ملاحظة

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

    1. القيمة (التوجيه): معرف الموارد القابل للحجز للمورد المفضل أو المقيد أو MustChooseFrom القابل للحفظ. يجب أن يكون @odata.type لهذا الكيان هو Microsoft.Dynamics.CRM.msdyn_bookableresource.

    القيود

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

    راجع استعلام استرداد الموارد في إعدادات لوحة الجدولة لتحديد القيود التي قد يتم تطبيقها. إنها تتضمن، بشكل افتراضي، ما يلي:

    Name Type الوصف
    خصائص مجموعة الكيانات مجموعة من الخصائص التي يجب أن يمتلكها المورد المؤهل. كل إدخال يحتوي على معرف characteristic مميز. اختياريا، تضمين A ratingvalue مع معرف قيمة التقييم لتصفية الموارد حسب مستوى كفاءة محدد.
    الأدوار مجموعة الكيانات مجموعة من معرفات الأدوار التي يجب أن تكون متوفرة لدى المورد المؤهل.
    الأقَاليم مجموعة الكيانات مجموعة من معرفات المناطق. يجب تعيين مورد مؤهل إلى إحدى المناطق.
    UnspecifiedTerritory منطقي مع قيود المناطق، يحدد وجوب تعيين إحدى هذه المناطق أو عدم تعيين أي منطقة على الإطلاق للمورد المؤهل.
    OrganizationalUnits مجموعة الكيانات مجموعة من معرفات الوحدات التنظيمية. يجب أن يكون المورد المؤهل عضوًا في إحدى الوحدات التنظيمية المحددة.
    Teams مجموعة الكيانات مجموعة من معرفات الفرق. يجب أن ينتمي المورد المؤهل إلى أحد الفرق (هذا يعني بشكل ضمني أن نوع المورد هو مستخدم النظام).
    BusinessUnits مجموعة الكيانات مجموعة من معرفات وحدات الأعمال. يجب أن ينتمي المورد المؤهل إلى إحدى وحدات الأعمال (هذا يعني بشكل ضمني أن المورد هو مستخدم النظام).

    معلمات الإخراج

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

    Name Type الوصف
    TimeSlots مجموعة الكيانات مجموعة من نتائج الفترات الزمنية. لمزيد من المعلومات، راجع قسم كيان الفترة الزمنية .
    Resources مجموعة الكيانات مجموعة من نتائج الموارد. يتم تمثيل الموارد كمجموعة من الكيانات ذات السمات التالية:
    1. BookableResource (الكيان): كيان المورد القابل للحجز المتوفر للمتطلب.
    2. TotalAvailableTime (مزدوج): إجمالي الوقت المتاح للمورد لتنفيذ المتطلب.
    مرتبط‬ الكيان تمثل الموارد المرتبطة الموارد والفترات الزمنية للموارد غير المؤهلة مباشرة للمتطلب المطلوب لكنها مرتبطة. على سبيل المثال، إذا تأهل أحد أفراد طاقم العمل للمتطلب، فسيكون الأفراد الآخرون لطاقم العمل هذا النتائج ذات الصلة.
    1. Timeslots (EntityCollection): الفترات الزمنية للموارد المرتبطة. تعريف الفترات الزمنية هو نفسه كما هو موضح في القسم قسم الفترات الزمنية.
    2. الموارد (EntityCollection): الموارد ذات الصلة. تعريف الموارد هو نفسه كما هو موضح في تعريف سمة الموارد.
    الاستثناءات الكيان تحتوي هذه السمة على معلومات حول أي استثناء قد حدث ومعلومات حول ما إذا كان قد تم اقتطاع البحث عن المورد وأين تم اقتطاعه.
    1. الرسالة (String): رسالة استثناء
    2. ResourcesTruncatedAt (عدد صحيح): إذا تجاوز عدد الموارد حد الاسترداد؛ الرقم الذي تم اقتطاع الموار عنده.

    كيان الفترات الزمنية

    Name Type الوصف
    ID Guid المعرّف الفريد للفترة الزمنية.
    Type عدد صحيح نوع التوقيت المحدد. يمكن أن تكون واحدة من القيم التالية:
    • 0: متوفر
    • 1: مجدول
    • 2: متوقف
    • 3: فاصل
    StartTime التاريخ/الوقت وقت بدء الفترة الزمنية. إذا كان هناك سفر حسب المتطلب، فهذا هو وقت بدء السفر. إذا لم يكن كذلك، فهذه هي مدة بدء المتطلب.
    ArrivalTime التاريخ/الوقت وقت وصول الفترة الزمنية. إذا كان هناك سفر للمتطلب، فهذا هو وقت بدء المتطلب، بعد الانتهاء من السفر. وإذا لم يكن الأمر كذلك، فهو نفس وقت بدء الفترة الزمنية.
    EndTime التاريخ/الوقت وقت انتهاء الفترة الزمنية.
    الجهد عدد صحيح مجهود أو سعة المورد لتنفيذ المتطلبات.
    ResourceRequirement EntityReference متطلب المورد الذي يتم استرداد الفترات الزمنية له.
    محتمل منطقي قيمة منطقية تشير إلى ما إذا كان لدى الفترة الزمنية القدرة على تلبية المتطلب المطلوب.
    IsDuplicate منطقي قيمة منطقية إلى ما إذا كانت الفترة الزمنية عبارة عن تكرار.
    AllowOverlapping منطقي قيمة منطقية تشير إلى إذا كان التداخل مسموحًا.
    Resource الكيان المورد الذي تنتمي إليه الفترة الزمنية. لمزيد من المعلومات، راجع مورد الفتحة الزمنية.
    Location الكيان الموقع به ثلاث سمات:
    1. الموقع (الكيان): يتضمن سمتين -
      • خط العرض
      • خط الطول
    2. WorkLocation (عدد صحيح): يتضمن ثلاث سمات -
      • في الموقع. تستثني المتطلبات في الموقع أنواع موارد المجموعة والمنشآت من النتائج.
      • المنشأة
      • غير محدد الموقع
    3. LocationSourceSlot (عدد صحيح): يتضمن موقع معلومات المصدر ثلاث سمات -
      • المشتركه
      • كيان GPS مخصص
      • تدقيق تطبيق الأجهزة المحمولة
    سفر الكيان يحتوي هذا الكيان على تفاصيل وقت السفر ومعلومات المسافة لفترة زمنية. فيما يلي السمات:
    1. المسافة (مزدوجة): مسافة السفر
    2. TravelTime (مزدوج): وقت السفر بالدقائق.
    3. DistanceFromStartLocation (مزدوج‏‎): المسافة من موقع بدء المورد.
    4. DistanceFromEndLocation (مزدوج): المسافة من موقع انتهاء المورد.
    5. DistanceMethodSourceSlot (عدد صحيح): المصدر أو نوع الحساب لقيم المسافة
      • خدمة الخريطة
      • في خط مستقيم
    التالي الكيان يحتوي هذا الكيان على تفاصيل حول وقت السفر والمسافة إلى حجز الفترة الزمنية التالي.
    1. NextScheduleLocation (الكيان): موقع الحجز التالي. يتضمن الكيان سمتين:
      • خط العرض
      • خط الطول
    2. NextScheduleTravelTime (عدد صحيح): وقت السفر إلى الحجز التالي بالدقائق.
    التوفر الكيان معلومات تفصيلية عن التوفر للفترة الزمنية. يستخدم هذا الكيان مع المجموعات الزمنية.
    1. AvailableIntervals (EntityCollection): مجموعة من الفواصل الزمنية المتوفرة. يحتوي كل كيان في هذه المجموعة على تفاصيل حول الفاصل الزمني للمجموعة الزمنية.
      • StartTime (DateTime): وقت البدء.
      • ArrivalTime (DateTime): وقت الوصول.
      • EndTime (DateTime): وقت الانتهاء.
      • TimeGroupId (DateTime): معرف مجموعة الوقت.
      • TimeGroupDetailStartTime (DateTime): وقت بدء مجموعة الوقت.
      • TimeGroupDetailEndTime (DateTime): وقت انتهاء مجموعة الوقت.
    2. TotalAvailableDuration (Double): إجمالي المدة المتاحة بالدقائق.
    3. TotalAvailableTime (مزدوج): إجمالي الوقت المتاح للمورد في اليوم (بالدقائق).
    TimeGroup الكيان التفاصيل حول مجموعة وقت.
    1. TimeGroupId (Guid): معرف مجموعة الوقت.
    2. TimeGroupDetail (EntityReference): مرجع كيان إلى تفاصيل مجموعة الوقت.
    3. TimeGroupDetailStartTime (DateTime): وقت بدء تفاصيل مجموعة الوقت.
    4. TimeGroupDetailEndTime (DateTime): وقت انتهاء تفاصيل مجموعة الوقت.

    Tip

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

    مورد الفترة الزمنية

    Name Type الوصف
    Resource EntityReference مرجع كيان إلى مورد قابل للحجز.
    ResourceGroup EntityReference مرجع كيان إلى مجموعة موارد قابلة للحجز.
    BusinessUnit EntityReference مرجع كيان إلى وحدة العمل.
    OrganizationalUnit EntityReference مرجع كيان للوحدة التنظيمية.
    نوع المورد عدد صحيح نوع المورد. راجع السمة ResourceType في الكيان BookableResource للقيم المحتملة.
    PoolId Guid معرف المجموعة التي ينتمي إليها المورد أثناء مدة الفترة الزمنية.
    CrewId Guid معرف طاقم العمل الذي ينتمي إليها المورد أثناء مدة الفترة الزمنية.
    خصائص مجموعة الكيانات خصائص المورد القابل للحجز. يحتوي كل كيان في المجموعة على كيانات ذات خصائص ومعلومات تصنيف.
    1. الخاصية (EntityReference): مرجع كيان إلى الخاصية.
    2. RatingId (Guid) معرف التصنيف للخاصية.
    3. RatingName (String): اسم التصنيف.
    4. RatingValue (عدد صحيح): قيمة التصنيف.
    HasStartLocation منطقي قيمة منطقية تشير إلى ما إذا كان المورد لديه موقع بدء.
    HasEndLocation منطقي قيمة منطقية تشير إلى ما إذا كان المورد لديه موقع انتهاء.
    البريد الإلكتروني سلسلة عنوان البريد الإلكتروني الخاص بالمورد.
    الهاتف سلسلة رقم هاتف المورد.
    ImagePath سلسلة المسار إلى صورة المورد.
    CalendarId Guid معر ة تقويم المورد.

    الأمثلة

    في هذا المثال، تستخدم الإصدار 3 من واجهة برمجة تطبيقات مساعد الجدول، التي تدعم استدعاءات واجهة برمجة تطبيقات الويب، لمتطلبات مدتها 60 دقيقة. باستخدام الخاصية settings ، تقوم بتصفية النتائج. تأخذ في الاعتبار نوعين من الموارد للنتائج النهائية: 1 و2 (بمعنى آخر، العام والاتصال).

    {
        "Version": "4",
        "IsWebApi": true,
        "Requirement": {
            "msdyn_fromdate": "2021-07-14T00:00:00Z",
            "msdyn_todate": "2021-07-15T23:59:00Z",
            "msdyn_remainingduration": 60,
            "msdyn_duration": 60,
            "msdyn_TimeGroup@odata.bind": "/msdyn_timegroups(c3dc79ea-d12f-ee11-9cc9-000d3a745a58)",
            "@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourcerequirement"
        },
        "Settings": {
            "ConsiderSlotsWithProposedBookings": false,
            "MovePastStartDateToCurrentDate": true,
            "@odata.type": "Microsoft.Dynamics.CRM.expando"
        },
        "ResourceSpecification": {
            "@odata.type": "Microsoft.Dynamics.CRM.expando",
            "ResourceTypes@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
            "ResourceTypes": [
                {
                    "@odata.type": "Microsoft.Dynamics.CRM.expando",
                    "value": "1"
                },
                {
                    "@odata.type": "Microsoft.Dynamics.CRM.expando",
                    "value": "2"
                }
            ],
            "Constraints": {
                "@odata.type": "Microsoft.Dynamics.CRM.expando",
                "Characteristics@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
                "Characteristics": [
                    {
                        "@odata.type": "Microsoft.Dynamics.CRM.expando",
                        "characteristic": {
                            "@odata.type": "Microsoft.Dynamics.CRM.expando",
                            "value": "67387f9f-12e2-ec11-bb43-000d3aed25f7"
                        },
                        "ratingvalue": {
                            "@odata.type": "Microsoft.Dynamics.CRM.expando",
                            "value": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
                        }
                    }
                ],
                "Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
                "Territories": [
                    {
                        "@odata.type": "Microsoft.Dynamics.CRM.expando",
                        "value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
                    }
                ],
                "Roles@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
                "Roles": [
                    {
                        "@odata.type": "Microsoft.Dynamics.CRM.expando",
                        "value": "76998e42-744c-f011-877d-6045bdfb899e"
                    }
                ]
            }
        }
    }
    
    

    يوضح المثال التالي الاستخدام الصحيح لمجموعات الكيانات. في هذه الحالة، يحدد MustChooseFromResources.

    {
        "Version": "4",
        "IsWebApi": true,
        "Requirement": {
            "msdyn_fromdate": "2021-07-14T00:00:00Z",
            "msdyn_todate": "2021-07-15T23:59:00Z",
            "msdyn_remainingduration": 60,
            "msdyn_duration": 60,
            "msdyn_latitude": 47.64807,
            "msdyn_longitude": -122.41249,
            "msdyn_worklocation": 690970000,
            "msdyn_TimeGroup@odata.bind": "/msdyn_timegroups(c3dc79ea-d12f-ee11-9cc9-000d3a745a58)",
            "@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourcerequirement"
        },
        "Settings": {
            "ConsiderSlotsWithProposedBookings": false,
            "MovePastStartDateToCurrentDate": true,
            "MaxNumberOfResourcesToEvaluate":500,
            "ConsiderTravelTime": true,
            "MaxResourceTravelRadius": {
                "Value": 20,
                "Unit" : 192350000,
                "@odata.type": "Microsoft.Dynamics.CRM.expando"
            },
            "@odata.type": "Microsoft.Dynamics.CRM.expando"
        },
        "ResourceSpecification": {
            "@odata.type": "Microsoft.Dynamics.CRM.expando",
            "ResourceTypes@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
            "ResourceTypes": [
                {
                    "@odata.type": "Microsoft.Dynamics.CRM.expando",
                    "value": "1"
                },
                {
                    "@odata.type": "Microsoft.Dynamics.CRM.expando",
                    "value": "2"
                }
            ],
            "MustChooseFromResources@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
            "MustChooseFromResources": [
                {
                    "@odata.type": "Microsoft.Dynamics.CRM.expando",
                    "value": "2145a982-f718-ed11-b83e-0022482d79c8"
                }
            ],
            "Constraints": {
                "@odata.type": "Microsoft.Dynamics.CRM.expando",
                "Characteristics@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
                "Characteristics": [
                    {
                        "@odata.type": "Microsoft.Dynamics.CRM.expando",
                        "characteristic": {
                            "@odata.type": "Microsoft.Dynamics.CRM.expando",
                            "value": "67387f9f-12e2-ec11-bb43-000d3aed25f7"
                        },
                        "ratingvalue": {
                            "@odata.type": "Microsoft.Dynamics.CRM.expando",
                            "value": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
                        }
                    }
                ],
                "Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
                "Territories": [
                    {
                        "@odata.type": "Microsoft.Dynamics.CRM.expando",
                        "value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
                    }
                ]
            }
        }
    }