Определение журнала задач
В этой статье описывается определение записи журнала задач, хранящейся в 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
}
}
]
}
}