我正在尝试获取Dynamics CRM 2016 (on-premise)活动响应的客户信息。因为我使用的是实体表单,所以我想使用JavaScript进行REST查询。
检索活动响应的信息不是问题。但是,在响应XML中,PartyId的类型是EntityReference
... <!-- more XML omitted -->
<d:PartyId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
<d:Id m:type="Edm.Guid">13cb3e39-46c5-e711-80ce-005056a04f81</d:Id>
<d:LogicalName>contact</d:LogicalName>
<d:Name>Jane Doe</d:Name>
<d:RowVersion m:null="true" />
</d:PartyId>
...<!-- more XML omitted -->所以现在的问题是,我不能直接使用
https://example.com/OrganizationName/XRMServices/2011/OrganizationData.svc/contactSet(guid'13cb3e39-46c5-e711-80ce-005056a04f81')我得到以下错误
<error>
<code/>
<message xml:lang="de-DE">Resource not found for the segment 'contactSet'.</message>
</error>因为它是一个EntityReference。
似乎没有像这样的终结点
https://example.com/OrganizationName/XRMServices/2011/OrganizationData.svc/EntityReferenceSet(guid'13cb3e39-46c5-e711-80ce-005056a04f81')
我不知道如何使用REST和Javascript来检索实体引用的目标。有没有人知道怎么做?
我从C#框架中了解到的是,EntityReference只是一个容器,它保存了被引用实体的真实信息。所以由给定的ID
<d:PartyId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
<d:Id m:type="Edm.Guid">13cb3e39-46c5-e711-80ce-仅为EntityReference的ID,必须解析为contacts实体的真实ID。但是怎么做呢?
发布于 2020-03-25 21:50:48
您应该能够使用OData端点查询实体:
https://example.com/OrganizationName/api/data/v8.0/contacts(13cb3e39-46c5-e711-80ce-005056a04f81)或WCF\SOAP
https://example.com/OrganizationName/XRMServices/2011/OrganizationData.svc/ContactSet(guid'13cb3e39-46c5-e711-80ce-005056a04f81')这两个链路在D365 v9 on-prem上都工作正常。但是我没有env可以直接在CRM 2016上测试。
发布于 2020-03-24 03:29:36
OData url区分大小写,因此不使用contactSet而使用ContactSet来获取结果。
https://example.com/OrganizationName/XRMServices/2011/OrganizationData.svc/ContactSet(guid'13cb3e39-46c5-e711-80ce-005056a04f81')https://stackoverflow.com/questions/60814251
复制相似问题