Unique identifier for a History Record?

I'm writing a script to all baseline-transparent history reports to be made. In doing so, I'm storing the type of information we might want to report in Skip lists (newValue, oldValue, date, etc). The problem I'm running into is finding a key for the skiplist that is unique per history record. The sessionId and date (even down to the second) is not always unique, even per Object! (if someone did a find/replace on Object Text, there will be many history records generated for the same exact date/time and session ID). Is there a hidden attribute of a History object that acts as a sort of "Absolute Number"?

Jason
jhaury - Wed Mar 25 12:56:55 EDT 2009

Re: Unique identifier for a History Record?
tommy3824 - Wed Mar 25 16:47:06 EDT 2009

int number (HistorySession hs)

The oldest history is 0 and increments up for each change made

Re: Unique identifier for a History Record?
jhaury - Wed Mar 25 18:25:16 EDT 2009

tommy3824 - Wed Mar 25 16:47:06 EDT 2009
int number (HistorySession hs)

The oldest history is 0 and increments up for each change made

tommy3824's idea works for HistorySession loops (for HistorySession in Module), but I'm looking for a similar attribute of a "History" object. The limitation with the HistorySession object is that it can only show Who or When a change was made. I need the details offered by a History object.

Furthermore, the HistorySession "number" starts at 0 for each baseline. I'm hoping (and doubting) that somethings exists to uniquely identify each history record for a Module, even across baselines. One could always concatenate a baseline number with a HistorySession number to get uniqueness, but again, the HistorySession lacks details. It also lacks granularity as it only records a session, and not each change that was made.

My current work around is to create my own number to be used in memory to uniquely ID each history record...anyone got a better solution?

Jason

Re: Unique identifier for a History Record?
Peter_Albert - Thu Mar 26 04:02:39 EDT 2009

jhaury - Wed Mar 25 18:25:16 EDT 2009
tommy3824's idea works for HistorySession loops (for HistorySession in Module), but I'm looking for a similar attribute of a "History" object. The limitation with the HistorySession object is that it can only show Who or When a change was made. I need the details offered by a History object.

Furthermore, the HistorySession "number" starts at 0 for each baseline. I'm hoping (and doubting) that somethings exists to uniquely identify each history record for a Module, even across baselines. One could always concatenate a baseline number with a HistorySession number to get uniqueness, but again, the HistorySession lacks details. It also lacks granularity as it only records a session, and not each change that was made.

My current work around is to create my own number to be used in memory to uniquely ID each history record...anyone got a better solution?

Jason

You may want to have a close look at Tony Goodman's Smart History Viewer. It shows all recored history entries for all baselines.

Peter

Re: Unique identifier for a History Record?
llandale - Thu Mar 26 11:23:13 EDT 2009

No such identifier for History.

I notice with considerable annoyance that you cannot store the 'History' handle in your skip lists. Consider the following: lets find the last History for the current object that modified Object Text. Loop through History of the object, and each time you find one that modified the Text you save the History. When you are done, you have a Handle of the History you want to display. Doesn't work. It appears that 'hstFound = hstLoop' does not assign a value, it makes an alias. So when you store hstFound and continue with your hstLoop, hstFound gets set to the last history in the loop, and is always equal to hstLoop.

I sort of resolved that by COUNTING history, keeping track of the COUNT of the History I cared about, then after that loop looped back through History until I came to that count, THEN displayed that History.

>Louie

Re: Unique identifier for a History Record?
jhaury - Thu Mar 26 13:31:13 EDT 2009

llandale - Thu Mar 26 11:23:13 EDT 2009
No such identifier for History.

I notice with considerable annoyance that you cannot store the 'History' handle in your skip lists. Consider the following: lets find the last History for the current object that modified Object Text. Loop through History of the object, and each time you find one that modified the Text you save the History. When you are done, you have a Handle of the History you want to display. Doesn't work. It appears that 'hstFound = hstLoop' does not assign a value, it makes an alias. So when you store hstFound and continue with your hstLoop, hstFound gets set to the last history in the loop, and is always equal to hstLoop.

I sort of resolved that by COUNTING history, keeping track of the COUNT of the History I cared about, then after that loop looped back through History until I came to that count, THEN displayed that History.

>Louie

thanks all for your feedback! the script at smartDXL.com is pretty much exactly what I'm looking for! I'll likely make 2 changes to it, and then offer it back to Tony:
1) Add in the option for redlined view of a change
2) Add date selectors so one can filter on date range. This would come up before baselines were loaded. For those only interested in a range of history on a large module with many baselines, this could save a lot of open time.

I might even add in couple filtering options for user name and/or attribute name, but as it is, the GUI columns are sortable by clicking the column heading, so adding filters is hardly necessary!

Jason