Teilen über


Asynchroner Service

Der asynchrone Dienst führt zeitaufwändige Vorgänge unabhängig vom Microsoft Dataverse-Kernvorgang aus. Zum Ausführen zeitintensiver Vorgänge führt dies zu einer optimierten Gesamtsystemleistung und Skalierbarkeit. Der asynchrone Dienst verfügt über eine verwaltete First-In, First-Out (FIFO)-Warteschlange für die Ausführung von asynchron registrierten Plug-Ins, Workflows und Operationen wie Massenmail, Massenimport und Verbreitung von Aktivitätsweitergaben. Diese Vorgänge werden beim asynchronen Dienst registriert und in regelmäßigen Intervallen ausgeführt, wenn der Dienst die Warteschlange verarbeitet.

Nachdem ein Ereignis eingetreten ist und alle synchronen Erweiterungen verarbeitet wurden, serialisiert Dataversedie Plattform den Kontext für alle asynchronen Erweiterungen und speichert ihn in der Datenbank als Systemvorgang in der (AsyncOperation) Tabelle. Der Systemauftrag definiert und verfolgt die Ausführung des asynchronen Betriebs. Wenn Ressourcen verfügbar werden, verarbeitet Dataverse die Systemaufträge und führt die von ihnen definierten Vorgänge aus. Dataverse verarbeite alle Datenvorgänge, die in der Erweiterung definierte sind erneut in der der Ereignisausführungspipeline, diesmal jedoch als synchronen Vorgang.

Ausführungsauftrag und Abhängigkeiten

Systemaufträge werden als Warteschlange mithilfe des Datums CreatedOn ausgewertet. Wenn es keine Bedingungen für eine Verschiebung der Ausführung gibt, werden diese ausgeführt, sobald Ressourcen verfügbar sind. Es ist nicht immer garantiert, dass die Ausführung in der bis zum CreatedOn Datum festgelegten Reihenfolge erfolgt, da verschiedene Arten von Operationen unterschiedliche Ressourcen erfordern.

Ein Systemauftrag kann von einem anderen Systemauftrag abhängig sein, so dass er erst beginnt, wenn der andere Systemauftrag abgeschlossen ist. Der Spaltenwert Abhängigkeitstoken etabliert diese Abhängigkeit, wenn ein Systemauftrag erstellt wird. Wenn der DependencyToken-Wert Null ist, hat der Systemauftrag keine Abhängigkeiten. Abhängige Systemaufträge haben den gleichen DependencyToken-Wert und werden in der Reihenfolge ihrer Erstellung ausgeführt. Wenn ein Systemauftrag verschoben wird, warten alle nachfolgenden abhängigen Systemaufträge weiterhin, bis der aufgeschobene Systemauftrag ausgeführt wird.

Hinweis

Dieses Abhängigkeitssystem kann nicht von Plug-Ins verwendet werden, die für den asynchronen Betrieb registriert sind, da die Systemaufträge für sie vom System erstellt werden.

Verwalten von Systemaufträgen

Mit der AsyncOperation Table können Sie die folgenden Operationen zur Verwaltung von Systemjobs durchführen.

  • Abrufen von Systemaufträgen
  • Systemaufträge löschen
  • Verwalten von Systemauftragsstatus
  • Verschieben von Systemaufträgen

Hinweis

Das Erstellen von Systemaufträgen mit Code wird nicht unterstützt. Obwohl die AsyncOperation-Tabelle mehrere beschreibbare Spalten und Erstellungsoperationen unterstützt, werden nur die folgenden Spalten für die Aktualisierung unterstützt:

Abrufen von Systemaufträgen

Sie können Systemaufträge in der Anwendung anzeigen, indem Sie zu Einstellungen > System > Systemaufträge navigieren; Sie können sie auch über Erweiterte Suche in modellgesteuerten Apps suchen.

Mit Hilfe von Code können Sie Systemaufträge wie jede andere Tabelle abrufen. In der folgenden Tabelle sind ausgewählte Spalten aufgeführt, die für das Verständnis von Systemjobs wichtig sind:

Column Description
AsyncOperationId Eindeutiger Bezeichner des Systemauftrags.
CompletedOn Datum und Uhrzeit der Fertigstellung des Systemauftrags.
CreatedBy Eindeutiger Bezeichner des Benutzers, der den Systemauftrag erstellt hat.
CreatedOn Datum und Uhrzeit der Erstellung des Systemauftrags.
Data Dem Systemauftrag zugeordnete unstrukturierte Daten.
DependencyToken Die Ausführung aller Vorgänge mit demselben Abhängigkeitstoken wird serialisiert. Erfahren Sie mehr über den Ausführungsauftrag und Abhängigkeiten
Depth Anzahl von SDK-Aufrufen seit dem ersten Aufruf.
ErrorCode Fehlercode, der von einem abgebrochenen Systemauftrag zurückgegeben wurde.
ExecutionTimeSpan Die zur Ausführung des Systemauftrags benötigte Zeit.
FriendlyMessage Die vom Systemauftrag ausgegebene Meldung.
IsWaitingForEvent Gibt an, dass der Systemauftrag auf ein Ereignis wartet.
Message Nachricht zum Systemauftrag.
MessageName Der Name der Nachricht, von der dieser Systemauftrag aufgerufen wurde.
ModifiedBy Eindeutiger Bezeichner des Benutzers, der den Systemauftrag zuletzt geändert hat.
ModifiedOn Datum und Uhrzeit der letzten Änderung des Systemauftrags.
Name Name des Systemauftrags.
OperationType Typ des Systemauftrags. Mehr über Vorgangstypen erfahren
OwnerId Eindeutiger Bezeichner des für den Systemauftrag zuständigen Benutzers oder Teams.
OwningBusinessUnit Eindeutiger Bezeichner der Unternehmenseinheit, die im Besitz des Systemauftrags ist.
OwningExtensionId Eindeutiger Bezeichner der besitzenden Erweiterung, der der Systemauftrag zugeordnet ist.
OwningTeam Eindeutiger Bezeichner des Teams, das im Besitz des Datensatzes ist.
OwningUser Eindeutiger Bezeichner des Benutzers, der im Besitz des Datensatzes ist.
PostponeUntil Zeigt an, ob der Systemauftrag nach dem angegebenen Datum und der angegebenen Uhrzeit ausgeführt werden soll. Lernen Sie, Systemaufträge zu verschieben
PrimaryEntityType Typ der Tabelle, mit der der Systemauftrag primär verknüpft ist.
RecurrencePattern Serienmuster von Systemaufträgen. ;ejr er Wiederholungsstartzeiten und -Muster erfahren
RecurrenceStartTime Startzeit in UTC für das Serienmuster. ;ejr er Wiederholungsstartzeiten und -Muster erfahren
RegardingObjectId Eindeutiger Bezeichner des Objekts, dem der Systemauftrag zugeordnet ist.
RetryCount Anzahl der Wiederholungsversuche für den Systemauftrag.
Sequence Reihenfolge, in der Vorgänge übermittelt wurden.
StartedOn Datum und Uhrzeit des Starts des Systemauftrags.
StateCode Status des Systemauftrags. Mehr über das Verwalten von Systemauftragsstatus erfahren
StatusCode Grund für den Status des Systemauftrags. Mehr über das Verwalten von Systemauftragsstatus erfahren
UTCConversionTimeZoneCode Zeitzonencode, der bei der Datensatzerstellung verwendet wurde.
WorkflowStageName Name einer Workflowphase.

Beispiele

Sie können die folgenden Beispiele verwenden, um Systemauftragsdaten abzurufen.

Verwenden Sie die folgende Web-API-Abfrage, um die Spalten in der obigen Tabelle abzurufen. [Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen](webapi/query/overview.md

GET <organization URL>/api/data/v9.2/asyncoperations?$top=1000
&$select=
asyncoperationid,
completedon,
createdon,
data,
dependencytoken,
depth,
errorcode,
executiontimespan,
friendlymessage,
iswaitingforevent,
message,
messagename,
modifiedon,
name,
operationtype,
_ownerid_value,
postponeuntil,
primaryentitytype,
recurrencepattern,
recurrencestarttime,
_regardingobjectid_value,
retrycount,
sequence,
startedon,
statecode,
utcconversiontimezonecode,
workflowstagename
&$expand=
createdby($select=fullname),
modifiedby($select=fullname),
owningbusinessunit($select=name),
owningextensionid($select=name),
owningteam($select=name),
owninguser($select=fullname)

Hinweis

Mit der Web-API gibt es eine einwertige Navigationseigenschaft für jede Tabelle, die Systemaufträge unterstützt. Der Name dieser Navigationseigenschaft folgt dem Muster regardingobjectid_<table logical name>.

Vorgangstypen

Die Spalte OperationType beschreibt Kategorien von Systemjobs. Dataverse initiiert viele dieser Typen, um Wartungsaufgaben durchzuführen.

Hinweis

Sie können keine Abbruch-, Halte- oder Fortsetzungsvorgänge für von der Plattform generierte Systemaufträge durchführen.

Einige der Typen dieser plattformgenerierten Aufträge sind in der folgenden Tabelle aufgeführt:

OperationType-Wert OperationType-Beschriftung
9 SQM-Datensammlung
16 Organisationsstatistiken werden gesammelt.
18 Speicherplatzgröße der Organisation wird berechnet.
19 Organisationsdatenbankstatistiken werden gesammelt.
20 Statistiken zur Organisationsgröße werden gesammelt.
22 Maximale Speicherplatzgröße der Organisation wird berechnet.
24 Statistikintervalle werden aktualisiert.
25 Volltextkatalog-Index der Organisation
27 Vertragsstatus aktualisieren
31 Speicherlimitbenachrichtigung

Eine vollständige Liste finden Sie unter Vorgangsypen Auswahl/Optionen

Wiederholungsstartzeiten und -muster

Wiederkehrende Systemaufträge benötigen Informationen darüber, wann sie beginnen sollten und wie oft sie wiederkehren. Diese Werte werden in der Tabelle AsyncOperation in den Spalten RecurrenceStartTime und RecurrencePattern gespeichert.

Da Sie die AsyncOperation-Tabellen nicht direkt mit Code erstellen können, müssen Sie diese Werte nur interpretieren, wenn Sie die Daten abfragen. Diese Eigenschaftswerte werden Sie nur indirekt festlegen, indem Sie Meldungen verwenden, die neue Systemaufträge erstellen. Die BulkDelete- und BulkDeleteDuplicates-Meldungen enthalten beide Parameter oder Eigenschaften in den entsprechenden Web-API-Aktionen oder SDK für .NET-Anforderungsklassen. Mehr Informationen: BulkDetectDuplicatesRequest Klasse, BulkDetectDuplicates-Aktion, BulkDeleteRequest Klasse, und BulkDelete-Aktion

Der RecurrenceStartTime ist lediglich ein Datumszeitwert, der angibt, wann der Systemauftrag gestartet werden soll. Wenn er nicht festgelegt ist, wird erwartet, dass der Systemauftrag sofort gestartet wird.

Die Spalte RecurrencePattern speichert Informationen darüber, wie häufig wiederkehrende Systemaufträge auftreten. Diese Plattform legt manchmal diesen Wert fest, wenn ein neuer Asynchronisations-Datensatz erstellt wird. Sie können diesen Wert festlegen, um das Muster zu ändern.

Die Werte für diese Spalte verwenden Teile des Internet-Standards RFC2445 (Internet Calendaring and Scheduling Core Object Specification).

Die folgende Tabelle enthält einige Beispiele:

Serienmuster Häufigkeit der Auftragsausführung
FREQ=MONTHLY; Einmal im Monat
FREQ=WEEKLY; Einmal die Woche
FREQ=DAILY; Einmal täglich
FREQ=DAILY;INTERVAL=3; Alle drei Tage
FREQ=HOURLY; Einmal pro Stunde

Wenn kein INTERVAL-Wert festgelegt ist, wird er als 1 interpretiert.

Diagnoseabfragen

Verwenden Sie die Abfragen in diesem Abschnitt, um bei der Diagnose von Problemen zu helfen.

Aufträge nach Bundesstaat, Status und Typ

Verwenden Sie diese Abfrage, um die Verteilung und Häufigkeit verschiedener Arten von Jobs zu verstehen. Die Ergebnisse können Ihnen Aufschluss darüber geben, welche Jobs ein Problem verursachen.

Diese Abfrage sortiert nicht nach count absteigend. Möglicherweise möchten Sie stattdessen FetchXml mit Web-API verwenden. Daten mithilfe von FetchXml abfragen

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Top-Systemaufträge, die sich im angehaltenen Zustand befinden, nach Anzahl

Verwenden Sie diese Abfrage, um die Anzahl aller Jobs innerhalb der AsyncOperation Tabelle zu extrahieren, die in einem Ausgesetzt-Status sind. Diese Abfrage hilft Ihnen bei:

  • Verstehen Sie den Umfang und die Art der Warteauftrags.
  • Identifizieren Sie, wo es zu Verzögerungen kommt.
  • Treffen Sie fundierte Entscheidungen darüber, wie Sie diese beheben können, um die Systemleistung und den Durchsatz zu verbessern.

Diese Abfrage sortiert nicht nach count absteigend. Möglicherweise möchten Sie stattdessen FetchXml mit Web-API verwenden. Daten mithilfe von FetchXml abfragen

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((statecode eq 1))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Darauf sollten Sie bei den Ergebnissen achten:

  • Angehaltene Aufträge quantifizieren: Die Abfrage zielt speziell auf Aufträge ab, die angehalten (statecode = 1) sind. Die Ergebnisse geben Ihnen eine Zählung aller dieser Aufträge, kategorisiert nach ihren statuscode und operationtype.

  • Aufschlüsselung der Vorgangstypen: Die Anzahl der ausgesetzten Aufträge gruppiert operationtype und zeigt Ihnen, welche Arten von Vorgängen am häufigsten in einem Suspendierter Status vorkommen.

  • Identifizieren potenzieller Engpässe: Eine hohe Anzahl ausgesetzter Aufträge über längere Zeiträume kann auf Ressourcenbeschränkungen, Abhängigkeiten von anderen Prozessen oder Systemen-Fehlkonfigurationen zurückzuführen sein.

  • Kapazitäts- und Ressourcenmanagement: Wenn sich bestimmte Jobs dauerhaft im Status Angehalten befinden, könnte dies darauf hindeuten, dass dem System die notwendigen Ressourcen zur effizienten Verarbeitung dieser Aufträge fehlen.

  • Systemzustandsprüfung: Die Aufträge im Status Angehalten dienen als Integritätsindikator. Ein fehlerfreies System sollte idealerweise nur minimale Aufträge in einem Angehaltenen Status haben oder zumindest einen schnellen Wechsel von Angehalten zur aktiven Verarbeitung zeigen.

  • Workflow-Effizienz: Die Ergebnisse können Aufschluss über die Workflow-Effizienz geben. Wenn ein bestimmter operationtype eine hohe Anzahl angehaltener Aufträge aufweist, kann dies auf Ineffizienzen oder Optimierungsbedarf innerhalb dieses Workflows hinweisen.

Workflows nach Anzahl

Diese Abfrage bietet eine detaillierte Aufschlüsselung von Workflow-bezogenen Aufträgen, gefiltert nach einem operationtype Wert für Workflows. Nutzen Sie die Abfrageergebnisse, um einen umfassenden Überblick über Workflow-Aufträge zu erhalten, Systemressourcen effektiver zu verwalten und sicherzustellen, dass Workflows reibungslos und effizient ablaufen.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((operationtype eq 10))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Darauf sollten Sie bei den Ergebnissen achten:

  • Workflowspezifische Aufträge: Der operationtype = 10 Filter beschränkt die Ergebnisse auf Workflow-Aufträge. Sie können sehen, wie viele Aufträge mit Workflows verknüpft sind und welchen aktuellen Status sie haben. Sie können diese Beispielabfrage auch auf andere Arten von Vorgängen anwenden. Weitere Informationen zu Vorgangstypen

  • Auftragsverteilung: Die statecode zeigt Ihnen den aktuellen Status dieser Workflow-Aufträge, z. B. ob sie Bereit Angehalten, Gesperrt oder Abgeschlossen sind.

  • Statuscode-Analyse: Die statuscode kann spezifische Einblicke zum Grund für den aktuellen Status eines Auftrags geben. Sie könnte beispielsweise angeben, ob ein Auftrag Warten auf Ressourcen, Warten, In Bearbeitung, Pausiert, Wird abgebrochen, Erfolgreich, Fehlgeschlagen oder Abgebrochen ist.

  • Anzahl jeder Kategorie: Die Gesamtzahl der Aufträge für jede statecode und statuscode Kombination. Dies hilft bei der Identifizierung der häufigsten Ergebnisse von Workflow-Vorgängen.

  • Identifizieren gemeinsamer Ergebnisse: Mit den nach Anzahl in absteigender Reihenfolge sortierten Ergebnissen können Sie die häufigsten Ergebnisse oder Engpässe bei der Workflow-Verarbeitung identifizieren.

  • Fehlerbehebung und Optimierung: Hohe Zahlen im Status Fehlgeschlagen oder im Status Unterbrochen können Bereiche hervorheben, in denen Arbeitsabläufe möglicherweise fehlschlagen oder stecken bleiben, was darauf hindeutet, dass eine Fehlerbehebung oder Prozessoptimierung erforderlich ist.

  • Leistungsmetriken: Wenn Sie wissen, welche Workflows am häufigsten vorkommen und wie sie auf verschiedene Zustände verteilt sind, können Sie die Leistung und Zuverlässigkeit des Workflow-Management-Systems beurteilen.

  • Kapazitätsplanung: Eine konstant hohe Anzahl an In Bearbeitung oder Wartenden Workflows könnte darauf hindeuten, dass mehr Ressourcen erforderlich sind, um die Last zu bewältigen, oder es besteht die Notwendigkeit, die Workflow-Ausführungsumgebung zu optimieren.

  • Workflow-Management: Die Abfrageergebnisse können Administratoren dabei helfen, Workflows effektiver zu verwalten, z. B. zu entscheiden, welche Workflows priorisiert werden sollen, oder Workflows zu identifizieren, die optimiert oder deaktiviert werden können.

  • Systemzustandsprüfung: Die Gesamtergebnisse können als Zustandsprüfung für Ihr Workflow-System dienen und anzeigen, ob das System optimal funktioniert oder ob es Bereiche gibt, die Aufmerksamkeit erfordern.

Aufträge, die darauf warten, dass Systemressourcen verfügbar werden

Verwenden Sie diese Abfrage, um eine detaillierte Analyse von Aufträgen aus der Tabelle AsyncOperation abzurufen, die sich in einem bestimmten Bereitschaftszustand befinden, aber aufgrund der Nichtverfügbarkeit von Systemressourcen auf die Ausführung warten. Diese Abfrage kann Faktoren identifizieren, die zur Langsamkeit beitragen, und Entscheidungen für mehr Effizienz und eine bessere Bearbeitung des Rückstands treffen.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((statecode eq 0 and statuscode eq 0))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Darauf sollten Sie bei den Ergebnissen achten:

  • Filtern nach bereiten Aufträgen, die auf Ressourcen warten: Einschränken der Ergebnisse bei statecode = 0 und statuscode = 0 Filtern für Aufträge, die sich in einem bereiten Zustand und Warten auf Ressourcen befinden. Diese Kombination weist auf Aufträge hin, die in der Warteschlange stehen und zur Ausführung bereit sind, sich aber in der Warteschleife befinden.

  • Optimierung der Auftragsplanung: Das Erkennen von Mustern in der Auftragsbereitschaft und bei Wartezeiten kann zu Verbesserungen bei der Auftragsplanung und möglicherweise zu einer ausgewogeneren Verteilung der Systemlast führen.

  • Identifizieren zugrunde liegender Probleme: In einigen Fällen sind Aufträge, die auf Ressourcen warten, möglicherweise nicht nur ein Ressourcenproblem, sondern können auch ein Hinweis auf zugrunde liegende Probleme wie Deadlocks oder ineffiziente Ressourcensperrmechanismen sein.

Abfragen zur Dateispeicherung

Abhängig von der Größe der Datenspalte der AsyncOperation Tabelle können die Daten in dieser Spalte im Dateispeicher gespeichert werden. Die DataBlobId-Spalte hat einen Wert, wenn die Zeile Dateispeicher verwendet. Um Platz zu sparen, möchten Sie diese Datensätze möglicherweise identifizieren und löschen. Verwenden Sie die folgenden Abfragen, um diese Datensätze zu ermitteln

AsyncOperation Dateispeicher DataBlobId-Anzahl

Verwenden Sie diese Abfrage, um die Anzahl der Datensätze in der AsyncOperation-Tabelle zu zählen, in der die datablobid-Spalte nicht null ist.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid ne null))/aggregate($count as FileStorageCount)
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Darauf sollten Sie bei den Ergebnissen achten:

  • Auswirkungen auf die Datenspeicherung: Möglicherweise möchten Sie die Datensätze löschen, indem Sie den Dateispeicher verwenden, um Platz zu sparen. Dies ist daher hilfreich zu wissen. Große Zahlen deuten möglicherweise darauf hin, dass diese Blobs viel Platz beanspruchen, was für die Verwaltung der Datenbankgröße wichtig sein kann.

  • Überlegungen zur Systemleistung: Wenn die FileStorageCount unerwartet hoch ist, möchten Sie möglicherweise weitere Maßnahmen ergreifen, z. B. Massenlöschung und Bereinigung.

AsyncOperations nicht im Blobspeicher

Verwenden Sie diese Abfrage, um die Anzahl der Datensätze in der AsyncOperation Tabelle zu zählen, in der das datablobid Feld NULL ist.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid eq null))/aggregate($count as DBCount)
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Darauf sollten Sie bei den Ergebnissen achten:

  • Grundlegendes zu asynchronen Vorgängen, die nicht in Blob Storage enthalten sind: Das DBCount Ergebnis gibt das Volumen der asynchronen Vorgänge an, denen keine Datenblobs zugeordnet sind. Dies zeigt uns den Speicherstatus, wenn die Blobs nicht berücksichtigt werden.

  • Ineffizienzen erkennen Sofern nicht beabsichtigt, kann eine hohe Anzahl hier darauf hindeuten, dass eine Bereinigung geplant und eine Massenlöschung durchgeführt werden muss. Eine niedrige Anzahl im Blob-Speicher und eine hohe Anzahl würde dies hier als den primären Volumenteilnehmer bezeichnen.

Suchen Sie mithilfe der Dateispeicherung nach Auftragsnamen

Die Ergebnisse dieser Abfrage zeigen die Auftragstypen, den Namen der Aufträge und die Häufigkeit, mit der dieser Auftrag in der Tabelle vorhanden ist und Dateispeicher verbraucht. Verwenden Sie dies, um die spezifischen Auftragsnamen zu identifizieren, die den größten Einfluss auf die Dateinutzung haben, und erstellen Sie einen Massenlöschauftrag für Datensätze mit diesem Namen.

Dies ermöglicht die Identifizierung der spezifischen Auftragsnamen, die den größten Einfluss auf den Dateiverbrauch haben. Dadurch kann der Kunde einen Massenlöschvorgang für diesen bestimmten Auftrag einleiten, indem er auf dessen Namen abzielt.

Diese Abfrage sortiert nicht nach der jobs-Spalte absteigend. Möglicherweise möchten Sie stattdessen FetchXml mit Web-API verwenden. Daten mithilfe von FetchXml abfragen

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid ne null))/groupby((operationtype,name,friendlymessage),aggregate($count as jobs))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

AsyncOperation-Dateigröße und Datensatzanzahl

Verwenden Sie diese Abfrage, um die Gesamtdateigröße und die Datensatzanzahl für Systemaufträge nach Zustand, Status und besitzender Erweiterung abzurufen.

In diesem Beispiel wird das codierte FetchXml verwendet, um die Abfrage mithilfe der Web-API zu senden. Daten mithilfe von FetchXml abfragen

GET [Organization URI]/api/data/v9.2/asyncoperations?fetchXml=%3Cfetch%20aggregate%3D%27true%27%3E%20%3Centity%20name%3D%27asyncoperation%27%3E%20%3Cattribute%20name%3D%27owningextensionid%27%20alias%3D%27owningextension%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27statecode%27%20alias%3D%27statecode%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27statuscode%27%20alias%3D%27statuscode%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27operationtype%27%20alias%3D%27operationtype%27%20groupby%3D%27true%27%20%2F%3E%20%3Clink-entity%20name%3D%27fileattachment%27%20to%3D%27datablobid%27%20from%3D%27fileattachmentid%27%20alias%3D%27fileattachment%27%20link-type%3D%27inner%27%3E%20%3Cattribute%20name%3D%27filesizeinbytes%27%20alias%3D%27TotalSize%27%20aggregate%3D%27sum%27%20%2F%3E%20%3Cattribute%20name%3D%27filesizeinbytes%27%20alias%3D%27RecordCount%27%20aggregate%3D%27count%27%20%2F%3E%20%3Cfilter%3E%20%3Ccondition%20attribute%3D%27objectidtypecode%27%20operator%3D%27eq%27%20value%3D%274700%27%20%2F%3E%20%3C%2Ffilter%3E%20%3Corder%20alias%3D%27TotalSize%27%20descending%3D%27true%27%20%2F%3E%20%3C%2Flink-entity%3E%20%3C%2Fentity%3E%20%3C%2Ffetch%3E
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Erfahren Sie, wie Sie Daten mithilfe der Web-API abfragen

Darauf sollten Sie bei den Ergebnissen achten:

  • Datensatzanzahl: RecordCount gibt Ihnen an, wie viele Datensätze für jede Gruppierung von Systemauftragsdatensätzen zurückgegeben werden. Dadurch erhalten Sie eine Vorstellung davon, wie viele asynchrone Vorgänge ausgeführt werden und welche Typen am häufigsten vorkommen.
  • Gesamtdateigröße: TotalSize gibt Ihnen die Datenmenge an, die diese Vorgänge verarbeiten. Auf diese Weise können Sie feststellen, ob ungewöhnlich große Dateien vorhanden sind, die die Systemleistung beeinträchtigen könnten.
  • Gruppierung nach besitzenden Entitäten: Die Abfrage gruppiert Ergebnisse nach owningextensionid, owningextensionidname, statecode, statuscode und operationtype. Sehen Sie sich diese Gruppierungen an, um festzustellen, welche Erweiterungen die meiste Aktivität generieren und ob bestimmte Vorgangstypen vorherrschen.
  • Betriebszustände und -Status: Die Einbeziehung von statecode und statuscode in die Gruppierung hilft Ihnen dabei, den aktuellen Status und Status dieser Vorgänge zu bestimmen, z. B. welche sind ausstehend, in Bearbeitung oder abgeschlossen.
  • Sortierung nach Gesamtgröße: Da die Ergebnisse in absteigender Reihenfolge nach TotalSize geordnet sind, achten Sie auf die obersten Ergebnisse, da diese die Vorgänge hervorheben, die den meisten Speicher verbrauchen. Dies könnte wichtig sein, um potenzielle Bereiche für Optimierung oder Bereinigung zu identifizieren.

Systemaufträge löschen

Sie können Systemjobs in der Anwendung oder im Code wie jede andere Tabelle löschen, wenn Sie die nötigen Rechte dazu haben.

Hinweis

Bei der Registrierung von asynchronen Plugins gibt es die Möglichkeit, erfolgreiche Operationen automatisch zu löschen. Die Verwendung wird empfohlen. Erfahren, wie ein Plug-In geschrieben wird

Die gängige Praxis ist es, einen wiederkehrenden Massenlöschauftrag zu erstellen, der die erfolgreichen Aufträge löscht. Erfahren, wie ein umfangreicher Betrag von bestimmten, gezielten Massenlöschung von Daten entfernt wird

Verwalten von Systemauftragsstatus

Der Status des Systemauftrags ändert sich mehrmals, bis der Vorgang abgeschlossen ist. Nachfolgend sind die StateCode- und StatusCode-Optionen aufgeführt, die die verfügbaren Werte für Zustand und Statusgrund darstellen:

StateCode-Wert StateCode-Beschriftung StatusCode-Wert StatusCode-Beschriftung
0 Bereit 0 Auf Ressourcen wird gewartet
1 Angehalten 10 Es wird gewartet
2 Gesperrt 20 In Bearbeitung
2 Gesperrt 21 Wird angehalten
2 Gesperrt 22 Wird storniert
3 Abgeschlossen 30 Erfolgreich
3 Abgeschlossen 31 Fehler
3 Abgeschlossen 32 Abgesagt

Sie können den Status von Systemaufträgen in der Anwendung ändern, indem Sie zu Einstellungen > System > Systemauftrag navigieren und die im Menü Weitere Aktionen verfügbaren Befehle verwenden.

Aktionsbefehle, die für Systemaufträge in der Anwendung verfügbar sind.

Hinweis

Jede Aktion, die Sie über diese Benutzeroberfläche ausführen können, kann auch per Code durchgeführt werden. Sie können keine Abbruch-, Halte- oder Fortsetzungsvorgänge für von der Plattform generierte Systemaufträge durchführen. Mehr über Vorgangstypen erfahren

Zusammen mit den Optionen zur Verwaltung von Ansichten stehen die folgenden Optionen zur Verfügung, um Systemaufträge zu verwalten:

Option Beschreibung
Entf Verwenden des s Befehl löschen. Befehls.
Löscht einen Systemauftrag
Massenlöschung Verwenden des Menüs Weitere Aktionen.
Öffnet einen Assistenten, um Bedingungen zu definieren und einen neuen Systemauftrag Massenlöschung zu erstellen, um die passenden Systemaufträge zu löschen.
Abbrechen Verwenden des Menüs Weitere Aktionen.
Storniert den Systemauftrag.
Weiter Verwenden des Menüs Weitere Aktionen.
Setzt einen angehaltenen Systemauftrag fort.
Später durchführen Verwenden des Menüs Weitere Aktionen.
Terminiert einen Systemauftrag neu
Anhalten Verwenden des Menüs Weitere Aktionen.
Pausiert einen Systemauftrag.

Ob der angeforderte Vorgang eintritt, hängt vom Zustand des Systemauftrags ab. Beispielsweise können Sie einen Auftrag, der bereits abgeschlossen ist oder noch nicht gestartet wurde, nicht pausieren. Die folgende Tabelle beschreibt die Bedingungen für jede Änderung und was passiert, wenn sie ausgewählt wird.

Option Gültige StateCode-Werte Ändern
Entf Beliebig Systemauftrag wurde gelöscht
Abbrechen 0 (Bereit)
1 (Angehalten)
2 (Gegesperrt)
StateCode geändert auf 3 (Abgeschlossen) und StatusCode geändert auf 32 (Storniert)
Weiter 1 (Angehalten) StateCode geändert auf 0 (Bereit)
Später durchführen 0 (Bereit)
2 (Gesperrt)
Der Zurückstellen eines Auftrags-Dialog fordert den Benutzer auf, den Datums-Zeitwert einzugeben, um den Systemauftrag zu verschieben. Lernen Sie, Systemaufträge zu verschieben
Anhalten 2 (Gegesperrt) StateCode geändert auf 1 (Unterbrochen)

Verschieben von Systemaufträgen

Die Spalte PostPoneUntil enthält einen Datumswert, wann der Systemjob den Status von 1 (Angehalten) auf 0 (Bereit) ändert. Die Spalten PostPoneUntil, StateCode und StatusCode sind die einzigen AsyncOperation Tabellenspalten, die für die Aktualisierung unterstützt werden.

Siehe auch

Schreiben eines Plug-Ins
Schreiben von Plug-Ins zur Erweiterung von Geschäftsprozessen

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).