我是Dynamics CRM的新手。我正在构建一个应用程序,它应该更新Dynamics CRM中的实体。我可以毫无问题地更新简单类型。现在的情况是,我在Contact实体中声明了一些自定义选项集。
有没有办法检索所有可能的OptionSet值(文本和值),以便我的应用程序可以查找适当的值并将其设置在它生成的有效负载中?
我在WebAPI
以及XRMServices/2011/OrganizationData.svc
中找不到任何端点。任何帮助都会非常棒。
答案 0 :(得分:15)
您可以使用Web API或组织服务来检索The metadata and data models in Microsoft Dynamics CRM。有关具体示例和详细信息,请查看该子文章。
Web API示例Querying EntityMetadata attributes。
以下查询将仅返回PicklistAttributeMetadata 属性,将包括LogicalName以及扩展 OptionSet和GlobalOptionSet集合值导航属性。
GET [Organization URI]/api/data/v8.1/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet,GlobalOptionSet
答案 1 :(得分:1)
另一种选择是通过StringMap实体获取数据:
fitness(i)=fitness(i)+distance(population(i,j),population(i,j+1));
将提供如下数据:
[Organization URI]/api/data/v9.1/stringmaps?fetchXml=<fetch><entity name='stringmap'><filter><condition attribute='objecttypecodename' operator='in'><value>account</value><value>opportunity</value></condition></filter></entity></fetch>
更简单的查询:
{
"@odata.etag": "W/\"406742363\"",
"value": "Open",
"attributename": "statecode",
"langid": 1033,
"objecttypecode": "opportunity",
"attributevalue": 0,
"stringmapid": "0fe09734-3914-e711-80ef-e0071b6a7121",
"organizationid": "f95718b2-5c63-46df-adc3-c3b546cf686a",
"displayorder": 1
},
{
"@odata.etag": "W/\"406742364\"",
"value": "Won",
"attributename": "statecode",
"langid": 1033,
"objecttypecode": "opportunity",
"attributevalue": 1,
"stringmapid": "10e09734-3914-e711-80ef-e0071b6a7121",
"organizationid": "f95718b2-5c63-46df-adc3-c3b546cf686a",
"displayorder": 2
},
答案 2 :(得分:0)
使用以下代码为特定实体获取特定选项集: (用输入参数替换EntityLogicalName和AttributeLogicalName)
GET [Organization URI]/api/data/v9.1/EntityDefinitions(LogicalName='EntityLogicalName')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options)&$filter=LogicalName eq 'AttributeLogicalName'
答案 3 :(得分:0)
如果您的选项是全局的,这是获取所有选项的最简单方法:
/api/data/v9.1/GlobalOptionSetDefinitions(Name='new_category')