使用Dynamics 365 Web API创建记录时跳过字段验证

时间:2019-07-05 07:31:04

标签: rest api dynamics-crm microsoft-dynamics dynamics-crm-webapi

我正在将Dynamics 365与我们的产品集成在一起,使用Web API在Dynamics 365上创建字段时遇到问题。

我正在使用一组字段(例如电子邮件,姓名等)来创建联系人或销售线索。某些字段似乎具有验证性,例如仅数字字段或选择列表。在这些情况下,我收到状态为400的错误,并且未创建记录。有没有一种方法可以仅使用有效字段创建记录,而无需更新未通过验证的字段。

这是我用来创建联系人的终点:

/api/data/v9.1/contacts

使用的标题:

Prefer:return=representation
Content-Type:application/json
OData-MaxVersion:4.0
OData-Version:4.0
If-None-Match:null

2 个答案:

答案 0 :(得分:0)

您有两个选择:

  1. 当用户从Dynamics外部为这些字段输入值时,请执行正确的验证。

  2. 或在Dynamics联系人实体中创建自定义字段以存储字符串类型值

Web api有效负载必须完整,并且不能针对诸如跳过失败的数据类型(您的要求)之类的特殊情况而被截断/设置。

答案 1 :(得分:0)

希望这会有所帮助。无论您要集成哪种软件或环境,都必须了解数据结构,包括数据类型,数据验证(包括必需的是/否)和数据约束(长度,小数位等),这一点很重要。

以上提供了三种与Dynamics 365因子集成的方法。

1。基于Dynamics 365配置的静态代码

如果您可以登录到Dynamics 365,则可以通过转到“设置”>“自定义”>“自定义系统”来查看环境定义。

Customize the System

从这里,您可以查看所有实体和属性定义,并相应地编写代码。您还可以“要求”安装具有实体和属性的自己的解决方案,从而使您可以控制与之集成的内容。

Customize the System - Contact

2。创建早期绑定的课程

您可以使用CrmSvcUtil工具从Dynamics 365中使用Entity和Attribute定义生成Early Bound类。有关更多信息。

有关更多信息: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/org-service/create-early-bound-entity-classes-code-generation-tool

3。 Dynamics 365元数据服务

Dynamics 365提供元数据服务,使您可以直接从给定的Dynamics 365环境中检索Alle实体和属性的确切定义。这样,您可以在集成之前检索定义。

我认为考虑到性能,这绝对不是您希望每条消息都执行的操作。要解决此问题,您可以按要求(手动触发)或每天检索定义。

有关更多信息:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/customize/create-edit-metadata

使用Dynamics 365时,XRMToolBox是任何开发人员或顾问必不可少的工具。使用工具Metadata Browser插件,您可以查看元数据服务可以检索的数据。

Contact Metadata