Mencari API ketersediaan sumber daya

Organisasi layanan lapangan perlu menjadwalkan pekerjaan, seringkali melalui layanan agen langsung oleh pelanggan. Pemesanan biasanya dibuat berdasarkan sumber daya yang tersedia untuk perusahaan dan persyaratan pekerjaan.

Saat Anda menggunakan setidaknya Dynamics 365 Field Service v8.8.43.51 dan Universal Resource Scheduling v3.12.46.21 untuk menjadwalkan pekerjaan, gunakan msdyn_SearchResourceAvailability API untuk mengambil semua sumber daya yang memenuhi syarat untuk pekerjaan tersebut, sehingga Anda dapat menjadwalkan pekerjaan secara efisien. Pada saat penulisan, v3 adalah versi terbaru dan msdyn_SearchResourceAvailability mendukung panggilan API web.

Note

Gunakan API versi terbaru karena versi lama mungkin menggunakan metode autentikasi yang tidak digunakan lagi.

Parameter masukan

Name Tipe Deskripsi Diperlukan Default
Versi String Nomor versi API mengidentifikasi versi API yang harus diaktifkan. Aplikasi ini menggunakan format major.minor.patch. Permintaan tidak harus berisi nomor versi lengkap.

  • Jika hanya versi utama yang ditentukan, maka akan mengaktifkan versi minor dan patch tertinggi yang tersedia untuk versi utama tersebut.
  • Jika versi mayor dan minor ditentukan, maka versi patch tertinggi akan tersedia.
  • Jika ketiga bagian versi disebutkan, versi tersebut akan memanggil versi yang tepat dari API yang ditentukan.
  • Yes -T/A-
    IsWebApi Boolean Atur ke True untuk menggunakan asisten jadwal melalui API web. Yes -T/A-
    Persyaratan Entitas Atribut ini menentukan persyaratan sumber daya untuk ketersediaan sumber daya yang sedang diambil. Ini diharapkan menjadi entitas tipe msdyn_resourcerequirement . Persyaratannya dapat berupa catatan yang sudah ada sebelumnya dari database, atau yang dibuat dengan cepat dengan batasan yang diperlukan. Entitas harus berisi semua spesifikasi yang relevan untuk pencarian Anda. @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.msdyn_requirement. Berikut ini beberapa atribut penting untuk diisi:
    1. msdyn_fromdate(TanggalWaktu): Persyaratan dari tanggal dalam format ISO
    2. msdyn_todate(TanggalWaktu): Persyaratan hingga saat ini dalam format ISO
    3. msdyn_remainingduration(Bilangan Bulat): Durasi persyaratan yang tersisa dalam menit
    4. msdyn_duration(Bilangan Bulat): Total durasi persyaratan dalam menit
    Yes -T/A-
    Pengaturan Entitas Atribut pengaturan akan membantu memfilter sumber daya yang diambil lebih lanjut. Tentukan pengaturan sebagai atribut dalam tas entitas. Jenis entitas tidak masalah. Anda dapat menentukan nama logis entitas apa pun. Yes -T/A-
    Spesifikasi Sumber Daya Entitas Tentukan resourceSpecification atribut sebagai atribut dalam tas entitas. @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.expando. No None

    Entitas pengaturan

    Entitas pengaturan bukanlah entitas yang ada di dalam Dataverse; namun, ini adalah kumpulan semua atribut berikut yang membantu hasil filter API Asisten jadwal. Dengan demikian, @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.expando.

    Name Tipe Deskripsi Diperlukan Default
    ConsiderSlotsWithLessThanRequiredCapacity Boolean Atur ini ke True jika slot waktu dengan kapasitas (upaya) kurang dari yang diperlukan harus dipertimbangkan saat menghitung slot waktu potensial yang tersedia di kalender sumber daya. No False
    ConsiderSlotsWithLessThanRequiredDuration Boolean Atur ini ke True jika slot waktu dengan durasi kurang dari yang diperlukan harus dipertimbangkan saat menghitung slot waktu potensial yang tersedia di kalender sumber daya. No False
    ConsiderSlotsWithOverlappingBooking Boolean Atur ini ke True jika slot waktu dengan pemesanan yang tumpang tindih harus dipertimbangkan saat menghitung slot waktu potensial yang tersedia di kalender sumber daya. No False
    ConsiderSlotsWithProposedBookings Boolean Atur ini ke True jika slot waktu dengan pemesanan yang diusulkan harus dipertimbangkan saat menghitung slot waktu potensial yang tersedia di kalender sumber daya. No False
    ConsiderAppointments Boolean Atur ini ke True untuk API ketersediaan sumber daya pencarian untuk menghormati janji temu yang ada sebagai pemesanan pada sumber daya, asalkan Dataverse pengaturan tingkat organisasi dan sumber daya telah ditetapkan. Janji temu dengan status Sibuk atau Selesai dianggap tidak tersedia untuk operasi penjadwalan. No False
    ConsiderTravelTime Boolean Atur ini ke True jika waktu perjalanan harus dipertimbangkan saat menghitung slot waktu potensial pada kalender sumber daya. No Benar
    Kecualikan Karakteristik Sumber Daya Boolean Atur ini ke True untuk mengecualikan karakteristik sumber daya untuk slot waktu sebagai respons. No False
    MovePastStartDateToCurrentDate Boolean Atur ini ke True untuk memindahkan tanggal mulai di masa lalu ke tanggal saat ini. No False
    UseRealTimeResourceLocation Boolean Atur ini ke True jika lokasi sumber daya real-time harus digunakan saat menghitung slot waktu potensial pada kalender sumber daya. No False
    SortOrder EntityCollection Tentukan urutan pengurutan dengan menggunakan kumpulan entitas. Setiap entitas dalam koleksi mewakili satu kriteria pengurutan, dan hanya dapat mengurutkan Resources dari respons tetapi tidak TimeSlots. @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.expando. Berikut ini adalah atribut yang perlu Anda isi:
    1. Name (String): Kriteria pengurutan
    2. SortOrder (Integer): Arah pengurutan (0 untuk naik dan 1 untuk menurun)
    No None
    MaxResourceTravelRadius Entitas Atribut ini menentukan maksimum yang dapat ditentukan dalam entitas. @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.expando. Berikut ini adalah atribut yang perlu Anda isi:
    1. Nilai (Desimal): Jari-jari
    2. Satuan (Bilangan Bulat): Satuan jarak. Lihat rangkaian pilihan msdyn_distance unit untuk kemungkinan nilai.
    No 0 km. Jika demikian, tidak ada sumber daya yang dikembalikan untuk persyaratan di tempat.
    MaxNumberOfResourcesToEvaluate Integer Atribut ini menentukan batas pada jumlah sumber daya yang dipertimbangkan untuk permintaan. No Jika atribut ini tidak disertakan dalam panggilan API, sistem menggunakan Batas Pengambilan Ketersediaan Sumber Daya dari definisi entitas yang dapat dijadwalkan seperti yang ditentukan dalam Edit pengaturan untuk entitas yang diaktifkan. Jika disertakan dalam panggilan, ini akan menimpa Batas Pengambilan Ketersediaan Sumber Daya yang ditentukan.
    Pertimbangkan OutlookJadwal Boolean Atur ini ke True jika jadwal dari Outlook harus dipertimbangkan. Hanya tersedia dalam versi 3.1.0 dan yang lebih baru. No False

    Entitas Spesifikasi Sumber Daya

    Name Tipe Deskripsi Diperlukan Default
    ResourceTypes EntityCollection Atribut ini menentukan jenis sumber daya yang diperlukan untuk persyaratan. Gunakan kumpulan entitas untuk menentukan atribut ini. Setiap entitas dalam koleksi mewakili satu jenis sumber daya yang dapat dipesan. @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.msdyn_resourceType. Atribut ini diperlukan:
    1. Value (Integer): Nilai rangkaian pilihan yang mewakili jenis sumber daya:
      • 1- Generik
      • 2- Kontak
      • 3- Pengguna
      • 4- Perlengkapan
      • 5- Akun
      • 6- Kru
      • 7- Fasilitas
      • 8- Kumpulan
    No Semua jenis sumber daya kecuali kru
    PreferredResources EntityCollection Atribut ini menentukan sumber daya yang dipilih untuk persyaratan. Tambahkan sumber daya ke koleksi entitas ini untuk memastikannya berada di bagian atas daftar sumber daya yang tersedia. Bahkan sumber daya yang bukan bagian dari kumpulan entitas ada dalam daftar, tetapi hanya setelah sumber daya yang disukai. No None
    RestrictedResources EntityCollection Atribut ini menentukan sumber daya yang tidak boleh dipertimbangkan untuk persyaratan. Semua slot waktu sumber daya ini difilter keluar dari daftar hasil dari API ini. No None
    MustChooseFromResources EntityCollection Atribut ini menentukan satu-satunya sumber daya yang dapat berada di daftar sumber daya yang tersedia. Ini menyaring semua hasil lain dari daftar keluaran.
    Constraints Entitas Atribut ini menentukan batasan tambahan yang harus diterapkan ke pengambilan sumber daya yang tersedia. No None
    RetrieveResourcesQueryId Panduan ID untuk kueri Ambil Sumber Daya. No ID Kueri Sumber Daya Ambil default.
    BookedResourceId Panduan Atribut ini menentukan jenis sumber daya yang saat ini dipesan untuk persyaratan. No None

    Note

    Gunakan kumpulan entitas entitas sumber daya yang dapat dipesan untuk menentukan atribut sumber daya Preferred, Restricted, dan MustChooseFrom . Setiap entitas dalam koleksi mewakili satu sumber daya Preferred, Restricted, atau MustChooseFrom . Atribut ini diperlukan untuk mereka:

    1. Nilai (Guid): ID sumber daya yang dapat dipesan dari sumber daya Preferred, Restricted, atau MustChooseFrom . @odata.type untuk entitas ini harus Microsoft.Dynamics.CRM.msdyn_bookableresource.

    Constraints

    Tentukan batasan tambahan melalui atribut dalam entitas ini. Jenis entitas tidak masalah. Anda dapat menentukan nama logis entitas apa pun.

    Tinjau Kueri Ambil Sumber Daya pada pengaturan papan jadwal untuk mengidentifikasi batasan mana yang mungkin berlaku. Secara default, mencakup yang berikut:

    Name Tipe Deskripsi
    Karakteristik EntityCollection Kumpulan karakteristik yang harus dimiliki sumber daya yang memenuhi syarat. Setiap entri berisi dengan characteristic ID karakteristik. Secara opsional, sertakan a ratingvalue dengan ID nilai peringkat untuk memfilter sumber daya berdasarkan tingkat kecakapan tertentu.
    Peran EntityCollection Kumpulan ID peran yang harus dimiliki sumber daya berkualifikasi.
    Wilayah EntityCollection Kumpulan ID wilayah. Sumber daya yang berkualifikasi harus ditetapkan ke salah satu wilayah.
    UnspecifiedTerritory Boolean Dalam kombinasi dengan batasan wilayah, menentukan bahwa kualifikasi harus ditetapkan ke salah satu wilayah atau tidak ada wilayah sama sekali.
    OrganizationalUnits EntityCollection Kumpulan id unit organisasi. Sumber daya yang berkualifikasi harus merupakan anggota salah satu unit organisasional yang ditentukan.
    Teams EntityCollection Kumpulan ID tim. Sumber daya yang memenuhi kualifikasi harus milik salah satu tim (berarti jenis sumber dayanya adalah pengguna sistem).
    BusinessUnits EntityCollection Kumpulan ID unit bisnis. Sumber daya yang memenuhi kualifikasi harus milik salah satu unit bisnis (berarti sumber dayanya adalah pengguna sistem).

    Parameter output

    Di tingkat tertinggi, output memiliki empat parameter berikut. Hasilnya dinyatakan dalam kumpulan entitas dan entitas. Respons mungkin tidak menyertakan semua atribut yang dijelaskan di sini sebagai nilai null atau bukan nilai NA dihilangkan dari respons. Selalu periksa keberadaan atribut sebelum mencoba mengaksesnya.

    Name Tipe Deskripsi
    TimeSlots EntityCollection Kumpulan hasil slot waktu. Untuk informasi selengkapnya, lihat bagian entitas slot waktu .
    Resources EntityCollection Kumpulan hasil sumber daya. Sumber daya direpresentasikan sebagai kumpulan entitas dengan atribut berikut:
    1. BookableResource (Entity): Entitas sumber daya yang dapat dipesan yang tersedia untuk kebutuhan.
    2. TotalAvailableTime (Double): Total waktu yang tersedia untuk sumber daya untuk melakukan persyaratan.
    Related Entitas Sumber daya terkait mewakili sumber daya dan slot waktu sumber daya yang tidak secara langsung memenuhi syarat untuk persyaratan yang diminta tetapi terkait. Misalnya, jika anggota kru memenuhi syarat untuk persyaratan, maka anggota lain dari tim tersebut akan menjadi hasil terkait.
    1. Timeslots (EntityCollection): Slot waktu sumber daya terkait. Definisi slot waktu sama seperti yang dijelaskan di bagian slot waktu.
    2. Resources (EntityCollection): Sumber daya terkait. Definisi sumber daya sama seperti yang dijelaskan dalam definisi atribut sumber daya.
    Pengecualian Entitas Atribut ini berisi informasi tentang pengecualian yang terjadi dan informasi tentang jika dan di mana pencarian sumber daya terpotong.
    1. Message (String): Pesan pengecualian
    2. ResourcesTruncatedAt (Integer): Jika jumlah sumber daya melebihi batas pengambilan; jumlah di mana sumber daya terpotong.

    Entitas slot waktu

    Name Tipe Deskripsi
    ID Panduan Pengidentifikasi unik untuk slot waktu
    Tipe Integer Jenis slot waktu. Ini bisa menjadi salah satu nilai berikut:
    • 0: Tersedia
    • 1: Terjadwal
    • 2: Mati
    • 3: Istirahat
    StartTime DateTime Waktu mulai slot waktu. Jika ada perjalanan untuk persyaratan tersebut, kali ini adalah waktu mulai perjalanan. Jika tidak, kali ini adalah waktu mulai persyaratan.
    ArrivalTime DateTime Waktu kedatangan slot waktu. Jika ada perjalanan untuk persyaratan, kali ini adalah waktu mulai persyaratan, setelah perjalanan selesai. Jika tidak, itu sama dengan waktu mulai slot waktu.
    Waktu Selesai DateTime Waktu berakhir slot waktu.
    Effort Integer Upaya atau kapasitas sumber daya untuk melaksanakan persyaratan.
    ResourceRequirement EntityReference Persyaratan sumber daya untuk slot waktu yang diambil.
    Potensi Boolean Nilai boolean yang menunjukkan apakah slot waktu berpotensi memenuhi kebutuhan yang diminta.
    IsDuplicate Boolean Nilai Boolean yang mengindikasikan jika slot waktu merupakan duplikat.
    AllowOverlapping Boolean Nilai boolean yang menunjukkan apakah tumpang tindih diizinkan.
    Resource Entitas Sumber daya yang memiliki slot waktu. Untuk informasi selengkapnya, lihat sumber daya slot waktu.
    Location Entitas Lokasi memiliki tiga atribut:
    1. Location (Entity): Ini memiliki dua atribut -
      • Lintang
      • Bujur
    2. WorkLocation (Integer): Ini memiliki tiga atribut -
      • Di tempat. Persyaratan di tempat mengecualikan jenis sumber daya kumpulan dan fasilitas dari hasil.
      • Fasilitas
      • Lokasi Agnostik
    3. LocationSourceSlot (Integer): Sumber informasi lokasi memiliki tiga atribut -
      • Biasa
      • Entitas GPS kustom
      • Audit seluler
    Perjalanan Entitas Entitas ini berisi rincian waktu perjalanan dan informasi jarak untuk slot waktu. Berikut ini adalah atributnya:
    1. Jarak (Ganda): Jarak tempuh
    2. TravelTime (Double): Waktu perjalanan dalam menit.
    3. DistanceFromStartLocation (Double): Jarak dari lokasi awal sumber daya.
    4. DistanceFromEndLocation (Double): Jarak dari lokasi akhir sumber daya.
    5. DistanceMethodSourceSlot (Bilangan bulat): Jenis sumber atau perhitungan nilai jarak
      • Layanan Peta
      • Saat burung gagak terbang
    Berikutnya Entitas Entitas ini berisi rincian tentang waktu dan jarak perjalanan ke pemesanan slot waktu berikutnya.
    1. NextScheduleLocation (Entity): Lokasi pemesanan berikutnya. Entitas memiliki dua atribut:
      • Lintang
      • Bujur
    2. NextScheduleTravelTime (Integer): Waktu perjalanan ke pemesanan berikutnya dalam hitungan menit.
    Availability Entitas Informasi ketersediaan terperinci untuk slot waktu. Entitas ini digunakan dengan kelompok waktu.
    1. AvailableIntervals (EntityCollection): Kumpulan interval yang tersedia. Setiap entitas di kumpulan ini berisi rincian tentang interval grup waktu.
      • StartTime (DateTime): Waktu mulai.
      • ArrivalTime (DateTime): Waktu kedatangan.
      • EndTime (DateTime): Waktu berakhir.
      • TimeGroupId (DateTime): ID grup waktu.
      • TimeGroupDetailStartTime (DateTime): Waktu mulai grup waktu.
      • TimeGroupDetailEndTime (DateTime): Waktu akhir grup waktu.
    2. TotalAvailableDuration (Double): Total durasi yang tersedia dalam menit.
    3. TotalAvailableTime (Double): Total waktu yang tersedia yang dimiliki sumber daya dalam sehari (dalam menit).
    TimeGroup Entitas Rincian tentang grup waktu.
    1. TimeGroupId (Guid): ID grup waktu.
    2. TimeGroupDetail (EntityReference): Referensi entitas ke detail grup waktu.
    3. TimeGroupDetailStartTime (DateTime): Waktu mulai detail grup waktu.
    4. TimeGroupDetailEndTime (DateTime): Waktu akhir detail grup waktu.

    Tip

    Saat Anda membuat pemesanan dengan menggunakan API, gunakan bidang Potensi yang dijelaskan dalam tabel. Tidak menggunakan kolom tersebut dapat menyebabkan pemesanan yang tumpang tindih atau tidak sesuai.

    Sumber slot Waktu

    Name Tipe Deskripsi
    Resource EntityReference Entitas yang merujuk ke sumber daya yang dapat dipesan.
    Grup Sumber Daya EntityReference Entitas yang merujuk ke grup sumber daya yang dapat dipesan.
    Unit Bisnis EntityReference Referensi entitas ke unit bisnis.
    OrganizationalUnit EntityReference Referensi entitas ke Unit Organisasi.
    Jenis Sumber Daya Integer Jenis sumber daya Lihat atribut ResourceType pada entitas BookableResource untuk kemungkinan nilai.
    PoolId Panduan ID kumpulan tempat sumber daya menjadi anggota selama slot waktu.
    CrewId Panduan ID kru yang menjadi anggota sumber daya selama slot waktu.
    Karakteristik EntityCollection Karakteristik Sumber Daya yang Dapat Dipesan. Setiap entitas dalam kumpulan ini berisi entitas dengan karakteristik dan informasi peringkat.
    1. Characteristic (EntityReference): Referensi entitas ke karakteristik.
    2. RatingId (Guid) ID peringkat untuk karakteristik.
    3. RatingName (String): Nama peringkat.
    4. RatingValue (Integer): Nilai rating.
    HasStartLocation Boolean Nilai boolean yang menunjukkan apakah sumber daya memiliki lokasi mulai.
    HasEndLocation Boolean Nilai boolean yang menunjukkan apakah sumber daya memiliki lokasi akhir.
    Email String Alamat email sumber daya.
    Ponsel String Nomor telepon sumber daya.
    ImagePath String Jalur ke gambar sumber daya.
    CalendarId Panduan ID kalender sumber daya.

    Contoh

    Dalam contoh ini, Anda menggunakan API asisten jadwal versi 3, yang mendukung panggilan API web, untuk persyaratan dengan durasi 60 menit. Dengan menggunakan settings atribut, Anda memfilter hasilnya. Anda mempertimbangkan dua jenis sumber daya untuk hasil akhir: 1 dan 2 (dengan kata lain, generik dan kontak).

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

    Contoh berikut menunjukkan penggunaan koleksi entitas yang tepat. Dalam hal ini, ini menentukan 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"
                    }
                ]
            }
        }
    }