Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Feature zum Massenlöschen in Microsoft Dataverse hilft Ihnen, die Datenqualität aufrechtzuerhalten und den Verbrauch des Systemspeichers zu verwalten, indem Sie daten löschen, die Sie nicht mehr benötigen. So können Sie beispielsweise die folgenden Daten in einem Massenvorgang löschen:
- Veraltete Daten
- Daten, die für das Unternehmen nicht mehr relevant sind
- Nicht benötigte Test- oder Beispieldaten
- Daten, die falsch aus anderen Systemen importiert wurden
Sie können die folgenden Vorgänge durchführen:
- Daten über mehrere Tabellen löschen.
- Löschen von Datensätzen in einer bestimmten Tabelle.
- E-Mail-Benachrichtigungen erhalten, wenn eine Massenlöschung endet.
- Löschen Sie Daten in regelmäßigen Intervallen.
- Planen Sie die Startzeit einer Serienmassenlöschung.
- Abrufen von Informationen zu Fehlern, die während eines Massenlöschvorgangs aufgetreten sind.
Wenn Sie mehrere Zeilen in elastischen Tabellen löschen möchten, können Sie auch die DeleteMultiple Nachricht verwenden.
DeleteMultiple löscht Datensätze in einem einzelnen Elastic sofort, anstatt einen Massenlöschauftrag zu verwenden.
Massenlöschvorgang ausführen
Um Daten in Massen zu löschen, verwenden Sie die BulkDelete Nachricht, um einen Massenlöschauftrag zu senden. Verwenden Sie mithilfe des SDK die BulkDeleteRequest-Klasse. Verwenden Sie mithilfe der Web-API die BulkDelete-Aktion. Geben Sie die Abfrageausdrücke an, die die zu löschenden Datensätze in der QuerySet Eigenschaft Ihrer Anforderung beschreiben.
Ein Massenlöschauftrag wird durch einen Datensatz in der Bulk Delete Operation (BulkDeleteOperation) Tabelle dargestellt. Ein Datensatz für einen Massenlöschvorgang enthält die folgenden Informationen:
- Die Anzahl der Datensätze, die der Auftrag gelöscht hat
- Die Anzahl der Datensätze, die der Auftrag nicht löschen konnte
- Ob der Auftrag wiederkehrend ist.
- Die Startzeit des Auftrags
Der Massenlöschauftrag wird asynchron ausgeführt, ohne andere Aktivitäten zu blockieren. Es löscht nur Datensätze, die erstellt wurden, bevor der Auftrag gestartet wird. Der Auftrag löscht die angegebenen Datensätze gemäß den Kaskadierungsregeln, die auf dem Kaskadierungsverhalten von Tabellenbeziehungen basieren.
Wenn ein Massenlöschauftrag fehlschlägt oder vorzeitig beendet wird, führt der Vorgang kein Rollback für gelöschte Datensätze durch. Die Aufzeichnungsdaten bleiben gelöscht. Ein Datensatz von Fehlern wird in der Bulk Delete Failure (BulkDeleteFailure) Tabelle gespeichert. Sie können Informationen aus der Tabelle zu dem Fehler abrufen, der den Fehler verursacht hat.
Um einen Massenlöschauftrag auszuführen, müssen Sie über BulkDelete und Delete Berechtigungen für die Tabellentypen, die Sie löschen, verfügen. Außerdem müssen Sie über Leseberechtigungen für die Tabellendatensätze verfügen, die Sie in der QuerySet Eigenschaft angeben. Ein Systemadministrator verfügt standardmäßig über die erforderlichen Berechtigungen. Gewähren Sie diese anderen Benutzern.
Sie können einen Massenlöschvorgang für alle Tabellen ausführen, die die Delete Nachricht unterstützen.
Wenn die Löschaktion für einen bestimmten Tabellentyp ein Plug-In oder einen Workflow (Prozess) auslöst, löst der Massenlöschauftrag das Plug-In oder den Workflow jedes Mal aus, wenn er einen Tabellendatensatz dieses Typs löscht.
Langfristig aufbewahrte Daten
Massenlöschung steht auch für langfristig aufbewahrte Daten zur Verfügung. Führen Sie wie gewohnt einen Massenlöschvorgang aus, legen Sie jedoch das Feld der Abfrage DataSource so fest, dass sie beibehalten wird.
Mithilfe des SDK können Sie entweder QueryExpression oder die FetchXmlToQueryExpressionRequest-Klasse mit IOrganizationService.Execute verwenden, um FetchXml in ein QueryExpression zu konvertieren.
QueryExpression
Verwenden Sie die QueryExpression.DataSource-Eigenschaft , um anzugeben, dass die Abfrage nur für aufbewahrte Zeilen vorgesehen ist. Legen Sie den Wert auf retained "Massenlöschung aufbewahrter Daten" fest.
static Guid BulkDeleteRetainedAccountsExample(IOrganizationService service)
{
var request = new BulkDeleteRequest
{
JobName = "Bulk Delete Retained Accounts"
};
// Create query and add additional filters as needed
QueryExpression query = new QueryExpression
{
EntityName = "account",
DataSource = "retained"
};
request.QuerySet = new QueryExpression[]{query};
request.StartDateTime = DateTime.Now;
request.RecurrencePattern = string.Empty;
request.SendEmailNotification = false;
request.ToRecipients = Array.Empty<Guid>();
request.CCRecipients = Array.Empty<Guid>();
BulkDeleteResponse response = (BulkDeleteResponse)service.Execute(request);
return response.JobId;
}
FetchXML
Fügen Sie das datasource='retained' Attribut zum fetch Element hinzu, um anzugeben, dass die Abfrage nur für aufbewahrte Zeilen bestimmt ist.
static Guid BulkDeleteRetainedAccountsFetchXmlExample(IOrganizationService service) {
var convertRequest = new FetchXmlToQueryExpressionRequest
{
FetchXml = @"
<fetch datasource='retained'>
<entity name='account'>
</entity>
</fetch>"
};
FetchXmlToQueryExpressionResponse convertResponse = (FetchXmlToQueryExpressionResponse)service.Execute(convertRequest);
var request = new BulkDeleteRequest
{ JobName = "Bulk Delete Retained Accounts" };
request.QuerySet = new QueryExpression[]{convertResponse.Query};
request.StartDateTime = DateTime.Now;
request.RecurrencePattern = string.Empty;
request.SendEmailNotification = false;
request.ToRecipients = Array.Empty<Guid>();
request.CCRecipients = Array.Empty<Guid>();
BulkDeleteResponse response = (BulkDeleteResponse)service.Execute(request);
return response.JobId;
}
Beispiele
Sehen Sie sich das folgende SDK für .NET-Beispiele für das Feature zum Massenlöschen an:
- Beispiel: Massenlöschung exportierter Datensätze
- Beispiel: Massenlöschen von Datensätzen, die allgemeinen Kriterien entsprechen