Index: vhROLLBACK.mac.rou =================================================================== diff -u -r29059 -r50248 --- vhROLLBACK.mac.rou (.../vhROLLBACK.mac.rou) (revision 29059) +++ vhROLLBACK.mac.rou (.../vhROLLBACK.mac.rou) (revision 50248) @@ -11,7 +11,6 @@ N Result N Namespace set Namespace = $$$NSpace - ; -- Declar Vars----------- S JrnFile=$$GetJrnFile ; Get Journal File @@ -28,6 +27,7 @@ ZN "%SYS" ; Default %SYS Namespace Set oRefJournalFile = ##class(%SYS.Journal.File).%OpenId(JrnFile) + if AdrFirst0 D - . . S Record = ##class(%SYS.Journal.Record).%OpenId(AdrCurr) ; On Error - . . If (Record.ProcessID=ProcessId) || ('$L(ProcessId)) D - . . . S Global=$P(JrnInfo(1,1),":",4,99),Value=$G(JrnInfo(1,1,1)) - . . . I '$L(Value),$L(Global),$P(JrnInfo(1,1),":",2)="S" K @Global W !,"Killed "_Global - . . . Q - . . S AdrCurr=$P(JrnInfo(1,1),"/",2) ; Get Previous Address - . . Q - . Q + + for { + Set Record = JrnFile.GetRecordAt(AdrCurr) + If (Record.ProcessID=ProcessId) || ('$L(ProcessId)) { + if Record.%IsA("%SYS.Journal.SetKillRecord") { + #dim Record As %SYS.Journal.SetKillRecord + set Global = Record.GlobalReference + if Global["KlantDocument"{ + set OldValue = Record.OldValue + if ##class(%Library.JournalRecordType).LogicalToDisplay(Record.Type)="SET" set @Global=OldValue W !,"undo Set" + if ##class(%Library.JournalRecordType).LogicalToDisplay(Record.Type)="KILL" set @Global=OldValue W !,"undo Kill" + } + } + } + + S AdrCurr=Record.PrevAddress + quit:AdrCurrAdrLast } + c fn + I $TL TCOMMIT ; Commit Transaction if one is started Q