1 %RegisteredObject 0 TEMPLOG objectgenerator %Boolean objectgenerator %String 1 objectgenerator %Persistent afsluiten QUIT:($$$CLASSclasstype($$$gDEF,%class.Name)'=$$$cCLASSCLASSTYPEPERSISTENT) $$$OK $$$comClassKeyGetLvar(storagename,%class.Name,$$$cCLASSstoragestrategy) Quit:(storagename) $$$ERROR($$$GeneralError,"Error getting storage strategy for logging.") Set GlobalName=$$$comMemberKeyGet(%class.Name,$$$cCLASSstorage,storagename,$$$cSDEFdatalocation) Set GlobalNameLog=GlobalName_".Log" Do %code.WriteLine(" Set ErrStr=""""") Do %code.WriteLine(" Set TempLog=..#TempLogID_""||""_ID_""||""_RevisionNr") //_ID_"||"_RevisionNr_"""") ;Checken of logobject bestaat Do %code.WriteLine(" If '$D("_GlobalNameLog_"(ID,RevisionNr)) Do Quit $$$NULLOREF") Do %code.WriteLine(" . Set ErrStr=""Logobject met ID '""_ID_""' en revisienummer '""_RevisionNr_""' bestaat niet.""") ;Checken of tijdelijke tempglobalnode niet in gebruik is (zal slechts zelden gebeuren) Do %code.WriteLine(" If $D("_GlobalName_"(TempLog)) Do Quit $$$NULLOREF") Do %code.WriteLine(" . Set ErrStr=""Logobject is momenteel in gebruik, probeer later eens opnieuw.""") ;Kopiƫren logobject naar tijdelijk object Do %code.WriteLine(" m "_GlobalName_"(TempLog)="_GlobalNameLog_"(ID,RevisionNr)") ;Dit logobject openen Do %code.WriteLine(" Set Obj=##class("_%class.Name_").%OpenId(TempLog)") ;Tijdelijk globalnode verwijderen" Do %code.WriteLine(" Kill "_GlobalName_"(TempLog)") ;Checken of dit gelukt is Do %code.WriteLine(" If Obj=$$$NULLOREF Do Quit $$$NULLOREF") Do %code.WriteLine(" . Set ErrStr=""Kan tijdelijk logobject met ID '""_ID_""' en revisienummer '""_RevisionNr_""' niet openen."" ") Do %code.WriteLine(" Quit Obj") ]]> 1 objectgenerator ID:%String %Integer afsluiten QUIT:($$$CLASSclasstype($$$gDEF,%class.Name)'=$$$cCLASSCLASSTYPEPERSISTENT) $$$OK $$$comClassKeyGetLvar(storagename,%class.Name,$$$cCLASSstoragestrategy) Quit:(storagename) $$$ERROR($$$GeneralError,"Error getting storage strategy for logging.") Set GlobalName=$$$comMemberKeyGet(%class.Name,$$$cCLASSstorage,storagename,$$$cSDEFdatalocation) Set GlobalNameLog=GlobalName_".Log" Do %code.WriteLine(" Quit:('$D("_GlobalNameLog_"(ID))) 0") Do %code.WriteLine(" Quit "_GlobalNameLog_"(ID)") ]]> objectgenerator related:%Integer=1 %Status afsluiten QUIT:($$$CLASSclasstype($$$gDEF,%class.Name)'=$$$cCLASSCLASSTYPEPERSISTENT) $$$OK Do %code.WriteLine(" Quit:(..IsLogObject()) $$$ERROR($$$GeneralError,""Het is niet toegestaan een logobject te bewaren."")") ;Oude versie in log bewaren Do %code.WriteLine(" Set IsNew=(..%Id()="""")") Do %code.WriteLine(" Do:('IsNew) ..SaveToLog()") ;Nieuwe versie opslaan Do %code.WriteLine(" Set Status=..%Save(related)") Do %code.WriteLine(" Quit Status") Quit $$$OK ]]> 1 objectgenerator id:%String,concurrency:%Integer=-1 %Status afsluiten QUIT:($$$CLASSclasstype($$$gDEF,%class.Name)'=$$$cCLASSCLASSTYPEPERSISTENT) $$$OK $$$comClassKeyGetLvar(storagename,%class.Name,$$$cCLASSstoragestrategy) Quit:(storagename) $$$ERROR($$$GeneralError,"Error getting storage strategy for logging.") Set GlobalName=$$$comMemberKeyGet(%class.Name,$$$cCLASSstorage,storagename,$$$cSDEFdatalocation) Set GlobalNameLog=GlobalName_".Log" Do %code.WriteLine(" Set Status=##class("_%class.Name_").%DeleteId(id,concurrency)") Do %code.WriteLine(" Kill:($$$ISOK(Status)) "_GlobalNameLog_"(id)") Do %code.WriteLine(" Quit Status") Quit $$$OK ]]>