工作歷程記錄定義
本文說明儲存在 [專案歷程記錄] 資料表之 Dataverse 中的工作歷程記錄定義。 工作歷程記錄代表任務的變更。
「編輯類型」會定義記錄的類型。
語法 | 描述 |
---|---|
TaskCreated | 表示建立工作的時間 |
TaskEdited | 表示編輯工作時 |
TaskDeleted | 表示刪除工作時 |
Undo | 表示變更已復原時 |
取消復原 | 表示變更已重做時 |
DependentEdit | 表示工作因為另一個任務的變更而修改的時間 |
記錄記錄
所有記錄記錄共用一組通用欄位,包括:
欄位 | 描述 |
---|---|
Project | 歷程記錄相關的專案 |
專案工作 | 歷程記錄相關的工作。 如果工作已刪除,則為空白 |
XrmUserId | 對工作進行變更的 Xrm 使用者 |
時間戳記 | 產生變更的日期和時間 |
編輯類型 | 記錄的類型 |
詳細資料 | 包含 JSON 格式的歷程記錄資料 |
下列各節說明 [詳細資料承載] 欄位包含的內容,視歷程記錄的類型和編輯的內容而定。 如需詳細資料中資料行的描述,請檢閱 匯出專案內容定義
TaskCreated 詳細資料
建立工作時會建立記錄。 承載是空的。
TaskDeleted 詳細資料
包含單一屬性 「name」,這是刪除工作時的工作名稱。
範例:
{"name":"Pour concrete"}
復原/取消復原詳細資料
「revisions」 屬性,其中包含保存已復原或重做之所有修訂編號的陣列值。 數位會對應至歷程記錄修訂屬性中的尾碼。
範例:
{"revisions":[11,12]}
符合歷程記錄尾碼 (00000000011 的記錄記錄) :
msxrm\_orgxxxyyyy.crm.dynamics.com\_ff69bc0e-3f66-41c3-b40c-aa3035517e38\_0000000011
TaskEdited 詳細資料
TaskEdited 代表工作的直接屬性編輯,並建立、刪除和編輯任何工作子專案,例如檢查清單專案、附件、指派、連結等等。
直接工作欄位編輯
詳細資料具有具有 JSON 物件值的 「field」 屬性。 該物件具有已變更的屬性名稱做為索引鍵 (單一使用者動作) 中可以編輯多個工作屬性,並以 物件作為值。 該屬性物件具有 「previous」 和 「updated」 索引鍵,其值具有屬性的舊值和新值。
範例:
{
"fields": {
"name": {
"previous": "Pour concrete",
"updated": "Eat donuts"
}
}
}
針對大型屬性 (例如附注指派 「totalWorkContour」) ,會發出空的 JSON,而不是先前/更新的值。
範例:
{
"fields": {
"notes": {}
}
}
完成工作的工作編輯
任何完成工作的屬性編輯也會加入已完成的布林值屬性。
範例:
{
"fields": {
"percentComplete": {
"previous": 75,
"updated": 100
}
},
"completed": true
}
工作子專案編輯
子專案類似于欄位編輯,但索引鍵是導覽屬性名稱,而值是陣列。 陣列中的專案可以建立 (具有 「created」:true 屬性) 、刪除 (「deleted」:true 屬性) ,或編輯 (未建立或刪除,但已編輯的屬性清單) 。 建立或刪除的子專案具有一組最小屬性,可讓您直接在 屬性上設定值來轉譯專案。 編輯的格式與工作上的欄位編輯具有先前和更新的值相同。
範例建立:
{
"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,而連結包含 predecessorId。
DependentEdit 詳細資料
如果對另一個工作的變更導致修改目前的工作,則會為工作產生相依的編輯記錄。 歷程記錄包含目前工作的變更,以及 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"
}
]
}
}
}
多個來源編輯
大量作業可以一次變更多個工作,並可能導致多個相依性變更。 在該案例中,大量作業中的工作會包含在具有 CompoundEdit 記錄類型的 sourceEdit 中。 這些案例的範例包括刪除多個工作、連結多個工作、縮排多個工作。 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
}
}
]
}
}