Definizione della cronologia attività
Questo articolo descrive la definizione del record di cronologia attività archiviato in Dataverse nella tabella Cronologia progetti. Un record di cronologia attività rappresenta una modifica a un'attività.
"Modifica tipo" definisce il tipo di record di cronologia.
Sintassi | Descrizione |
---|---|
TaskCreated | rappresenta quando viene creata l'attività |
Modifica attività | rappresenta quando l'attività viene modificata |
TaskDeleted | rappresenta quando l'attività viene eliminata |
Annulla | rappresenta quando una modifica è stata annullata |
Rifare | rappresenta quando una modifica è stata rifatto |
DependentEdit | rappresenta quando un'attività è stata modificata a causa di una modifica a un'altra attività |
Record di cronologia
Tutti i record di cronologia condividono un set comune di campi:
Campo | Descrizione |
---|---|
Project | il progetto a cui è correlata la cronologia |
Attività progetto | l'attività a cui è correlata la cronologia. È vuoto se l'attività viene eliminata |
XrmUserId | L'utente Xrm che ha apportato la modifica all'attività |
Data e ora | data e ora in cui è stata generata la modifica |
Modifica tipo | tipo di record di cronologia |
Dettagli | contenente i dati della cronologia in formato JSON |
Le sezioni seguenti descrivono il contenuto del campo payload Dettagli a seconda del tipo di record della cronologia e delle modifiche apportate. Per le descrizioni delle colonne all'interno di Dettagli, vedere Esportare la definizione del contenuto del progetto
Dettagli attivitàcreati
Il record viene creato al momento della creazione dell'attività. Il payload è vuoto.
Dettagli di TaskDeleted
Contiene una singola proprietà "name", ovvero il nome dell'attività al momento dell'eliminazione.
Esempio:
{"name":"Pour concrete"}
Annulla/Ripristina dettagli
Proprietà "revisions" con un valore di matrice contenente tutti i numeri di revisione annullati o rifatti. Il numero corrisponde al suffisso nella proprietà di revisione del record di cronologia.
Esempio:
{"revisions":[11,12]}
Corrisponde al record di cronologia con suffisso del record di revisione (00000000011) in:
msxrm\_orgxxxyyyy.crm.dynamics.com\_ff69bc0e-3f66-41c3-b40c-aa3035517e38\_0000000011
Dettagli dell'attività Modificata
TaskEdited rappresenta le modifiche alle proprietà dirette di un'attività e crea, elimina e modifica qualsiasi elemento figlio dell'attività, ad esempio elementi dell'elenco di controllo, allegati, assegnazioni, collegamenti e così via.
Modifiche ai campi attività dirette
I dettagli hanno una proprietà "field" con un valore dell'oggetto JSON. Tale oggetto ha i nomi di proprietà modificati come chiavi (possono essere presenti più proprietà dell'attività modificate in una singola azione utente), con un oggetto come valore. Tale oggetto proprietà ha chiavi "precedenti" e "aggiornate" con i valori con i valori precedente e nuovo della proprietà.
Esempio:
{
"fields": {
"name": {
"previous": "Pour concrete",
"updated": "Eat donuts"
}
}
}
Per le proprietà di grandi dimensioni (ad esempio, l'assegnazione di note "totalWorkContour"), viene generato un JSON vuoto e non i valori precedenti/aggiornati.
Esempio:
{
"fields": {
"notes": {}
}
}
Modifiche delle attività che completano un'attività
Qualsiasi modifica di proprietà che completa un'attività aggiunge anche una proprietà booleana completata.
Esempio:
{
"fields": {
"percentComplete": {
"previous": 75,
"updated": 100
}
},
"completed": true
}
Modifiche all'elemento figlio dell'attività
Gli elementi figlio sono simili alle modifiche dei campi, ma la chiave è il nome della proprietà di navigazione e il valore è una matrice. Gli elementi nella matrice possono essere creati (con una proprietà "created":true), deletes ("deleted":true property) o edits (nessun creato o eliminato, ma elenco di proprietà modificate). Gli elementi figlio creati o eliminati hanno un set di proprietà minime necessarie per eseguire il rendering dell'elemento con valori impostati direttamente sulla proprietà . Le modifiche hanno lo stesso formato delle modifiche dei campi nell'attività con i valori precedenti e aggiornati.
Esempio di creazione:
{
"fields": {
"checklistItems": [
{
"id": "f4be3c03-bc04-ee11-83c4-e04f43e61e09",
"created": true,
"name": "checklistItem1"
}
]
}
}
Modifica di esempio:
{
"fields": {
"checklistItems": [
{
"id": "54219e93-bd04-ee11-83c4-e04f43e61e09",
"completed": {
"previous": false,
"updated": true
}
}
]
}
}
Proprietà incluse per le operazioni di creazione ed eliminazione
Per semplici elementi figlio dell'attività (ad esempio elementi dell'elenco di controllo, allegati) durante la creazione e l'eliminazione, vengono incluse tutte le proprietà necessarie per eseguire il rendering di tale elemento. Gli elementi dell'elenco di controllo includono il nome e gli allegati, tra cui nome, uri e tipo.
Tutti gli elementi figlio che sono una relazione tra altre entità includono l'ID dell'altra entità. Ad esempio, le assegnazioni includono resourceId e i collegamenti includono predecessorId.
DependentModifica dettagli
I record di modifica dipendenti vengono generati per un'attività se una modifica a un'altra attività causa la modifica dell'attività corrente. Il record di cronologia include le modifiche apportate all'attività corrente e una proprietà sourceEdit che indica le modifiche apportate all'attività di origine che ha causato la modifica dell'attività corrente.
Esempio: viene aggiunto un collegamento a un'altra attività (origine) all'attività corrente e la data di inizio corrente dell'attività viene spostata fuori un giorno:
{
"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"
}
]
}
}
}
Più modifiche all'origine
Le operazioni bulk possono modificare più attività contemporaneamente e possono causare più modifiche dipendenti. In questo scenario, le attività nell'operazione bulk sono incluse nell'origineModita con un tipo di record CompoundEdit. Esempi di questi scenari includono l'eliminazione di più attività, il collegamento di più attività, il rientro di più attività. Un record CompoundEdit include il numero di modifiche e le prime tre modifiche.
Esempio
{
"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"
}
]
}
}
Modifiche alle attività di riepilogo
Alcune operazioni, ad esempio l'eliminazione di un'attività o il rientro di un'attività, possono generare più record se l'attività modificata è un'attività di riepilogo perché tali modifiche si applicano anche agli elementi figlio dell'attività. Tutti i record dipendenti includono l'attività di riepilogo come sourceEdit.
Dimensioni record
Il campo Dettagli ha una dimensione massima di 1000 caratteri. Se il record di modifica iniziale supera i 1000 caratteri, il record di cronologia viene ridotto. Tutte le modifiche alle stringhe sono limitate a 100 caratteri e il numero di campi modificati è limitato a 6. Una proprietà "troncata" indica quanti campi diretti non sono stati inclusi. Una proprietà "truncatedElements" indica il numero di elementi figlio non scritti.
Se le dimensioni del record con le restrizioni precedenti superano i 1000 caratteri, l'intero record non viene generato.
Esempio
{
"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
}
}
]
}
}