Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

CreateRequest Class

Definition

Namespace:
Microsoft.Xrm.Sdk.Messages
Assembly:
Microsoft.Xrm.Sdk.dll
Package:
Microsoft.PowerPlatform.Dataverse.Client v1.2.10

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Contains the data that is needed to create a record.

public ref class CreateRequest sealed : Microsoft::Xrm::Sdk::OrganizationRequest
[System.Runtime.Serialization.DataContract(Namespace="http://schemas.microsoft.com/xrm/2011/Contracts")]
public sealed class CreateRequest : Microsoft.Xrm.Sdk.OrganizationRequest
[<System.Runtime.Serialization.DataContract(Namespace="http://schemas.microsoft.com/xrm/2011/Contracts")>]
type CreateRequest = class
 inherit OrganizationRequest
Public NotInheritable Class CreateRequest
Inherits OrganizationRequest
Inheritance
CreateRequest
Attributes

Examples

The following example shows how to use this message. For this sample to work correctly, you must be connected to the server to get an IOrganizationService interface instance.

/// <summary>
/// Demonstrates using CreateRequest with optional parameters
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
static void CreateRequestExample(IOrganizationService service)
{
 //Use late bound Entity class with entity logical name
 Entity account = new("account")
 {
 Attributes = {
 //String primary name
 {"name","Contoso" },
 //Yes/No column
 {"creditonhold", false },
 // DateTime
 {"lastonholdtime", new DateTime(2023, 1, 1) },
 // Double
 {"address1_latitude",47.642311},
 {"address1_longitude",-122.136841},
 // Integer
 {"numberofemployees", 500 },
 // Money
 {"revenue",new Money(new decimal(5000000.00))},
 // Choice column: Preferred Customer
 {"accountcategorycode",new OptionSetValue(1)}
 }
 };

 //Create the account
 CreateRequest request = new()
 {
 Target = account
 };

 //Set optional parameters:

 // Expect error if duplicate record found
 request["SuppressDuplicateDetection"] = false;
 // Set a shared variable that a plug-in can access
 request["tag"] = "RecordCreatedBySampleCode";
 // Bypass plug-in logic if caller has prvBypassCustomPlugins privilege
 request["BypassCustomPluginExecution"] = true;
 // Don't trigger any flows for this operation
 request["SuppressCallbackRegistrationExpanderJob"] = true;

 try
 {
 var response = (CreateResponse)service.Execute(request);

 Console.WriteLine($"Created record ID: {response.id}");
 }
 catch (FaultException<OrganizationServiceFault> ex)
 {
 switch (ex.Detail.ErrorCode)
 {
 case -2147220685: // Duplicate record error
 Console.WriteLine(ex.Detail.Message);
// A record was not created or updated because a duplicate of the current record already exists.
 break;
 default:
 Console.WriteLine(ex.Detail.Message);
 break;
 }
 }
}

Sample code on GitHub

Use duplicate detection when creating and updating records

Remarks

Usage

Pass an instance of this class to the Execute(OrganizationRequest) method, which returns an instance of the CreateResponse class.

Privileges and Access Rights

To perform this action, the caller must have privileges on the table for the Entity set to the Target property. Generally, callers must have Read and Create privileges for the table. If the entity includes related records or lookup values, the caller will need the appropriate privileges for those records as well as Append and AppendTo privileges for the related records. Learn more about how to verify access in code

Notes for Callers

This class enables some operations not possible when using the Create(Entity) method. Some things you can do with this class:

For more information, see Use the CreateRequest class.

For user-owned tables, the caller becomes the owner for the new record by default unless you set the ownerid column for the record to the ID of another user or team.

Supported Tables

See Message support for tables for an example query you can use to get the list of tables you can use with the Create message.

Constructors

Name Description
CreateRequest()

Initializes a new instance of the CreateRequest class.

Properties

Name Description
ExtensionData

Gets or sets the structure that contains extra data. Optional.

(Inherited from OrganizationRequest)
Item[String]

Gets or sets the indexer for the Parameters collection.

(Inherited from OrganizationRequest)
Parameters

Gets or sets the collection of parameters for the request. Required, but is supplied by derived classes.

(Inherited from OrganizationRequest)
RequestId

Gets or sets the ID of the request. Optional.

(Inherited from OrganizationRequest)
RequestName

Gets or sets the name of the request. Required, but is supplied by derived classes.

(Inherited from OrganizationRequest)
Target

Gets or sets an instance of an entity that you can use to create a new record. Required.

Applies to

See also