ค้นหาค่าเฉพาะในอาร์เรย์จากเอนทิตีข้อมูลเมตาใน Dynamics 365

Aug 19 2020

ฉันพยายามหลีกเลี่ยงการวนซ้ำผ่านอาร์เรย์นี้ แต่ฉันคิดว่านั่นเป็นวิธีเดียวที่จะจัดการสิ่งนี้ เพียงดูว่ามีวิธีค้นหาค่านี้โดยตรงในอาร์เรย์จาก Web API URI หรือไม่

นี่คือตัวอย่าง URI:

https://example.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(f4a9de67-1d00-ea11-a811-000d3a33f702)

และนี่คือตัวอย่างของการตอบสนอง:

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

โดยทั่วไปฉันมี"Value": 799680006ซึ่งเป็นสิ่งที่ฉันต้องการอย่างใดเพิ่มพารามิเตอร์การค้นหา URI "Label": "ABC123"เพื่อที่ฉันจะได้รับในท้ายที่สุด

ข้อเสนอแนะใด ๆ หรือการทำซ้ำในอาร์เรย์ของวัตถุที่มีif Value = xตัวเลือกเดียวจริงๆ

คำตอบ

1 ArunVinoth Aug 19 2020 at 05:50

ให้ฉันอธิบายสองสิ่ง:

  1. การสืบค้นข้อมูลเมตาเช่นเดียวกับที่คุณใช้GlobalOptionSetDefinitionsเพื่อรับป้ายกำกับที่แปลเป็นภาษาท้องถิ่นทั้งหมดหากคุณมีชุดภาษาหลายชุดหรือสำหรับการตรวจสอบการปรับแต่งหรือเพื่อวัตถุประสงค์ในการปรับใช้ Devops ก็เป็นสิ่งหนึ่ง
  2. การรับเลเบลสำหรับค่า Picklist ที่เลือกในเรกคอร์ดฐานข้อมูลธุรกรรมเป็นอีกวัตถุประสงค์หนึ่ง

หากคุณต้องการเพียงเพื่อจุดประสงค์ที่สองคุณสามารถรับได้โดยเลือกค่าที่จัดรูปแบบหลังจากเพิ่มส่วนหัวในคำขอเว็บ API อ่านเพิ่มเติมในคำตอบ SO ของฉัน

อีกวิธีในการตรวจสอบฉลากคือการใช้เอนทิตี stringmap

https://crmdev.crm.dynamics.com/api/data/v9.1/stringmaps?$filter=objecttypecode eq 'account' and attributename eq 'accountclassificationcode' and attributevalue eq 1