【问题标题】:Bad request error while adding a lookup GUID field in CRM database using Web API使用 Web API 在 CRM 数据库中添加查找 GUID 字段时出现错误请求错误
【发布时间】:2018-01-29 13:45:53
【问题描述】:

我想在 CRM 的自定义实体中插入一条新记录,其中一个字段是查找类型,即 new_contactid,它依赖于 contact 实体。

我也提到了Set Values of all Data Types using Web API in Dynamics CRM Through C#

我的 JSON 数据如下:

{ "new_transactionnumber":"114", "new_transactionamount":650, "new_transactiondate":"2018-01-29T15:01:00.000Z", "new_contactid_contact@odata.bind":"/contacts(afb9e006-6be5-e711-80ed-bef806786223)", "new_moveid_new_move@odata.bind":"/new_moves(896f2dcd-b2fa-e711-80ef-bef806786223)" }

这里,最后 2 个字段用于查找 GUID。原始字段名称为:

  • new_contactid
  • new_moveid

我在最后添加的是主键的实体名称

如果我在这里遗漏了什么,请告诉我。

编辑 1: 以下是我在 OData 文件中找到的查找字段的引用:

<NavigationProperty Name="new_contact_new_transaction_contactid" Type="Collection(mscrm.new_transaction)" Partner="new_contactid" />

<Property Name="_new_contactid_value" Type="Edm.Guid">
  <Annotation Term="Org.OData.Core.V1.Description" String="ContactId" />
  <Annotation Term="Org.OData.Core.V1.Computed" Bool="true" />
  <Annotation Term="Org.OData.Core.V1.Permissions">
    <EnumMember>Org.OData.Core.V1.PermissionType/Read</EnumMember>
  </Annotation>
</Property>

<NavigationProperty Name="new_contactid" Type="mscrm.contact" Nullable="false" Partner="new_contact_new_transaction_contactid">
  <ReferentialConstraint Property="_new_contactid_value" ReferencedProperty="contactid" />
</NavigationProperty>

<NavigationPropertyBinding Path="new_contact_new_transaction_contactid" Target="new_transactions" />

<NavigationPropertyBinding Path="new_contactid" Target="contacts" />

编辑 2这些查找字段是绑定到其他现有实体的主键的 GUID。

【问题讨论】:

  • 您收到什么错误信息?作为一个潜在的答案,请考虑您的呼叫是否像 this post 所暗示的那样区分大小写。

标签: c# dynamics-crm dotnet-httpclient http-status-code-400 dynamics-crm-webapi


【解决方案1】:

基本上,Navigation 属性将使用架构名称(Camel 大小写)而不是逻辑名称(pascal 大小写)。

请参考this blog post cmets 部分的评论并适当更改:

请按照下列步骤操作:

第 1 步:转到自定义  开发人员资源。

第 2 步:单击“下载 Odata 元数据”链接并下载 一样。

第 3 步:下载后,打开它并找出查找属性的名称 (即“new_qualifiedleadid”)并检查其大小写。

第 4 步:使用您在代码中设置的值验证它 应该是一样的。

【讨论】:

  • 我已经用我在 OData 文件中找到的查找字段 new_contactid 的引用编辑了这个问题。
  • 是的,这解决了我的问题。 new_contactid 是正确的,但对于 Move Id,我写的是 new_moveid 而根据 OData 应该是 new_MoveId
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多