What is a historical record?

How history is stored in Targetprocess?

A Historical record is basically a copy of an entity with a time period definition.

For example, we have a User Story #123 'Shopping bag' was created on 01/01/2017 in the Project 'E-commerce' and is now in the 'In Testing' state. The structure of history for this User Story will look like this:

IDUserStoryIDNameCreateDateProjectEntity StateDateDateToIsChangedNameIsChangedEntityState
1123Basket01/01/2017E-commerceOpen01/01/2017 13:4602/01/2017 14:02FalseFalse
2123Shopping bag01/01/2017E-commerceOpen02/01/2017 14:0203/01/2017 09:18TrueFalse
3123Shopping bag01/01/2017E-commerceIn Progress03/01/2017 09:1804/01/2017 21:03FalseTrue
4123Shopping bag01/01/2017E-commerceIn Testing04/01/2017 21:0301/01/9999 23:59FalseTrue

As you can see, every record represents one or several changed fields.

📘

All the updates made within 5 minutes are merged into one historical records. The only exception is EntityState: any change of EntityState will be represented as new History record.

The 'Date' and 'DateTo' fields represent periods in which the record is valid. If the record is valid right now, it has 'DateTo' set to the year 9999. At any given point in time, only one historical record is valid for any entity.

The 'UserStoryId' field is a reference to our User Story.

The 'IsChanged...' columns show which fields were changed compared to the previous record.

Here is how a Timeline-based graphical representation for our User Story would look like:

559

Custom Fields

It is possible to access historical values of Custom Fields via api/v2. More details here.

Limitations

Not all the fields are present in historical records.
Here are some of the examples of the missing fields with the link to the corresponding ideas in our Service Desk: