BulkDeleteRequest Class

 

Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Contains the data that’s needed to submit a bulk delete job that deletes selected records in bulk. This job runs asynchronously in the background without blocking other activities.

For the Web API use the BulkDelete Action.

Web API support for this message was added with December 2016 update for Microsoft Dynamics 365 (online) and December 2016 Service Pack for Microsoft Dynamics 365 (on-premises) 

Namespace:   Microsoft.Crm.Sdk.Messages
Assembly:  Microsoft.Crm.Sdk.Proxy (in Microsoft.Crm.Sdk.Proxy.dll)

Inheritance Hierarchy

System.Object
  Microsoft.Xrm.Sdk.OrganizationRequest
    Microsoft.Crm.Sdk.Messages.BulkDeleteRequest

Syntax

[DataContractAttribute(Namespace = "https://schemas.microsoft.com/crm/2011/Contracts")]
public sealed class BulkDeleteRequest : OrganizationRequest
<DataContractAttribute(Namespace := "https://schemas.microsoft.com/crm/2011/Contracts")>
Public NotInheritable Class BulkDeleteRequest
    Inherits OrganizationRequest

Constructors

Name Description
System_CAPS_pubmethod BulkDeleteRequest()

Initializes a new instance of the BulkDeleteRequest class.

Properties

Name Description
System_CAPS_pubproperty CCRecipients

Gets or sets an array of IDs for the system users (users) who are listed in the Cc box of the email notification. Required.

System_CAPS_pubproperty ExtensionData

Gets or sets the structure that contains extra data. Optional.(Inherited from OrganizationRequest.)

System_CAPS_pubproperty Item[String]

Gets or sets the indexer for the Parameters collection.(Inherited from OrganizationRequest.)

System_CAPS_pubproperty JobName

Gets or sets the name of an asynchronous bulk delete job. Required.

System_CAPS_pubproperty Parameters

Gets or sets the collection of parameters for the request. Required, but is supplied by derived classes.(Inherited from OrganizationRequest.)

System_CAPS_pubproperty QuerySet

Gets or sets an array of queries for a bulk delete job. Required.

System_CAPS_pubproperty RecurrencePattern

Gets or sets the recurrence pattern for the bulk delete job. Optional.

System_CAPS_pubproperty RequestId

Gets or sets the ID of an asynchronous operation (system job). Optional. (Inherited from OrganizationRequest.)

System_CAPS_pubproperty RequestName

Gets or sets the name of the request. Required, but is supplied by derived classes.(Inherited from OrganizationRequest.)

System_CAPS_pubproperty RunNow

This API supports the product infrastructure and is not intended to be used directly from your code.

System_CAPS_pubproperty SendEmailNotification

Gets or sets a value that indicates whether an email notification is sent after the bulk delete job has finished running. Required.

System_CAPS_pubproperty SourceImportId

Gets or sets the ID of the data import job. Optional.

System_CAPS_pubproperty StartDateTime

Gets or sets the start date and time to run a bulk delete job. Optional.

System_CAPS_pubproperty ToRecipients

Gets or sets an array of IDs for the system users (users) who are listed in the To box of an email notification. Required.

Methods

Name Description
System_CAPS_pubmethod Equals(Object)

(Inherited from Object.)

System_CAPS_pubmethod GetHashCode()

(Inherited from Object.)

System_CAPS_pubmethod GetType()

(Inherited from Object.)

System_CAPS_pubmethod ToString()

(Inherited from Object.)

Remarks

Message Availability

For this message to work, the caller must be connected to the server.

Usage

Pass an instance of this class to the Execute method, which returns an instance of the BulkDeleteResponse class.

Privileges and Access Rights

To perform this action, the caller must have read access rights on the entity records that are specified in the request class. The caller must also have Delete message privileges for the entity types being deleted. For a complete list of the required privileges, see BulkDelete message privileges.

Notes for Callers

By default, a system administrator has the BulkDelete privileges for bulk deletions. Other users must be granted the BulkDelete privileges before they can perform a bulk deletion.

When a record is deleted, all its child records are also deleted. The entire deletion fails if the caller doesn’t have delete privileges or access rights to perform bulk deletions for any of these records.

The deletion order of the related records depends on the cascade configuration for each entity relationship. For a description of how actions on a parent record can affect related records, see Entity relationship behavior.

Supported Entities

You can delete the records in bulk of an entity that supports the BulkDeleteRequest message, including custom entities.

The following table shows the default entities that support this message. For the listed entities, the caller must be connected to the server for this message to be available.

Entity

Availability

account

Server

activitymimeattachment

Server

annotation

Server

annualfiscalcalendar

Server

appointment

Server

asyncoperation

Server

attributemap

Server

bulkdeleteoperation

Server

bulkoperation

Server

businessunit

Server

businessunitnewsarticle

Server

calendar

Server

campaign

Server

campaignactivity

Server

campaignresponse

Server

columnmapping

Server

competitor

Server

connection

Server

connectionrole

Server

connectionroleobjecttypecode

Server

constraintbasedgroup

Server

contact

Server

contract

Server

contractdetail

Server

contracttemplate

Server

customeraddress

Server

customeropportunityrole

Server

customerrelationship

Server

discount

Server

discounttype

Server

duplicaterule

Server

duplicaterulecondition

Server

email

Server

equipment

Server

fax

Server

fieldpermission

Server

fieldsecurityprofile

Server

fixedmonthlyfiscalcalendar

Server

goal

Server

goalrollupquery

Server

import

Server

importdata

Server

importentitymapping

Server

importfile

Server

importjob

Server

importmap

Server

incident

Server

incidentresolution

Server

invoice

Server

invoicedetail

Server

isvconfig

Server

kbarticle

Server

kbarticlecomment

Server

kbarticletemplate

Server

lead

Server

letter

Server

list

Server

lookupmapping

Server

mailmergetemplate

Server

metric

Server

monthlyfiscalcalendar

Server

opportunity

Server

opportunityclose

Server

opportunityproduct

Server

orderclose

Server

ownermapping

Server

phonecall

Server

picklistmapping

Server

pluginassembly

Server

plugintype

Server

pricelevel

Server

principalobjectattributeaccess

Server

processsession

Server

product

Server

productpricelevel

Server

publisher

Server

publisheraddress

Server

quarterlyfiscalcalendar

Server

queue

Server

queueitem

Server

quote

Server

quoteclose

Server

quotedetail

Server

recurrencerule

Server

recurringappointmentmaster

Server

relationshiprole

Server

relationshiprolemap

Server

report

Server

reportcategory

Server

reportentity

Server

reportvisibility

Server

resourcespec

Server

role

Server

rollupfield

Server

salesliterature

Server

salesliteratureitem

Server

salesorder

Server

salesorderdetail

Server

savedquery

Server

savedqueryvisualization

Server

sdkmessageprocessingstep

Server

sdkmessageprocessingstepimage

Server

sdkmessageprocessingstepsecureconfig

Server

semiannualfiscalcalendar

Server

service

Server

serviceappointment

Server

serviceendpoint

Server

sharepointdocumentlocation

Server

sharepointsite

Server

site

Server

solution

Server

subject

Server

systemform

Server

task

Server

team

Server

template

Server

territory

Server

transactioncurrency

Server

transformationmapping

Server

transformationparametermapping

Server

uom

Server

uomschedule

Server

userentityinstancedata

Server

userentityuisettings

Server

userform

Server

userquery

Server

userqueryvisualization

Server

webresource

Server

webwizard

Server

wizardaccessprivilege

Server

wizardpage

Server

workflow

Server

workflowdependency

Server

workflowlog

Server

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. For the complete sample, see the link later in this topic.


// Create a condition for a bulk delete request.
// NOTE: This sample uses very specific queries for deleting records
// that have been manually exported in order to free space.
QueryExpression opportunitiesQuery = BuildOpportunityQuery();

// Create the bulk delete request.
BulkDeleteRequest bulkDeleteRequest = new BulkDeleteRequest();

// Set the request properties.
bulkDeleteRequest.JobName = "Backup Bulk Delete";

// Querying activities
bulkDeleteRequest.QuerySet = new QueryExpression[]
{
    opportunitiesQuery,
    BuildActivityQuery(Task.EntityLogicalName),
    BuildActivityQuery(Fax.EntityLogicalName),
    BuildActivityQuery(PhoneCall.EntityLogicalName),
    BuildActivityQuery(Email.EntityLogicalName),
    BuildActivityQuery(Letter.EntityLogicalName),
    BuildActivityQuery(Appointment.EntityLogicalName),
    BuildActivityQuery(ServiceAppointment.EntityLogicalName),
    BuildActivityQuery(CampaignResponse.EntityLogicalName),
    BuildActivityQuery(RecurringAppointmentMaster.EntityLogicalName)
};

// Set the start time for the bulk delete.
bulkDeleteRequest.StartDateTime = DateTime.Now;

// Set the required recurrence pattern.
bulkDeleteRequest.RecurrencePattern = String.Empty;

// Set email activity properties.
bulkDeleteRequest.SendEmailNotification = false;
bulkDeleteRequest.ToRecipients = new Guid[] { currentUserId };
bulkDeleteRequest.CCRecipients = new Guid[] { };

// Submit the bulk delete job.
// NOTE: Because this is an asynchronous operation, the response will be immediate.
_bulkDeleteResponse =
    (BulkDeleteResponse)_serviceProxy.Execute(bulkDeleteRequest);
Console.WriteLine("The bulk delete operation has been requested.");

            ' Create a condition for a bulk delete request.
' NOTE: This sample uses very specific queries for deleting records
' that have been manually exported in order to free space.
Dim opportunitiesQuery As QueryExpression = BuildOpportunityQuery()

' Create the bulk delete request.
Dim bulkDeleteRequest As New BulkDeleteRequest()

' Set the request properties.
bulkDeleteRequest.JobName = "Backup Bulk Delete"

' Querying activities
            bulkDeleteRequest.QuerySet = New QueryExpression() {
                opportunitiesQuery,
                BuildActivityQuery(Task.EntityLogicalName),
                BuildActivityQuery(Fax.EntityLogicalName),
                BuildActivityQuery(PhoneCall.EntityLogicalName),
                BuildActivityQuery(Email.EntityLogicalName),
                BuildActivityQuery(Letter.EntityLogicalName),
                BuildActivityQuery(Appointment.EntityLogicalName),
                BuildActivityQuery(ServiceAppointment.EntityLogicalName),
                BuildActivityQuery(CampaignResponse.EntityLogicalName),
                BuildActivityQuery(RecurringAppointmentMaster.EntityLogicalName)
            }

' Set the start time for the bulk delete.
bulkDeleteRequest.StartDateTime = Date.Now

' Set the required recurrence pattern.
bulkDeleteRequest.RecurrencePattern = String.Empty

' Set email activity properties.
bulkDeleteRequest.SendEmailNotification = False
bulkDeleteRequest.ToRecipients = New Guid() { currentUserId }
bulkDeleteRequest.CCRecipients = New Guid() { }

' Submit the bulk delete job.
' NOTE: Because this is an asynchronous operation, the response will be immediate.
            _bulkDeleteResponse = CType(_serviceProxy.Execute(bulkDeleteRequest), 
                BulkDeleteResponse)
Console.WriteLine("The bulk delete operation has been requested.")

Thread Safety

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

BulkDeleteResponse
Microsoft.Crm.Sdk.Messages Namespace
Delete data in bulk
Sample: Bulk delete exported records
Sample: Bulk delete records that match common criteria
BulkDelete message privileges
How role-based security can be used to control access to entities in Microsoft Dynamics 365
How record-based security can be used to control access to records in Microsoft Dynamics 365

Return to top

Microsoft Dynamics 365

© 2016 Microsoft. All rights reserved. Copyright