مشاركة عبر


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

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

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

إشعار

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

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

الاسم نوع الوصف مطلوبة Default
الإصدار السلسلة‬ يحدد رقم إصدار API إصدار API الذي يجب استدعاءه. وهو يتبع تنسيق major.minor.patch. من غير الضروري أن يحتوي الطلب على رقم الإصدار الكامل.

  • إذا تم تحديد إصدار رئيسي فقط، فهوي يستدعي أعلى إصدار ثانوي وإصدار تصحيح متوفر لذلك الإصدار الرئيسي.
  • إذا تم تحديد الإصدارين الرئيسي والثانوي، فإنه يستدعي أعلى إصدار تصحيح متوفر.
  • إذا تمت الإشارة إلى الأجزاء الثلاثة كلها من الإصدار، فهو يستدعي الإصدار الصحيح من واجهة API المحددة.
  • نعم -غير متوفر-
    IsWebApi قيمة منطقية عيّن هذا الخيار إلى صواب لاستخدام مساعد الجدولة عبر واجهة API الويب. نعم -غير متوفر-
    المتطلبات الكيان تحدد هذه السمة متطلب المورد الذي يتم استرداد توفر المورد له. من المتوقع أن يكون هذا كيان من النوع 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. لا. None

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

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

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

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

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

    إشعار

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

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

    القيود

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

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

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

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

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

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

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

    الاسم نوع الوصف
    البطاقة/رقم البطاقة GUID المعرّف الفريد للفترة الزمنية.
    نوع رقم صحيح بإمكان نوع الفترة الزمنية أن يكون واحدًا مما يلي:
    • 0: متوفر
    • 1: مجدول
    • 2: متوقف
    • 3: فاصل
    StartTime DateTime وقت بدء الفترة الزمنية. إذا كان هناك سفر للمتطلب، يكون هذا هو وقت بدء السفر. وإذا لم يكن الأمر كذلك، فهذا هو وقت بدء المتطلب.
    ArrivalTime DateTime وقت وصول الفترة الزمنية. إذا كان هناك سفر للمتطلب، يكون هذا هو وقت بدء المتطلب، بعد إكمال السفر. وإذا لم يكن الأمر كذلك، فهو نفس وقت بدء الفترة الزمنية.
    EndTime DateTime وقت انتهاء الفترة الزمنية.
    الجهد رقم صحيح مجهود أو سعة المورد لتنفيذ المتطلبات.
    ResourceRequirement EntityReference متطلب المورد الذي يتم استرداد الفترات الزمنية له.
    محتمل قيمة منطقية قيمة منطقية تشير إلى ما إذا كان لدى الفترة الزمنية القدرة على تلبية المتطلب المطلوب.
    IsDuplicate قيمة منطقية قيمة منطقية إلى ما إذا كانت الفترة الزمنية عبارة عن تكرار.
    AllowOverlapping قيمة منطقية قيمة منطقية تشير إلى إذا كان التداخل مسموحًا.
    مورد الكيان المورد الذي تنتمي إليه الفترة الزمنية. لمزيد من المعلومات، راجع مورد الفتحة الزمنية.
    الموقع الكيان الموقع به ثلاث سمات:
    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): وقت انتهاء تفاصيل مجموعة الوقت.

    تلميح

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

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

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

    الأمثلة

    في هذا المثال، يتم استخدام الإصدار v3 من API لمساعد الجدولة الذي يسمح باستدعاءات API الويب لمدة 60 دقيقة. باستخدام سمة الإعدادات، يتم تصفية النتائج. يتم أخذ نوعين من الموارد في الاعتبار للنتائج النهائية: 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"
                        }
                    }
                ],
                "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"
                        }
                    }
                ],
                "Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
                "Territories": [
                    {
                        "@odata.type": "Microsoft.Dynamics.CRM.expando",
                        "value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
                    }
                ]
            }
        }
    }