Поделиться через


Определение журнала задач

В этой статье описывается определение записи журнала задач, хранящейся в Dataverse в таблице "Журнал проектов". Запись журнала задач представляет собой изменение задачи.

Тип изменения определяет тип записи журнала.

Синтаксис Описание
TaskCreated представляет момент создания задачи
TaskEdited представляет, когда задача редактируется
TaskDeleted представляет, когда задача удаляется
Undo представляет, когда изменение было отменено
Redo представляет, когда изменение было изменено.
DependentEdit представляет, когда задача была изменена из-за изменения другой задачи

Записи журнала

Все записи журнала имеют общий набор полей:

Поле Описание
Project проект, с который связан журнал;
Задача проекта задача, с чем связан журнал. Если задача удалена, она пуста.
XrmUserId пользователь Xrm, вносящее изменения в задачу
Timestamp дата и время создания изменения;
Изменить тип тип записи журнала;
Сведения содержит данные журнала в формате JSON;

В следующих разделах описывается, что содержит поле полезных данных Сведения в зависимости от типа записи журнала и того, что было изменено. Описание столбцов в разделе Сведения см. в разделе Экспорт определения содержимого проекта.

Сведения о задачеСоздание

Запись создается при создании задачи. Полезные данные пусты.

Сведения о задачах

Содержит одно свойство "name", которое является именем задачи, когда она была удалена.

Пример.

{"name":"Pour concrete"}

Сведения о отмене и повторе

Свойство "редакции" со значением массива, включающее все номера редакций, которые были отменены или повторно удалены. Число соответствует суффиксу в свойстве revision записи журнала.

Пример.

{"revisions":[11,12]}

Соответствует записи журнала с суффиксом записи редакции (0000000011) в:

msxrm\_orgxxxyyyy.crm.dynamics.com\_ff69bc0e-3f66-41c3-b40c-aa3035517e38\_0000000011

Сведения о задачахРедитированные данные

TaskEdited представляет прямые изменения свойств задачи и создает, удаляет и редактирует любые дочерние элементы задачи, например элементы контрольного списка, вложения, назначения, ссылки и т. д.

Изменение поля прямой задачи

Сведения имеют свойство field со значением объекта JSON. Этот объект имеет измененные имена свойств в качестве ключей (в одном пользовательском действии может быть изменено несколько свойств задачи) с объектом в качестве значения. Этот объект свойства имеет "предыдущий" и "обновленный" ключи со значениями, имеющими старые и новые значения свойства.

Пример.

{
  "fields": {
    "name": {
      "previous": "Pour concrete",
      "updated": "Eat donuts"
    }
  }
}

Для больших свойств (например, примечания присваивания "totalWorkContour") создается пустой JSON, а не предыдущие или обновленные значения.

Пример.

 {
  "fields": {
    "notes": {}
  }
}

Изменения задач, которые завершают задачу

Любое изменение свойства, завершающее задачу, также добавляет завершенное логическое свойство.

Пример.

{
  "fields": {
    "percentComplete": {
      "previous": 75,
      "updated": 100
    }
  },
  "completed": true
}

Изменения дочерних элементов задачи

Дочерние элементы похожи на изменения полей, но ключ — это имя свойства навигации, а значение — массив. Элементы в массиве могут создаваться (имеет свойство "created":true), deletes ("deleted":true property) или edits (нет созданных или удаленных, но список измененных свойств). Созданные или удаленные дочерние элементы имеют набор минимальных свойств, необходимых для отрисовки элемента со значениями, заданными непосредственно в свойстве . Изменения имеют тот же формат, что и изменения полей для задачи с предыдущими и обновленными значениями.

Пример создания:

{
  "fields": {
    "checklistItems": [
      {
        "id": "f4be3c03-bc04-ee11-83c4-e04f43e61e09",
        "created": true,
        "name": "checklistItem1"
      }
    ]
  }
}

Пример редактирования:

{
  "fields": {
    "checklistItems": [
      {
        "id": "54219e93-bd04-ee11-83c4-e04f43e61e09",
        "completed": {
          "previous": false,
          "updated": true
        }
      }
    ]
  }
}

Включенные свойства для создания и удаления

Для простых дочерних элементов задачи (таких как проверка элементы списка, вложения) при создании и удалении включаются все свойства, необходимые для отрисовки этого элемента. Элементы контрольного списка включают имя, а вложения включают имя, универсальный код ресурса (URI) и тип.

Все дочерние элементы, являющиеся связью между другими сущностями, включают идентификатор другой сущности. Например, назначения включают resourceId, а ссылки — предшественникId.

Сведения о зависимом edit

Зависимые записи изменения создаются для задачи, если изменение другой задачи приводит к изменению текущей задачи. Запись журнала включает изменения в текущей задаче и свойство sourceEdit, указывающее на изменения в исходной задаче, которые привели к изменению текущей задачи.

Пример. Ссылка добавляется в другую задачу (источник) к текущей задаче, а текущая дата начала задачи переносится на один день:

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

Изменение нескольких источников

Массовые операции могут изменить несколько задач одновременно и привести к нескольким зависимым изменениям. В этом сценарии задачи в массовой операции включаются в sourceEdit с типом записи CompoundEdit. Примеры таких сценариев включают удаление нескольких задач, связывание нескольких задач, отступ нескольких задач. Запись CompoundEdit включает количество изменений и первые три изменения.

Пример

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

Изменения в сводных задачах

Некоторые операции, такие как удаление задачи или отступ задачи, могут создавать несколько записей, если измененная задача является суммарной задачей, так как эти изменения также применяются к дочерним элементам задачи. Все зависимые записи включают суммарную задачу в качестве sourceEdit.

Размер записи

Максимальный размер поля "Сведения" составляет 1000 символов. Если начальная запись изменения превышает 1000 символов, запись журнала обрезается. Все изменения строк ограничены 100 символами, а число измененных полей — 6. Свойство "усечено" указывает, сколько прямых полей не было включено. Свойство truncatedElements указывает количество дочерних элементов, которые не были записаны.

Если размер записи с указанными выше ограничениями превышает 1000 символов, вся запись не создается.

Пример

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