Kueri nilai spesifik dalam larik dari entitas metadata di Dynamics 365
Saya mencoba untuk menghindari iterasi melalui array ini, tetapi saya membayangkan itulah satu-satunya cara untuk menangani ini. Hanya melihat apakah ada cara untuk menanyakan nilai ini secara langsung dalam larik dari URI API Web.
Ini adalah contoh URI:
https://example.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(f4a9de67-1d00-ea11-a811-000d3a33f702)
Dan ini contoh tanggapannya:
{
"@odata.context": "https://example.crm.dynamics.com/api/data/v9.0/$metadata#GlobalOptionSetDefinitions/Microsoft.Dynamics.CRM.OptionSetMetadata/$entity",
"MetadataId": "f4a9de67-1d00-ea11-a811-000d3a33f702",
"Options": [
{
"Value": 799680006,
"Color": "#0000ff",
"IsManaged": false,
"ExternalValue": "",
"ParentValues": [],
"MetadataId": null,
"HasChanged": null,
"Label": {
"LocalizedLabels": [
{
"Label": "ABC123",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b4eb2c69-b500-ea11-a811-000d3a33fe19",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "ABC123",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b4eb2c69-b500-ea11-a811-000d3a33fe19",
"HasChanged": null
}
}
}
]
}
Pada dasarnya, saya memiliki "Value": 799680006
apa yang ingin saya tambahkan ke parameter kueri URI, sehingga pada akhirnya saya bisa mendapatkannya "Label": "ABC123"
.
Adakah saran atau iterasi melalui array objek dengan if Value = x
benar-benar satu-satunya pilihan?
Jawaban
Izinkan saya menjelaskan dua hal:
- Mengkueri metadata seperti yang Anda gunakan
GlobalOptionSetDefinitions
untuk mendapatkan semua label yang dilokalkan jika Anda memiliki beberapa paket bahasa atau untuk memverifikasi penyesuaian atau untuk tujuan penyebaran Devops adalah satu hal - Mendapatkan label untuk nilai daftar pilihan yang dipilih di salah satu catatan database transaksi adalah tujuan lain
Jika Anda hanya perlu untuk tujuan kedua, Anda bisa mendapatkannya dengan memilih nilai Terformat, setelah menambahkan header dalam permintaan api web. Baca lebih lanjut di jawaban SO saya
Cara lain untuk memeriksa label menggunakan entitas stringmap.
https://crmdev.crm.dynamics.com/api/data/v9.1/stringmaps?$filter=objecttypecode eq 'account' and attributename eq 'accountclassificationcode' and attributevalue eq 1