Verwerker class : builds and processes the FopTaskSequences from the FopTask objects, contained in a FopTaskQueue. BL.Sys.FOP.Common 1 %RegisteredObject Before processing the task, initialize some parameters 1 %Status 1 TaskID:%String Sys.FOP.Task De blnJobbed moet op 1 staan, wanneer de task in een apart process wordt uitgevoerd. 1 1 Task:%String %Status Create the sequence of tasks (=SeqItems) that should be executed for the given Task-object. The order in which the task-items will be processed, is important. 1 %Status Execute each task from the sequence: choose between - Fop Cache Process : specific commands - Fop DocBase Process : build the DocBase proxy WSRequestInfo + call the WS (async + wait until status is returned) 1 TSeq:Sys.FOP.TaskSequence %Status Result . Else If SeqItem.%Extends("Sys.FOP.emSeqItemCache") Do . . ; Add To Log : Start Cache Task . . Set sc=$$rtsExecTaskCache() . . Set scTask=sc . Else Do . . Set scTask=$$$ERROR($$$GeneralError,"Sys.FOP.emSeqItem of an unknown class") . Set:($$$ISERR(scTask)) sc2=SeqItem.UpdateStatus(TSeq,$$$tsError) Kill %TaskInfo If $$$ISOK(scTask) Do . Set oLog=##class(Sys.FOP.Logging).AddToLog("INFO","Task","RunTaskSequence","TaskSequence "_$G(%TaskInfo("TSEQID"))_" processed successful.") Else Do . Set oLog=##class(Sys.FOP.Logging).AddToLog("ERROR","Task","RunTaskSequence","TaskSequence "_$G(%TaskInfo("TSEQID"))_" process failed. Error Msg: "_$$ParseStatus^vhLib(scTask)) Quit scTask rtsSetTaskInfo() Kill %TaskInfo Set %TaskInfo("TASK")=TSeq.Task Set %TaskInfo("TASKID")=$S('$IsObject(TSeq.Task):"", $L(TSeq.TaskGetObjectId()):TSeq.TaskGetObjectId(), 1:"Oref="_TSeq.Task) Set %TaskInfo("TSEQ")=TSeq Set %TaskInfo("TSEQID")=$S($L(TSeq.%Id()):TSeq.%Id(), 1:"Oref="_TSeq) Quit rtsSetSeqItemInfo() Set %TaskInfo("TSEQ-ITEM")=SeqItem Set %TaskInfo("TSEQ-ITEMID")=$G(%TaskInfo("TSEQID"))_" - key:"_Key Set %TaskInfo("TSEQ-ITEMKEY")=Key Quit rtsExecTaskDocBaseWS() Set sc=SeqItem.UpdateStatus(TSeq,$$$tsBusy) Set:($L(SeqItem.PreProcess)) sc=SeqItem.ExecProcessCmd(TSeq,SeqItem.PreProcess) Quit:($$$ISERR(sc)) sc Set TaskName=SeqItem.OmsID Set:($$$ISOK(sc)) sc=##class(BL.Sys.FOP.DocBase).RequestFromTaskSeq(SeqItem,.fopReq) Quit:('$IsObject($G(fopReq))) sc ;d tmpRtsDebug Set sc=##class(BL.Sys.FOP.DocBase).RunDocBaseWS(fopReq,SeqItem.CallType) Set:($$$ISOK(sc)) sc=SeqItem.UpdateStatus(TSeq,$$$tsProcessed) Quit sc rtsExecTaskDocBaseWSxOLD() /// Deleted By WimV on 05/11/2007 Quit "" rtsExecTaskCache() Set sc=SeqItem.UpdateStatus(TSeq,$$$tsBusy) Set:($L(SeqItem.PreProcess)) sc=SeqItem.ExecProcessCmd(TSeq,SeqItem.PreProcess) Quit:($$$ISERR(sc)) sc ;d WL^vhDBG("TaskSeq Item("_Key_") TaskName="_TaskName_$$$CRLF_$$ObjToText^vhLib(SeqItem)) Set:($$$ISOK(sc)) sc=##class(Verwerker).ExecCacheTask(SeqItem,TSeq) ; Execute cache code (e.g. copy to WatchFolder for printing/fax/...) Set:($$$ISOK(sc)) sc=SeqItem.UpdateStatus(TSeq,$$$tsProcessed) Quit sc tmpRtsDebug ;d WL^vhDBG($$ObjToText^vhLib(SeqItem)) Quit:('$IsObject(SeqItem.DataInStream)) ;d WL^vhDBG("Stream Length :"_SeqItem.DataInStream.Size) Set FNameLog="C:\Temp\FOPXML_"_$TR($H,",","-")_".xml" Set tmpStream=##class(%File).%New(FNameLog) Do tmpStream.Open("WSN") Do tmpStream.CopyFrom(SeqItem.DataInStream) ; CopyFromAndSave d tmpStream.Close() s tmpStream="" Quit ]]> Uitvoeren van een Caché Task (SeqItem + bijhorende TaskSequence) 1 SeqItem:Sys.FOP.emSeqItemCache,TSeq:Sys.FOP.TaskSequence %Status Get resulting PDFs / Fax log results / other log 1 %Status