Freigeben über


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
        }
      }
    ]
  }
}