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
Und Sie können die folgenden Vorgänge ausfü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 mit dem SDK die BulkDeleteRequest-Klasse. Verwenden Sie mit 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 vorzeitig fehlschlägt oder beendet wird, werden alle gelöschten Datensätze nicht zurückgesetzt. Sie 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 zu löschenden Tabellentypen verfügen. Außerdem müssen Sie über Leseberechtigungen für die Tabellendatensätze verfügen, die in der QuerySet Eigenschaft angegeben sind. Ein Systemadministrator verfügt standardmäßig über die erforderlichen Berechtigungen. Anderen Benutzern muss die Berechtigung erteilt werden.
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, wird das Plug-In oder workflow jedes Mal ausgelöst, wenn der Massenlöschauftrag 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.
Mit dem SDK können Sie entweder QueryExpression oder die FetchXmlToQueryExpressionRequest-Klasse zusammen 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