使用 oDATA REST 和 JavaScript 从组织服务获取 EntityReference
Get EntityReference from Organization-Service using oDATA REST and JavaScript
我正在尝试获取 Dynamics CRM 2016(内部部署)中活动响应的客户信息。
因为我在实体表单上,所以我想对 REST 查询使用 JavaScript。
检索活动响应的信息不是问题。
但是在响应 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,必须解析为联系人实体的真实 ID。但是怎么办?
OData url 区分大小写,因此不要使用 contactSet
,而是使用 ContactSet
来获取结果。
https://example.com/OrganizationName/XRMServices/2011/OrganizationData.svc/ContactSet(guid'13cb3e39-46c5-e711-80ce-005056a04f81')
您应该能够使用 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 上都可以正常工作。但是我没有环境可以直接在 CRM 2016 上测试。
我正在尝试获取 Dynamics CRM 2016(内部部署)中活动响应的客户信息。 因为我在实体表单上,所以我想对 REST 查询使用 JavaScript。
检索活动响应的信息不是问题。 但是在响应 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,必须解析为联系人实体的真实 ID。但是怎么办?
OData url 区分大小写,因此不要使用 contactSet
,而是使用 ContactSet
来获取结果。
https://example.com/OrganizationName/XRMServices/2011/OrganizationData.svc/ContactSet(guid'13cb3e39-46c5-e711-80ce-005056a04f81')
您应该能够使用 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 上都可以正常工作。但是我没有环境可以直接在 CRM 2016 上测试。