简体   繁体   中英

Skip field validation when creating a record using Dynamics 365 web api

I am integrating Dynamics 365 with our product, and I am running into an issue when creating fields on dynamics 365 using web api.

I am creating a contact or lead using a set of fields such as email, name etc. Some fields seem to have validation, such as number only field, or picklist. In these cases I am getting an error with 400 status and the record is not created. Is there a way to just create the record using the valid fields and just skip updating the fields that failed validation.

This is the end point I am using for creating a contact:

/api/data/v9.1/contacts

Headers used:

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

You have two options:

  1. Either do the proper validation when user entering values for those fields from outside Dynamics.

  2. Or create custom fields in Dynamics contact entity to store the string type values

Web api payload has to be whole and cannot be truncated/set for adhoc scenarios like skip failing datatypes (your requirement).

Hope this helps. No matter what software or environment you are integrating with, it is important to know your data structure including data types, data validations (including required yes/no) and data constraints (length, decimal places, etc.).

There are three ways you can integrate with Dynamics 365 factoring in the above.

1. Static code based on the Dynamics 365 configuration

If you can login to Dynamics 365, you can view the environment definition by going to Settings > Customizations > Customize the System.

定制系统

From here you can view all Entity and Attribute definitions and and write your code accordingly. You can also "require" installation of your own solution with Entities and Attributes, giving you control over what your integrating with.

自定义系统-联系人

2. Creating Early-Bound classes

You can generate Early Bound classes with the Entity and Attribute definition from Dynamics 365 with the CrmSvcUtil tool. For more information.

For more information: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/org-service/create-early-bound-entity-classes-code-generation-tool

3. Dynamics 365 Metadata service

Dynamics 365 provides a Metadata service, enabling you to retrieve the exact definition of alle Entities and Attributes directly from the given Dynamics 365 environment. As such you can retrieve the definition prior to integrating.

I think considering the performance, this is definitly not something you would like to do every single message. To resolve this you could retrieve the definition on request (manual trigger) or daily.

For more information: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/customize/create-edit-metadata

When working with Dynamics 365, the XRMToolBox is a must have tool for any developer or consultant. With the tools Metadata Browser plugin you can view the data that you can retrieve by the Metadata service.

联系人元数据

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM