#Include vhLib.Macro #Include %occInclude ; arMsgOut=1 : output to local arMsgOut ; arMsgOut=0 : output to device (terminal) ; arMsgOut=-1 : geen output RollbackInactiveJobs(lbJobs,arMsgOut) ; arMsgOut als .local doorgeven RIJ(lbJobs,arMsgOut) ; arMsgOut als .local doorgeven Set lbJobs=$G(lbJobs) Set arMsgOut=$G(arMsgOut,0) New ConsolidatieNr,Magazijn,Job,aDone,Status &sql(DECLARE crRIJ CURSOR FOR SELECT ConsolidatieNr,Magazijn,Job INTO :ConsolidatieNr,:Magazijn,:Job FROM FLOW_ORDERWMS.PalletReservatie ORDER BY ConsolidatieNr,Magazijn) &sql(OPEN crRIJ) Do WRITE("Scanning jobs ...") For &sql(FETCH crRIJ) Quit:(SQLCODE '= 0) Do . Quit:($D(aDone(ConsolidatieNr,Magazijn))) . Quit:((lbJobs="") && ##CLASS(%SYSTEM.Process).%ExistsId(Job)) ;Indien job bestaat geen rollback uitvoeren . Quit:((lbJobs'="") && '$LF(lbJobs,Job)) . Do WRITE("Rollback ["_Job_"] "_ConsolidatieNr_", "_Magazijn_"... ", 0) . Set Status=##class(BL.MB.UGLYPicking.OrderReservatie).RollbackReservations(ConsolidatieNr,Magazijn) . If $$$ISOK(Status) Do .. Do WRITE( "Ok.") . Else Do .. Do WRITE("ERROR: "_$$ParseStatus^vhLib(Status)) . Set aDone(ConsolidatieNr,Magazijn)=1 &sql(CLOSE crRIJ) Do WRITE("... Finished.") Quit WRITE(msg,blnNewLine) Quit:(arMsgOut=-1) Set blnNewLine=''($G(blnNewLine,1)) If arMsgOut>0 Do . Set arMsgOut(arMsgOut)=$G(arMsgOut(arMsgOut))_msg . Do:(blnNewLine)&&($Increment(arMsgOut)) ; Lees als: If blnNewLine Then $Increment(arMsgOut) Else Do . Write msg . Write:(blnNewLine) ! Quit // Added by WimV on 18/01/2008 // De RIJmsg() functie geeft als resultaat de text die normaal naar het scherm geschreven wordt. // Dit laatste is niet mogelijk wanneer de method opgeroepen wordt vanuit een CSP-page (IO-device is een HttpResponse.Stream object). RIJmsg(lbJobs) #define blnAddCRLF (i'=$G(arMsg)) New arMsg,txt,i Set arMsg=1 Do RIJ(.lbJobs,.arMsg) ; Convert array to text (CRLF-delimited) Set (txt,i)="" For Set i=$O(arMsg(i)) Quit:(i="") Do . Set txt=txt_$G(arMsg(i))_$S($$$blnAddCRLF:$$$CRLF, 1:"") Quit txt