Kaynak kullanılabilirliği API'sini arama

Field Service kuruluşlarının, genellikle doğrudan müşteri tarafından bir hizmet aracı aracılığıyla iş zamanlaması gerekir. Rezervasyonlar genellikle şirketin elindeki kaynaklara ve işin gereksinimlerine göre oluşturulur.

En az Dynamics 365 Field Service v8.8.43.51 ve Universal Resource Scheduling v3.12.46.21 kullandığınızda, iş için uygun tüm kaynakları almak için msdyn_SearchResourceAvailability API'sini kullanarak işi verimli şekilde zamanlayabilirsiniz. Yazı sırasında, v3 web API çağrılarının en son sürümü msdyn_SearchResourceAvailability ve onları destekliyor.

Uyarı

API'nin en son sürümünü kullanın çünkü eski sürümler artık kullanılmayan kimlik doğrulama yöntemleri kullanabilir.

Giriş parametreleri

Name Türü Açıklama Gerekli Default
Sürüm Dize API'nin sürüm numarası, çağrılması gereken API sürümünü tanımlar. Major.minor.patch biçimini izler.

  • Eğer herhangi bir sürüm sunulmuyorsa, en yeni kullanılıyor (önerilir)
  • Yalnızca ana sürüm belirtilirse, bu ana sürüm için kullanılabilen en yüksek küçük ve düzeltme eki sürümünü çağırır.
  • Hem ana hem de ikincil sürümler belirtilirse, kullanılabilir en yüksek düzeltme eki sürümünü çağırır.
  • Sürümün üç bölümünden de bahsedilirse, belirtilen API'nin tam sürümünü çağırır.
  • Hayır Güncel sürüm
    IsWebApi Boolean Web API üzerinden program asistanını kullanmak için True olarak ayarlayın. Evet -Yok-
    Gereksinim Varlık Bu öznitelik, kaynak kullanılabilirliğinin alındığı kaynak gereksinimini belirtir. msdyn_resourcerequirement türünde bir varlık olması bekleniyor. Gereksinim, veritabanından önceden varolan bir kayıt veya gerekli kısıtlamalarla anında oluşturulan bir kayıt olabilir. Varlık, aramanızla ilgili tüm özellikleri içermelidir. Bu varlık için @odata.typeMicrosoft.Dynamics.CRM.msdyn_requirement olmalıdır. Aşağıdakiler doldurulacak bazı önemli özniteliklerdir:
    1. msdyn_fromdate (DateTime): ISO biçiminde gereksinim başlangıç tarihi
    2. msdyn_todate (DateTime): ISO biçiminde gereksinim bitiş tarihi
    3. msdyn_remainingduration (Tamsayı): Gereksinimin dakika cinsinden kalan süresi
    4. msdyn_duration (Tamsayı): Gereksinimin dakika cinsinden toplam süresi
    Evet -Yok-
    Settings Varlık Ayarlar özniteliği, alınan kaynakları daha fazla filtrelemeye yardımcı olur. Bir varlık çantasında ayarları öznitelik olarak belirtin. Varlığın türü önemli değil. Herhangi bir varlık mantıksal adını belirtebilirsiniz. Evet -Yok-
    ResourceSpecification Varlık Bu özniteliği resourceSpecification bir varlık torbasındaki öznitelikler olarak tanımlayın. Bu varlık için @odata.typeMicrosoft.Dynamics.CRM.expando olmalıdır. Hayır Hiç kimse

    Ayarlar varlığı

    Ayarlar varlığı Dataverse'te bulunmaz ancak zamanlama yardımcısı API'sinin sonuçları filtrelemesine yardımcı olan aşağıdaki özniteliklerin tümünün bir koleksiyonudur. Dolayısıyla, bu varlık için @odata.typeMicrosoft.Dynamics.CRM.expando olmalıdır.

    Name Türü Açıklama Gerekli Default
    ConsiderSlotsWithLessThanRequiredCapacity Boolean Kaynağın takvimindeki kullanılabilir olası zaman aralıkları hesaplanırken gerekli kapasiteden (çabadan) daha az olan bir zaman aralığı düşünülmesi gerekiyorsa bunu Doğru olarak ayarlayın. Hayır Yanlış
    ConsiderSlotsWithLessThanRequiredDuration Boolean Kaynağın takvimindeki kullanılabilir olası zaman aralıkları hesaplanırken gerekli süreden daha az süreye sahip bir zaman aralığı dikkate alınmalıysa bunu Doğru olarak ayarlayın. Hayır Yanlış
    ConsiderSlotsWithOverlappingBooking Boolean Kaynağın takvimindeki olası kullanılabilir zaman aralıkları hesaplanırken çakışan rezervasyonların olduğu bir zaman aralığı dikkate alınmalıysa bunu Doğru olarak ayarlayın. Hayır Yanlış
    ConsiderSlotsWithProposedBookings Boolean Kaynağın takvimindeki potansiyel kullanılabilir zaman aralıkları hesaplanırken önerilen rezervasyonların yer alan bir zaman aralığı dikkate alınmalıysa bunu Doğru olarak ayarlayın. Hayır Yanlış
    ConsiderAppointments Boolean Kuruluş ve kaynak düzeyi ayarlarının yapıldığı koşulda, kaynak kullanılabilirliğini arama API'sinin var olan Dataverse randevularını kaynak üzerinde ayırmalar kabul etmesi için bu seçeneği True olarak ayarlayın. Yoğun veya Tamamlanmış durumlu randevular, operasyonların planlanması için kullanılamaz sayılır. Hayır Yanlış
    ConsiderTravelTime Boolean Kaynağın takvimindeki olası zaman aralıkları hesaplanırken seyahat süresi dikkate alınmalıysa bunu Doğru olarak ayarlayın. Hayır Doğru
    ExcludeResourceCharacteristics Boolean Yanıt olarak zaman dilimleri için kaynak özelliklerini hariç tutmak için bunu True olarak ayarlayın. Hayır Yanlış
    MovePastStartDateToCurrentDate Boolean Geçmişteki bir başlangıç tarihini geçerli tarihe taşımak için bunu Doğru olarak ayarlayın. Hayır Yanlış
    UseRealTimeResourceLocation Boolean Kaynağın takvimindeki olası zaman aralıkları hesaplanırken kaynakların gerçek zamanlı konumunun kullanılması gerekiyorsa bunu Doğru olarak ayarlayın. Hayır Yanlış
    SortOrder EntityCollection Bir varlık koleksiyonu kullanarak sıralama düzenini belirtin. Koleksiyondaki her varlık bir sıralama ölçütünü temsil eder ve yalnızca yanıttan sıralama Resources yapabilir, ancak TimeSlots. Bu varlık için @odata.typeMicrosoft.Dynamics.CRM.expando olmalıdır. Doldurmanız gereken öznitelikler şunlardır:
    1. Ad (Dize): Sıralama ölçütü
    2. SortOrder (Tamsayı): Sıralama yönü (artan için 0 ve azalan için 1)
    Hayır Hiç kimse
    MaxResourceTravelRadius Varlık Bu öznitelik, bir varlıkta tanımlanabilecek en yüksek değeri belirtir. Bu varlık için @odata.typeMicrosoft.Dynamics.CRM.expando olmalıdır. Doldurmanız gereken öznitelikler şunlardır:
    1. Değer (Ondalık): Yarıçap
    2. Birim (Tamsayı): Mesafe birimi. Olası değerler için msdyn_distance birim seçeneği kümesine bakın.
    Hayır 0 km uzaklıktadır. Bu durumda, yerinde gereksinimler için hiçbir kaynak döndürülmez.
    MaxNumberOfResourcesToEvaluate Tamsayı Bu öznitelik, istek için dikkate alınılan kaynak sayısı için bir sınır tanımlar. Hayır Bu öznitelik API çağrısına dahil edilmediyse, sistem Edit settings for enabled entities (Edit settings'de tanımlanan Kaynak Erişilebilirliği Erişim Sınırı'nı kullanır. Çağrıya dahil edilirse, tanımlanan Kaynak Kullanılabilirliği Alma Sınırı'nın üzerine yazar.
    ConsiderOutlookSchedules Boolean Outlook programları dikkate alınacaksa, bunu Trueolarak ayarlayın. Sadece 3.1.0 ve sonrasında mevcut. Hayır Yanlış

    Kaynak özelliği varlığı

    Name Türü Açıklama Gerekli Default
    ResourceTypes EntityCollection Bu öznitelik, gereksinim için gereken kaynak türünü belirtir. Bu özniteliği belirtmek için bir varlık koleksiyonu kullanın. Koleksiyondaki her varlık bir ayrılabilir kaynak türünü temsil eder. Bu varlık için @odata.typeMicrosoft.Dynamics.CRM.msdyn_resourceType olmalıdır. Bu özellik gereklidir:
    1. Değer (Tamsayı): Kaynak türünü temsil eden seçenek kümesi değeri:
      • 1- Genel
      • 2- ilgili kişi
      • 3- Kullanıcı
      • 4- Ekipman
      • 5- Firma
      • 6- Personel
      • 7- Tesis
      • 8- Havuzlar
    Hayır Personel dışındaki tüm kaynak türleri
    PreferredResources EntityCollection Bu öznitelik, gereksinim için tercih edilen kaynakları belirtir. Bu varlık koleksiyonuna kaynakları ekleyin ki mevcut kaynaklar listesinin en üstünde olduklarından emin olun. Varlık koleksiyonuna dahil olmayan kaynaklar bile listede yer alır, ancak sadece tercih edilen kaynaklardan sonra. Hayır Hiç kimse
    RestrictedResources EntityCollection Bu öznitelik, gereksinim için dikkate alınmaması gereken kaynakları belirtir. Bu kaynağın tüm zaman dilimleri bu API'den alınan sonuçlar listesinden filtrelenmiştir. Hayır Hiç kimse
    MustChooseFromResources EntityCollection Bu öznitelik, kullanılabilir kaynaklar listesinde olabilecek tek kaynakları belirtir. Çıkış listesinden tüm diğer sonuçları filtreler.
    Sınırlamalar Varlık Bu öznitelik, kullanılabilir kaynakların alınmasına uygulanması gereken ek kısıtlamaları belirtir. Hayır Hiç kimse
    RetrieveResourcesQueryId Kılavuz Kaynakları Al sorgusunun kimliği. Hayır Varsayılan Kaynağı Al Sorgusu Kimliği.
    BookedResourceId Kılavuz Bu öznitelik, gereksinim için rezerve edilmiş kaynağı belirtir. Hayır Hiç kimse

    Uyarı

    Preferred, Restricted ve MustChooseFrom kaynak özniteliklerini belirtmek için rezervasyon yapılabilir kaynak varlıklarından oluşan bir varlık koleksiyonunu kullanın. Koleksiyondaki her varlık, bir Tercih Edilen, Kısıtlı veya Seçmesi GerekenSeç kaynağını temsil eder. Bu özellik onlar için gereklidir:

    1. Değer (Rehber): Preferred, Restricted veya MustChooseFrom kaynağının rezervasyon edilebilir kaynak kimliği. Bu varlık için @odata.typeMicrosoft.Dynamics.CRM.msdyn_bookableresource olmalıdır.

    Sınırlamalar

    Bu varlıktaki öznitelikler aracılığıyla ek kısıtlamalar belirtin. Varlığın türü önemli değil. Herhangi bir varlık mantıksal adını belirtebilirsiniz.

    Hangi kısıtlamaların uygulanabileceğini belirlemek için zamanlama panosu Kaynakları Al Sorgusuna göz atın. Varsayılan olarak, aşağıdakileri içerir:

    Name Türü Açıklama
    Özellikler EntityCollection Nitelikli bir kaynağın sahip olması gereken özellikler koleksiyonu. Her giriş, karakteristik ID'ye sahip bir characteristic içerir. İsteğe göre, kaynakları belirli bir yeterlilik seviyesine göre filtrelemek için derecelendirme değeri ID'si ile bir ratingvalue a'yı ekleyin.
    Rolleri EntityCollection Nitelikli bir kaynağın sahip olması gereken rol kimlikleri topluluğu.
    Bölgeler EntityCollection Bölge kimlikleri koleksiyonu. Bölgelerden birine nitelikli kaynak atanmalıdır.
    UnspecifiedTerritory Boolean Bölgeler kısıtlamasıyla birlikte, bölgelerden birine nitelikli bir bölge atanması gerektiğini veya hiç bölge atanmaması gerektiğini belirtir.
    OrganizationalUnits EntityCollection Kuruluş birimi kimlikleri koleksiyonu. Nitelikli bir kaynak belirtilen kuruluş birimlerinden birinin üyesi olmalıdır.
    Takımlar EntityCollection Takım kimlikleri koleksiyonu. Nitelikli bir kaynak takımlardan birine ait olmalıdır (kaynak türünün bir sistem kullanıcısı olduğu anlamına gelir).
    BusinessUnits EntityCollection Bir dizi iş birimi kimlikleri. Nitelikli bir kaynak departmanlardan birine ait olmalıdır (kaynağın bir sistem kullanıcısı olduğu anlamına gelir).

    Çıkış parametreleri

    En yüksek düzeyde, çıktı aşağıdaki dört parametreye sahiptir. Sonuçlar varlık koleksiyonlarında ve varlıklarda temsil edilir. Yanıtlar, burada null değer olarak tanımlanan tüm öznitelikleri içermeyebilir veya NA değerleri yanıttan atlanmayabilir. Erişmeye çalışmadan önce her zaman bir özniteliğin varlığını denetleyin.

    Name Türü Açıklama
    TimeSlots EntityCollection Zaman aralığı sonuçları koleksiyonu. Daha fazla bilgi için zaman dilimi varlığı bölümüne bakın.
    Resources EntityCollection Kaynak sonuçları koleksiyonu. Kaynaklar, aşağıdaki özniteliklere sahip varlıklar topluluğu olarak temsil edilir:
    1. BookableResource (Varlık): Gereksinim için kullanılabilen rezerve edilebilir kaynak varlığı.
    2. TotalAvailableTime (Double): Kaynağın gereksinimi gerçekleştirmesi için toplam kullanılabilir süre.
    Related Varlık İlgili kaynaklar, istenen gereksinim için doğrudan nitelenmiş olmayan ancak ilişkili kaynakların kaynaklarını ve zaman aralıklarını temsil eder. Örneğin, bir ekip üyesi bir gereksinim için uygun olursa bu ekibin diğer üyeleri ilgili sonuçlar olur.
    1. Zaman Aralıkları (EntityCollection): İlgili kaynakların zaman aralıkları. Zaman aralıklarının tanımı, zaman aralıkları bölümünde açıklananla aynıdır.
    2. Kaynaklar (EntityCollection): İlgili kaynaklar. Kaynakların tanımı, kaynak özniteliği tanımında açıklananla aynıdır.
    Exceptions Varlık Bu öznitelik, oluşan herhangi bir özel durum hakkında ve kaynak aramasının kesilip kesilmediği ve nerede kesildiği hakkında bilgi içerir.
    1. İleti (Dize): Özel durum iletisi
    2. ResourcesTruncatedAt (Tamsayı): Kaynak sayısı alma sınırını aştıysa kaynakların kesildiği yer.

    Zaman aralıkları varlığı

    Name Türü Açıklama
    Kod Kılavuz Zaman aralığı için benzersiz tanımlayıcı
    Türü Tamsayı Zaman dilimi türü. Aşağıdaki değerlerden biri olabilir:
    • 0: Kullanılabilir
    • 1: Planlanan
    • 2: Kapalı
    • 3: Mola
    StartTime Tarih Saat Zaman diliminin başlangıç saati. Eğer gereklilik için seyahat varsa, bu zaman seyahatin başlangıç zamanıdır. Eğer yoksa, bu zaman gereksinimin başlangıç zamanıdır.
    Varış Zamanı Tarih Saat Zaman diliminin varış saati. Eğer gereklilik için seyahat varsa, bu zaman seyahat tamamlandıktan sonra başlangıç zamanıdır. Yoksa zaman diliminin başlangıç saatiyle aynıdır.
    EndTime Tarih Saat Zaman diliminin bitiş saati.
    Effort Tamsayı Gereksinimleri yerine getirmek için kaynağın çabası veya kapasitesi.
    ResourceRequirement EntityReference Zaman aralıklarının alındığı kaynak gereksinimi.
    Potansiyel Boolean Zaman diliminin istenen gereksinimi karşılama potansiyeline sahip olup olmadığını gösteren bir boole değeri.
    IsDuplicate Boolean Zaman diliminin yinelenen olup olmadığını gösteren bir boole değeri.
    AllowOverlapping Boolean Çakışıp çakışmaya izin verilmediğini gösteren bir boole değeri.
    Resource Varlık Zaman diliminin ait olduğu kaynak. Daha fazla bilgi için bkz. zaman aralığı kaynağı.
    Location Varlık Konumun üç öznitelliği vardır:
    1. Konum (Varlık): İki özniteliği vardır:
      • Enlem
      • Boylam
    2. WorkLocation (Tamsayı): Üç özniteliği vardır:
      • Yerinde. Yerinde gereksinimler, havuz ve tesis kaynak türlerini sonuçlardan hariç tutar.
      • Tesis
      • Konum Belirsiz
    3. LocationSourceSlot (Tamsayı): Konum bilgilerinin kaynağının üç özniteliği vardır:
      • Ortak
      • Özel GPS varlığı
      • Mobil denetim
    Seyahat Varlık Bu varlık, bir zaman dilimi için seyahat süresi ve mesafe bilgilerinin ayrıntılarını içerir. Öznitelikler şunlardır:
    1. Mesafe (Double): Seyahat mesafesi
    2. TravelTime (Double): Dakika olarak seyahat süresi.
    3. DistanceFromStartLocation (Double): Kaynağın başlangıç konumundan uzaklık.
    4. DistanceFromEndLocation (Double): Kaynağın bitiş konumundan uzaklık.
    5. DistanceMethodSourceSlot (Tam sayı): Mesafe değerlerinin kaynağı veya hesaplama tipi
      • Harita Hizmeti
      • Kuş uçuşu
    İleri Varlık Bu varlık, seyahat süresi ve bir sonraki zaman slot rezervasyonuna olan mesafe hakkında ayrıntılar içerir.
    1. NextScheduleLocation (Varlık): Bir sonraki rezervasyonun konumu. Varlığın iki özniteliği vardır:
      • Enlem
      • Boylam
    2. NextScheduleTravelTime (Tamsayı): Dakika cinsinden bir sonraki rezervasyona seyahat süresi.
    Kullanılabilirlik Varlık Bir zaman aralığı için ayrıntılı kullanılabilirlik bilgileri. Bu varlık zaman gruplarıyla birlikte kullanılır.
    1. AvailableIntervals (EntityCollection): Kullanılabilir aralıklar koleksiyonu. Bu koleksiyondaki her varlık bir zaman grubu aralığı hakkında ayrıntılar içerir.
      • StartTime (DateTime): Başlangıç saati.
      • ArrivalTime (DateTime): Varış saati.
      • EndTime (DateTime): Bitiş saati.
      • TimeGroupId (DateTime): Saat grubu kimliği.
      • TimeGroupAyrıntılartartTime (DateTime): Saat grubu başlangıç saati.
      • TimeGroupDetailEndTime (DateTime): Saat grubu bitiş saati.
    2. TotalAvailableDuration (Double): Dakika cinsinden toplam kullanılabilir süre.
    3. TotalAvailableTime (Double): Kaynağın bir günde sahip olduğu toplam kullanılabilir süre (dakika cinsinden).
    TimeGroup Varlık Bir zaman grubuyla ilgili ayrıntılar.
    1. TimeGroupId (Guid): Zaman grubu kimliği.
    2. TimeGroupDetail (EntityReference): Zaman grubu ayrıntısına varlık başvurusu.
    3. TimeGroupAyrıntılartartTime (DateTime): Saat grubu ayrıntı başlangıç saati.
    4. TimeGroupDetailEndTime (DateTime): Saat grubu ayrıntı bitiş saati.

    Tip

    API kullanarak rezervasyon oluştururken, tabloda tanımlanan Potansiyel alanını kullanın. Bu alanın kullanılmaması çakışan veya uygun olmayan ayırmalara yol açabilir.

    Zaman aralığı kaynağı

    Name Türü Açıklama
    Resource EntityReference Ayrılabilir kaynağına yönelik bir varlık başvurusu.
    ResourceGroup EntityReference Ayrılabilir kaynak grubuna yönelik bir varlık başvurusu.
    BusinessUnit EntityReference Departmana varlık referansı.
    OrganizationalUnit EntityReference Kuruluş birimine varlık referansı.
    KaynakTürü Tamsayı Kaynağın türü. Olası değerler için BookableResource varlığındaki ResourceType özniteliğini inceleyin.
    PoolId Kılavuz Kaynağın zaman aralığı sırasında üyesi olduğu havuzun kimliği.
    CrewId Kılavuz Kaynağın zaman aralığı sırasında üyesi olduğu ekibin kimliği.
    Özellikler EntityCollection Rezerve edilebilir kaynak özellikleri. Koleksiyondaki her varlık, özellikleri ve derecelendirme bilgilerine sahip varlıklar içerir.
    1. Karakteristik (EntityReference): Özelliğe bir varlık başvurusu.
    2. RatingId (Guid) Karakteristiğin derecelendirme kimliği.
    3. RatingName (Dize): Derecelendirme adı.
    4. RatingValue (Tamsayı): Derecelendirme değeri.
    HasStartLocation Boolean Kaynağın başlangıç konumu olup olmadığını gösteren boole değeri.
    HasEndLocation Boolean Kaynağın bitiş konumu olup olmadığını gösteren bir boole değeri.
    E-posta Dize Kaynağın e-posta adresi.
    Telefon Dize Kaynağın telefon numarası.
    ImagePath Dize Kaynak resminin yolu.
    CalendarId Kılavuz Kaynağın takvim kimliği.

    Örnekler

    Bu örnekte, web API çağrılarını destekleyen schedule assistant API'nin 3. sürümünü 60 dakika süreli bir gereksinim için kullanıyorsunuz. Özniteliği settings kullanarak sonuçları filtrelersiniz. Nihai sonuçlar için iki kaynak türü dikkate alınıyor: 1 ve 2 (yani genel ve kontakt).

    {
        "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"
                    }
                ]
            }
        }
    }
    
    

    Aşağıdaki örnek varlık koleksiyonlarının doğru kullanımını göstermektedir. Bu durumda, MustChooseFromResourcesbelirtir .

    {
        "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"
                    }
                ]
            }
        }
    }