BulkDeleteRequest Class
Applies To: Microsoft Dynamics CRM 2013, Microsoft Dynamics CRM Online
Contains the data that is needed to submit a bulk delete job that deletes selected records in bulk. This job runs asynchronously in the background without blocking other activities.
Namespace: Microsoft.Crm.Sdk.Messages
Assembly: Microsoft.Crm.Sdk.Proxy (in Microsoft.Crm.Sdk.Proxy.dll)
Syntax
'Declaration
<DataContractAttribute(Namespace:="https://schemas.microsoft.com/crm/2011/Contracts")> _
Public NotInheritable Class BulkDeleteRequest
Inherits OrganizationRequest
[DataContractAttribute(Namespace="https://schemas.microsoft.com/crm/2011/Contracts")]
public sealed class BulkDeleteRequest : OrganizationRequest
Example
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.")
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 Privileges for the entity types being deleted. For a complete list of the required privileges, see BulkDelete 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 does not 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 in bulk the records 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 |
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 |
Inheritance Hierarchy
System.Object
Microsoft.Xrm.Sdk.OrganizationRequest
Microsoft.Crm.Sdk.Messages.BulkDeleteRequest
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.
Platforms
Development Platforms
Windows Server 2008, Windows Server 2012, Windows 7 (All Versions), Windows 8 (All Versions)
Target Platforms
Windows Server 2008, ,Windows Server 2012, ,Windows 7 (All Versions),
Change History
See Also
Reference
BulkDeleteRequest Members
Microsoft.Crm.Sdk.Messages Namespace
BulkDeleteResponse
Other Resources
Delete Data in Bulk in Microsoft Dynamics CRM
Sample: Bulk Delete Exported Records
Sample: Bulk Delete Records That Match Common Criteria
BulkDelete Privileges
How Role-Based Security Can Be Used to Control Access to Entities in CRM
How Instance-Based Security Can Be Used to Control Access to Entity Instances (Records) in CRM
Send comments about this topic to Microsoft.
© 2013 Microsoft Corporation. All rights reserved.