Definition des Aufgabenverlaufs
In diesem Artikel wird die Definition des Vorgangsverlaufsdatensatzes beschrieben, der in Dataverse in der Tabelle Projektverlauf gespeichert ist. Ein Vorgangsverlaufsdatensatz stellt eine Änderung an einer Aufgabe dar.
"Bearbeitungstyp" definiert den Typ des Verlaufsdatensatzes.
Syntax | Beschreibung |
---|---|
TaskCreated | stellt dar, wann die Aufgabe erstellt wird. |
TaskEdited | stellt dar, wann die Aufgabe bearbeitet wird. |
TaskDeleted | stellt dar, wann die Aufgabe gelöscht wird. |
Undo | stellt dar, wenn eine Änderung rückgängig gemacht wurde |
Redo | stellt dar, wenn eine Änderung erneut geändert wurde. |
DependentBearbeiten | stellt dar, wann ein Vorgang aufgrund einer Änderung an einer anderen Aufgabe geändert wurde. |
Verlaufsdatensätze
Alle Verlaufsdatensätze teilen einen gemeinsamen Satz von Feldern:
Feld | Beschreibung |
---|---|
Project | das Projekt, mit dem der Verlauf verknüpft ist |
Projektaufgabe | die Aufgabe, mit der der Verlauf verknüpft ist. Es ist leer, wenn die Aufgabe gelöscht wird. |
XrmUserId | der Xrm-Benutzer, der die Änderung an der Aufgabe vorgenommen hat |
Zeitstempel | Datum und Uhrzeit der Änderungsgenerierung |
Typ bearbeiten | Der Typ des Verlaufsdatensatzes |
Details | enthält die Verlaufsdaten in einem JSON-Format |
In den folgenden Abschnitten wird beschrieben, was das Feld Details-Nutzlast enthält, abhängig vom Typ des Verlaufsdatensatzes und dem, was bearbeitet wurde. Die Beschreibungen der Spalten in den Details finden Sie unter Exportieren der Projektinhaltsdefinition.
TaskCreated-Details
Der Datensatz wird erstellt, wenn die Aufgabe erstellt wird. Die Nutzlast ist leer.
TaskDeleted-Details
Enthält eine einzelne Eigenschaft "name", bei der es sich um den Namen der Aufgabe handelt, als sie gelöscht wurde.
Beispiel:
{"name":"Pour concrete"}
Details zum Rückgängigmachen/Wiederholen
Eine Revisionseigenschaft mit einem Arraywert, der alle Revisionsnummern enthält, die rückgängig gemacht oder neu erstellt wurden. Die Zahl entspricht dem Suffix in der Revisionseigenschaft des Verlaufsdatensatzes.
Beispiel:
{"revisions":[11,12]}
Entspricht dem Verlaufsdatensatz mit dem Revisionsdatensatzsuffix (00000000011) in:
msxrm\_orgxxxyyyy.crm.dynamics.com\_ff69bc0e-3f66-41c3-b40c-aa3035517e38\_0000000011
TaskBearbeitete Details
TaskEdited stellt direkte Eigenschaftenbearbeitungen für eine Aufgabe dar und erstellt, löscht und bearbeitet alle untergeordneten Aufgabenelemente, z. B. Prüflistenelemente, Anlagen, Zuweisungen, Verknüpfungen usw.
Direkte Aufgabenfeldbearbeitungen
Die Details verfügen über eine "field"-Eigenschaft mit einem JSON-Objektwert. Dieses Objekt verfügt über die geänderten Eigenschaftsnamen als Schlüssel (es können mehrere Aufgabeneigenschaften in einer einzelnen Benutzeraktion bearbeitet werden), wobei ein -Objekt als Wert ist. Dieses Eigenschaftsobjekt verfügt über die Schlüssel "previous" und "updated", wobei die Werte die alten und neuen Werte der Eigenschaft aufweisen.
Beispiel:
{
"fields": {
"name": {
"previous": "Pour concrete",
"updated": "Eat donuts"
}
}
}
Für große Eigenschaften (z. B. die Notizenzuweisung "totalWorkContour") wird ein leerer JSON-Code ausgegeben und nicht die vorherigen/aktualisierten Werte.
Beispiel:
{
"fields": {
"notes": {}
}
}
Aufgabenbearbeitungen, die eine Aufgabe abschließen
Jede Eigenschaftsbearbeitung, die eine Aufgabe abschließt, fügt auch eine abgeschlossene boolesche Eigenschaft hinzu.
Beispiel:
{
"fields": {
"percentComplete": {
"previous": 75,
"updated": 100
}
},
"completed": true
}
Untergeordnete Aufgabenelementbearbeitungen
Untergeordnete Elemente ähneln Feldbearbeitungen, aber der Schlüssel ist der Name der Navigationseigenschaft, und der Wert ist ein Array. Die Elemente im Array können erstellt werden (verfügt über eine "created":true-Eigenschaft), Löschvorgänge ("deleted":true-Eigenschaft) oder Bearbeitungen (weder erstellt noch gelöscht, sondern liste der bearbeiteten Eigenschaften). Erstellte oder gelöschte untergeordnete Elemente verfügen über eine Reihe von Mindesteigenschaften, die zum Rendern des Elements mit Werten erforderlich sind, die direkt für die -Eigenschaft festgelegt sind. Bearbeitungen haben das gleiche Format wie Feldbearbeitungen für die Aufgabe mit den vorherigen und aktualisierten Werten.
Beispielerstellung:
{
"fields": {
"checklistItems": [
{
"id": "f4be3c03-bc04-ee11-83c4-e04f43e61e09",
"created": true,
"name": "checklistItem1"
}
]
}
}
Beispielbearbeitung:
{
"fields": {
"checklistItems": [
{
"id": "54219e93-bd04-ee11-83c4-e04f43e61e09",
"completed": {
"previous": false,
"updated": true
}
}
]
}
}
Eingeschlossene Eigenschaften für Erstellungs- und Löschvorgänge
Bei einfachen untergeordneten Aufgabenelementen (z. B. Prüflistenelemente, Anlagen) beim Erstellen und Löschen sind alle Eigenschaften enthalten, die zum Rendern dieses Elements erforderlich sind. Zu den Prüflistenelementen gehören der Name, und anlagen umfassen Name, URI und Typ.
Alle untergeordneten Elemente, die eine Beziehung zwischen anderen Entitäten darstellen, enthalten die ID der anderen Entität. Beispielsweise enthalten Zuweisungen die resourceId und Links enthalten die predecessorId.
Abhängige Detailsbearbeiten
Abhängige Bearbeitungsdatensätze werden für eine Aufgabe generiert, wenn eine Änderung an einer anderen Aufgabe bewirkt, dass die aktuelle Aufgabe geändert wird. Der Verlaufsdatensatz enthält die Änderungen an der aktuellen Aufgabe und eine sourceEdit-Eigenschaft, die die Änderungen an der Quellaufgabe angibt, die zur Änderung der aktuellen Aufgabe geführt haben.
Beispiel: Ein Link zu einem anderen Vorgang (Quelle) zur aktuellen Aufgabe wird hinzugefügt, und das aktuelle Vorgangsstartdatum wird um einen Tag verschoben:
{
"fields": {
"start": {
"previous": "2015-11-17T08:00:00Z",
"updated": "2015-11-18T08:00:00Z"
}
},
"sourceEdit": {
"type": "TaskEdited",
"taskId": "a6f33356-cd04-ee11-83c4-e04f43e61e09",
"fields": {
"predecessors": [
{
"id": "abf33356-cd04-ee11-83c4-e04f43e61e09",
"created": true,
"predecessorId": "a4f33356-cd04-ee11-83c4-e04f43e61e09"
}
]
}
}
}
Mehrere Quellbearbeitungen
Massenvorgänge können mehrere Aufgaben gleichzeitig ändern und zu mehreren abhängigen Änderungen führen. In diesem Szenario sind die Aufgaben im Massenvorgang in sourceEdit mit einem CompoundEdit-Datensatztyp enthalten. Beispiele für diese Szenarien sind das Löschen mehrerer Aufgaben, das Verknüpfen mehrerer Aufgaben und das Einrücken mehrerer Aufgaben. Ein CompoundEdit-Datensatz enthält die Anzahl der Bearbeitungen und die ersten drei Bearbeitungen.
Beispiel
{
"fields": {
"start": {
"previous": "2015-11-17T08:00:00Z",
"updated": "2015-11-16T08:00:00Z"
}
},
"sourceEdit": {
"type": "CompoundEdit",
"count": 2,
"edits": [
{
"type": "TaskDeleted",
"taskId": "f3233655-ce04-ee11-83c4-e04f43e61e09",
"name": "Task A"
},
{
"type": "TaskDeleted",
"taskId": "f1233655-ce04-ee11-83c4-e04f43e61e09",
"name": "Task B"
}
]
}
}
Bearbeitungen an Sammelvorgängen
Bestimmte Vorgänge, z. B. das Löschen einer Aufgabe oder das Einrücken einer Aufgabe, können mehrere Datensätze generieren, wenn es sich bei der bearbeiteten Aufgabe um einen Sammelvorgang handelt, da diese Änderungen auch für die untergeordneten Elemente des Vorgangs gelten. Alle abhängigen Datensätze enthalten den Sammelvorgang als sourceEdit.
Datensatzgröße
Das Detailfeld hat eine maximale Größe von 1.000 Zeichen. Wenn der anfängliche Änderungsdatensatz 1000 Zeichen überschreitet, wird der Verlaufsdatensatz gekürzt. Alle Zeichenfolgenänderungen sind auf 100 Zeichen beschränkt, und die Anzahl der geänderten Felder ist auf 6 beschränkt. Eine "abgeschnittene" Eigenschaft gibt an, wie viele direkte Felder nicht enthalten waren. Eine "truncatedElements"-Eigenschaft gibt die Anzahl der untergeordneten Elemente an, die nicht geschrieben wurden.
Wenn die Größe des Datensatzes mit den oben genannten Einschränkungen 1.000 Zeichen überschreitet, wird nicht der gesamte Datensatz generiert.
Beispiel
{
"fields": {
"start": {
"previous": "2015-11-17T08:00:00Z",
"updated": "2015-11-10T08:00:00Z"
}
},
"sourceEdit": {
"type": "CompoundEdit",
"count": 2,
"edits": [
{
"type": "TaskEdited",
"taskld": "225a7a3b-a916-ee11-a35f-480fcf4e7967",
"fields": {
"name": {
"previous": "Prepare Preliminary Project Scope Statement",
"updated": "Summarize Project Results and Lessons Learned"
},
"start": {
"previous": "2015-11-16T08:00:00Z",
"updated": "2017-11-16T08:00: 00Z"
},
"truncated": 5
}
},
{
"type": "TaskEdited",
"taskld": "245a7a3b-a916-ee11-a35f-480fcf4e7967",
"fields": {
"name": {
"previous": "Prepare Preliminary Project Scope Statement",
"updated": "Develop High Level Work Breakdown Structure"
},
"start": {
"previous": "2015-11-16T08:00:00Z",
"updated": "2017-11-16T08:00:00Z"
},
"truncated": 5
}
}
]
}
}