#Include vhLib.Macro // ========================================================================================================================================== // Name : ParseStatus // Author : TOM ROMBAUT // Function: Opdrachten zoals %Save & %Delete geven een resultaat terug van het type %Status. Deze status is echter 'gecodeerd' en kan // via deze functie leesbaar gemaakt worden naar de gebruiker toe // ========================================================================================================================================== #Include %occStatus ParseStatus(Status,IgnoreFirstLine) Quit:('('Status)) "" //sluit wanneer geen error! Set IgnoreFirstLine=$G(IgnoreFirstLine) New ParsedStatus Set ParsedStatus="" New Error,Loop Do DecomposeStatus^%apiOBJ(Status,.Error,"") New Start Set Start=$S(IgnoreFirstLine && (Error>1):2,1:1) For Loop=Start:1:Error Do . Set ParsedStatus=ParsedStatus_$S(ParsedStatus="":"",1:$C(13,10))_Error(Loop) Quit ParsedStatus // ========================================================================================================================================== // Name : GetJobInfo // Author : Wim Vermeulen // Function: Geeft informatie over de huidige job. // Handig bij het versturen van bvb. mails met een error-melding // ========================================================================================================================================== GetJobInfo(blnMultiLine,Indent) New Exception Set Indent=$G(Indent),blnMultiLine=$G(blnMultiLine,1) Set Txt="Device: "_$I_" Job: "_$J Set Txt=Txt_$S(blnMultiLine:$$$CRLF_Indent, 1:" ")_"Server: "_##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_" NameSpace: "_##class(TECH.Context.RuntimeContext).Instance().GeefNamespace() Try { Set Txt=Txt_$S(blnMultiLine:$$$CRLF_Indent, 1:" ")_"GebruikerID: "_##class(TECH.Context.RuntimeContext).Instance().GeefGebruikerID() Set Txt=Txt_$S(blnMultiLine:$$$CRLF_Indent, 1:" ")_"GebruikerInitialen: "_##class(TECH.Context.RuntimeContext).Instance().GeefGebruikerInitialen() Set Txt=Txt_$S(blnMultiLine:$$$CRLF_Indent, 1:" ")_"ComputerNaam: "_##class(TECH.Context.RuntimeContext).Instance().GeefComputerNaam() }Catch{ #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() Set Txt=Txt_$S(blnMultiLine:$$$CRLF_Indent, 1:" ")_"Kon gebruiker data niet achterhalen : "_Exception.ToString() } Set Txt=Txt_$S(blnMultiLine:$$$CRLF, 1:"") Quit Txt GetStackToString(Short,NoLastLevels) New loop,Body,BodyString set Body = ##class(%GlobalCharacterStream).%New() Set Short=$G(Short,0) Set QuitAtSource=$G(QuitAtSource,$C(0)) Set NoLastLevels=$G(NoLastLevels,1) Set $ECODE="" For loop=0:1:$STACK(-1)-NoLastLevels Quit:($STACK(loop,"MCODE")[QuitAtSource) DO . If Short Do .. do Body.Write($STACK(loop,"MCODE")_" [PLACE: '"_$STACK(loop,"PLACE") _ "']"_$$$CRLF) . Else Do .. do Body.Write($$$CRLF_"Context level: "_loop) .. do Body.Write($$$CRLF_" - Context type : "_$STACK(loop)) .. do Body.Write($$$CRLF_" - Current place : "_$STACK(loop,"PLACE")) .. do Body.Write($$$CRLF_" - Current source: "_$STACK(loop,"MCODE")) Set BodyString = Body.Read(30000) Quit BodyString