Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O recurso de exclusão em massa no Microsoft Dataverse ajuda você a manter a qualidade dos dados e gerenciar o consumo do armazenamento do sistema excluindo dados de que você não precisa mais. Por exemplo, é possível excluir os seguintes dados em massa:
- Dados obsoletos
- Dados que não são mais relevantes para a empresa
- Dados de exemplo ou teste desnecessários
- Dados importados incorretamente de outros sistemas
Você pode executar as seguintes operações:
- Excluir dados em várias tabelas.
- Excluir registros em uma tabela específica.
- Receber notificações por email quando uma exclusão em massa for concluída.
- Excluir dados periodicamente.
- Agendar o horário de início de uma exclusão em massa recorrente.
- Recupere informações sobre falhas que ocorreram durante uma exclusão em massa.
Para excluir várias linhas em tabelas elásticas, você também pode usar a DeleteMultiple mensagem.
DeleteMultiple exclui registros em um único elástico imediatamente, em vez de usar um trabalho de exclusão em massa.
Executar exclusão em massa
Para excluir dados em massa, use a mensagem BulkDelete para enviar uma tarefa de exclusão em massa. Usando o SDK, use a classe BulkDeleteRequest. Ao usar a Web API, use a ação BulkDelete. Especifique as expressões de consulta que descrevem os registros a serem excluídos na QuerySet propriedade de sua solicitação.
Um trabalho de exclusão em massa é representado por um registro na Bulk Delete Operation tabela (BulkDeleteOperation). Um registro de operação de exclusão em massa inclui as seguintes informações:
- O número de registros que a tarefa excluiu
- O número de registros que o trabalho não pôde excluir
- Se o trabalho foi definido como recorrente
- A hora de início do trabalho
O trabalho de exclusão em massa é executado de forma assíncrona sem bloquear outras atividades. Ele exclui apenas os registros que foram criados antes do trabalho começar a ser executado. O trabalho exclui os registros especificados com base em regras de cascata relativas ao comportamento em cascata do relacionamento da tabela.
Se um trabalho de exclusão em massa falhar ou terminar prematuramente, a operação não reverterá nenhum registro excluído. Os dados de registro permanecem excluídos. Um registro de falhas é armazenado na Bulk Delete Failure tabela (BulkDeleteFailure). Você pode recuperar informações da tabela sobre o erro que causou a falha.
Para executar um trabalho de exclusão em massa, você deve ter BulkDelete e Delete privilégios nos tipos de tabela que está excluindo. Você também deve ter permissões de leitura nos registros de tabela especificados na propriedade QuerySet. Um administrador do sistema tem as permissões necessárias por padrão. Conceda-os a outros usuários.
Você pode executar uma exclusão em massa em todas as tabelas que dão suporte à Delete mensagem.
Se a ação de exclusão em um tipo de tabela específico disparar um plug-in ou um fluxo de trabalho (processo), o trabalho de exclusão em massa disparará o plug-in ou o fluxo de trabalho sempre que ele excluir um registro de tabela desse tipo.
Controlar o processamento de exclusão em massa
O parâmetro Options na BulkDeleteação controla como a tarefa de exclusão em massa processa as linhas da tabela (registros). Use o parâmetro para:
- Desative a manutenção de registros excluídos para registros excluídos em massa. Desativar a manutenção de registros excluídos melhora o desempenho ignorando a sobrecarga de armazenar registros excluídos para recuperação.
- Habilite o modo de exclusão rápida da área restrita para ignorar o pipeline do SDK padrão (plug-ins, fluxos de trabalho, manutenção de registros excluídos). A exclusão rápida alcança uma taxa de transferência de exclusão maior Esta propriedade é compatível apenas com ambientes sandbox. Quando usadas em outros tipos de ambiente, incluindo produção, as exclusões seguem o processo padrão e respeitam plug-ins, fluxos de trabalho e políticas de manutenção de registros excluídas.
Note
O suporte para a capacidade de usar o novo parâmetro Options com o SDK para .NET para controlar o processamento de exclusão em massa está planejado para uma versão futura.
Usar o parâmetro Opções
O Options parâmetro aceita um BulkDeleteOptions objeto com as propriedades a seguir.
| Property | Tipo | Padrão | Description |
|---|---|---|---|
CanRecoverDeletedRecords |
booleano | null (manutenção de registros excluídos ativada) | Quando definido como false, os registros excluídos pelo trabalho de exclusão em massa são permanentemente removidos e não podem ser recuperados. Se a manutenção de registros excluídos já estiver desativada para o ambiente, definir CanRecoverDeletedRecords como true não manterá os registros excluídos deste trabalho para recuperação posterior. |
RunJobForSandbox |
booleano | nulo (pipeline padrão) | Quando definido como verdadeiro, o trabalho de exclusão em massa usa o modo de exclusão em sandbox de alto desempenho, ignorando plug-ins, fluxos de trabalho e a manutenção do histórico de registros excluídos. Essa propriedade é particularmente útil para remover grandes volumes de dados de ambientes de área restrita após uma cópia de produção. Compatível somente em ambientes sandbox. Quando usadas em outros tipos de ambiente, incluindo produção, as exclusões seguem o processo padrão e respeitam plug-ins, fluxos de trabalho e políticas de manutenção de registros excluídas. |
Aviso
Não execute os exemplos mostrados neste artigo conforme escrito. Modifique o código de exemplo conforme apropriado para seu ambiente de desenvolvimento. Alguns desses exemplos excluem todas as contas, o que não é algo que você deseja fazer.
Exemplo: Parâmetro Opções
Os exemplos a seguir demonstram como usar o Options parâmetro com a ação BulkDelete .
Use a propriedade Options no corpo da solicitação para a ação BulkDelete. O Options parâmetro é um tipo complexo BulkDeleteOptions.
Solicitação:
POST [Organization Uri]/api/data/v9.2/BulkDelete HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json
{
"QuerySet": [
{
"@odata.type": "Microsoft.Dynamics.CRM.QueryExpression",
"EntityName": "account",
"ColumnSet": {
"AllColumns": true
},
"Distinct": false
}
],
"JobName": "Delete all accounts",
"SendEmailNotification": false,
"ToRecipients": [],
"CCRecipients": [],
"RecurrencePattern": "",
"StartDateTime": "2026-03-13T06:30:00Z",
"Options": {
"CanRecoverDeletedRecords": true,
"RunJobForSandbox": false
}
}
Resposta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.BulkDeleteResponse",
"JobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Valores dos parâmetros de opções
| Scenario | PodeRecuperarRegistrosExcluídos | RunJobForSandbox | Efeito |
|---|---|---|---|
| Padrão (exclusão padrão) | verdadeiro ou omitido | falso ou ausente | Os registros continuam usando o pipeline de exclusão padrão. Se a retenção de registros excluídos já estiver desativada para o ambiente, definir CanRecoverDeletedRecords como true não manterá os registros excluídos deste trabalho para recuperação posterior. |
| Ignorar a manutenção de registros deletados | falso | falso ou ausente | Os registros continuam usando o pipeline de exclusão padrão, mas ignoram a manutenção de registros excluídos para o trabalho. Se a manutenção de registros excluídos já estiver habilitada para o ambiente, definir CanRecoverDeletedRecords como false ignora a manutenção de registros excluídos para este trabalho específico. |
| Exclusão rápida da área restrita | falso | verdadeiro | Ignora a manutenção de registros excluídos e o pipeline do SDK. Largura de banda máxima. |
Controle o comportamento de retenção de registros excluídos
Por padrão, quando você habilita a manutenção de registros excluídos para seu ambiente, o sistema mantém todos os registros que um trabalho de exclusão em massa exclui antes de excluí-los. A manutenção de registros excluídos ajuda os administradores a recuperar registros excluídos acidentalmente, mas adiciona uma sobrecarga significativa de E/S para cada registro excluído.
Para ignorar a manutenção de registros de itens excluídos em um trabalho de exclusão em massa, defina CanRecoverDeletedRecords como false no parâmetro Options. Essa configuração pode dobrar aproximadamente a taxa de transferência de exclusão ao eliminar a sobrecarga de:
- Criando
DeletedItemReferenceregistros - Copiando dados de registro para tabelas de armazenamento bin para recuperação posterior
- Atualizando os blobs de restauração de dados para cada registro excluído
Aviso
Quando você define CanRecoverDeletedRecords como false, o trabalho de exclusão em massa remove permanentemente os registros excluídos e não pode recuperá-los. Essa ação é irreversível. Verifique se você verificou os critérios de consulta e tem backups apropriados antes de executar um trabalho de exclusão em massa com essa opção. Essa configuração afeta apenas o trabalho de exclusão em massa atual; ele não altera a configuração de manutenção de registro excluído no nível do ambiente.
Exemplo: Desabilitar a manutenção de registros excluídos para exclusão mais rápida
Exclua permanentemente os registros sem armazená-los para recuperação posterior.
POST [Organization Uri]/api/data/v9.2/BulkDelete HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json
{
"QuerySet": [
{
"@odata.type": "Microsoft.Dynamics.CRM.QueryExpression",
"EntityName": "account",
"ColumnSet": {
"AllColumns": true
},
"Distinct": false
}
],
"JobName": "Delete accounts - skip recycle bin",
"SendEmailNotification": false,
"ToRecipients": [],
"CCRecipients": [],
"RecurrencePattern": "",
"StartDateTime": "2026-03-13T06:30:00Z",
"Options": {
"CanRecoverDeletedRecords": false
}
}
Exclusão rápida da área restrita
Para cenários que exigem a máxima taxa de exclusão, defina RunJobForSandbox como true para habilitar o modo de exclusão rápida em ambiente isolado. Nesse modo, a tarefa de exclusão em massa contorna completamente o pipeline padrão do SDK e usa a exclusão direta pelo mecanismo de cascata, o que proporciona uma taxa de transferência mais alta.
Importante
Essa propriedade é particularmente útil para remover grandes volumes de dados de ambientes de área restrita após uma cópia de produção. É compatível apenas com ambientes sandbox. Quando usadas em outros tipos de ambiente, incluindo produção, as exclusões seguem o processo padrão e respeitam plug-ins, fluxos de trabalho e políticas de manutenção de registros excluídas.
Quando a exclusão rápida da sandbox está habilitada, as seguintes operações são ignoradas:
- Execução de plug-in pré-operação e pós-operação
- Gatilhos de fluxo de trabalho síncronos e assíncronos
- Manutenção de registros excluídos (os registros são excluídos permanentemente)
- Lógica de negócios personalizada registrada na mensagem de exclusão
O processo preserva os seguintes elementos quando executa a exclusão rápida:
- Regras de exclusão em cascata com base na configuração de relação de tabela
- Integridade referencial (relações de chave estrangeira)
- Verificações de privilégios de segurança
- Sincronizar o controle de alterações para replicação downstream
Importante
O modo de exclusão rápida de área restrita ignora todo o pipeline de plug-in da estrutura de eventos. Todos os plug-ins personalizados, fluxos de trabalho ou lógica de negócios registrados na mensagem Delete não são executados para registros excluídos nesse modo. Essa restrição inclui plug-ins de auditoria, plug-ins de integração e qualquer lógica de validação personalizada. Além disso, você não pode recuperar registros excluídos no modo de área restrita. Use essa opção somente quando tiver certeza de que nenhuma lógica comercial crítica depende da execução de plug-in durante a exclusão e que a exclusão permanente e irrecuperável é aceitável.
Exemplo: exclusão rápida do sandbox
Saiba como usar o modo de exclusão em sandbox de alto desempenho para a máxima taxa de transferência (throughput).
POST [Organization Uri]/api/data/v9.2/BulkDelete HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json
{
"QuerySet": [
{
"@odata.type": "Microsoft.Dynamics.CRM.QueryExpression",
"EntityName": "account",
"ColumnSet": {
"AllColumns": true
},
"Distinct": false
}
],
"JobName": "Delete accounts - sandbox fast delete",
"SendEmailNotification": false,
"ToRecipients": [],
"CCRecipients": [],
"RecurrencePattern": "",
"StartDateTime": "2026-03-13T06:30:00Z",
"Options": {
"CanRecoverDeletedRecords": false,
"RunJobForSandbox": true
}
}
Dados retidos a longo prazo
A exclusão em massa também está disponível para dados retidos de longo prazo. Execute uma exclusão em massa como faria normalmente, mas defina o campo da consulta DataSource como retido.
Defina a QueryExpressionDataSource propriedade como retained em uma ação BulkDelete da API Web para indicar que a consulta é somente para linhas retidas.
Solicitação:
POST [Organization Uri]/api/data/v9.2/BulkDelete HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json
{
"QuerySet":
[
{
"EntityName": "contact",
"DataSource": "retained",
"Criteria":
{
"FilterOperator": "And",
"Conditions":
[
{
"AttributeName": "firstname",
"Operator": "Equal",
"Values" : [{"Value":"Bob","Type":"System.String"}]
}
]
}
}
],
"JobName": "Bulk Delete Retained Contacts",
"SendEmailNotification": false,
"RecurrencePattern": "",
"StartDateTime": "2023-03-07T05:00:00Z",
"ToRecipients": [],
"CCRecipients": []
}
Resposta:
HTTP/1.1 200 OK
{
"@odata.context": "[Organization Uri]/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.BulkDeleteResponse",
"JobId": "3093d67f-21f0-ed11-8b48-6045bdd92a32"
}
Exemplos
Para saber mais sobre o recurso de exclusão em massa, consulte os exemplos do SDK para .NET a seguir:
- Exemplo: excluir registros exportados em massa
- Exemplo: excluir em massa registros que correspondem a critérios comuns