Wachtrij met opdrachten voor de FOP. Een opdracht bevat een of meerdere te verwerken documenten en een of meerdere actions persistent BL.Sys.FOP.Common %Persistent,VHSys.Scheduler.TaskAbstract 0 %Integer Voor een main task is SubID=0 %Integer 1 1 ID,SubID 1 een Task kan meerdere Docs bevatten emDoc array DocMulti is specifiek voor verzenden van documenten via Fax of Mail emDocMulti een Task kan meerdere acties bevatten SubTaskPrint SubTaskMail SubTaskFax SubTaskArchief SubTaskFTP %Integer %Integer Alle subdocs moeten gemerged worden tot 1 document %Boolean %String Komma-gescheiden Keywords ter omschrijving van de task %String %Library.String 1 Set {*}=##class(Sys.FOP.Task).%OpenId({ID}_"||"_{SubID}).GeefActieInfo() 1 %Library.String 1 Set {*}=##class(Sys.FOP.Task).%OpenId({ID}_"||"_{SubID}).GeefDocInfo() 1 ID is optional; if empty, gets a new UniqueID ID:%String="" Method NewID via "generator method" Increments the counter that provides the next UniqueID and returns the new value 1 objectgenerator 999999 Set "_GlobalName_"=1 ; Reset counter") DO %code.WriteLine(" Quit ID") QUIT $$$OK ]]> Nieuwere versie om een RenderDoc (Data+Info) aan de Task toe te voegen Voor de opties van DataIn etc, zie method emDoc.SetRenderData(...) Set emDoc=Task.AddRenderDoc("REF","URL;c:\DataDir\Sample.xml","XML","PDF","TestDocBase",$LB(),$LB(),"N",,) DataInVia:%String,DataIn,DataType:%String="XML",Template:%String,TransformType:%String="PDF",lbPPODKeywords:%List,lbXsltParams:%List,Taal:%String,Options:%String,OptionsPDF:%String emDoc Voegt een Doc toe aan de array Docs. Doc kan meegegeven worden of leeg. In het laatste geval wordt een nieuw doc geïnstantieerd. Doc:Sys.FOP.emDoc emDoc Set emDoc=Task.AddMainDoc("XML","URL;c:\DataDir\Sample.xml","PDF","TestDocBase","N",,) DataType:%String="XML",DataRef:%String,TransformType:%String="PDF",Template:%String,Taal:%String,Options:%String,OptionsPDF:%String emDoc Set sc=Task.AddActionPrint("DocuColor 240",1,,) Printer:%String,NumCopies:%Integer=1,RectoVerso:%Boolean=0,PapierLade:%String,OMRCode:%String="" %Status Set sc=Task.AddActionFile("TestSample_"_$P($H,",",2),"E:\FOP\PDFTemp") FileName:%String,Folder:%String %Status Set sc=Task.AddActionMail("wv@vanhoecke.be","Test van WimV - FOP","Schoon he ..."_$$$CRLF) MailTo:%String,Subject:%String,Body:%String,From:%String,CC:%String,BCC:%String %Status Set sc=Task.AddActionFtp("TestFtp","\\fop\e$\Temp\Test.pdf","","TestOut.pdf",...) FtpServer:%String,FromPath:%String,DestDir:%String,DestFName:%String,UserName:%String,PassWord:%String,Port:%Integer,BinaryFtp:%Boolean %Status Set sc=Task.AddActionFax("037601919") FaxNr:%String,TAV:%String,SenderName:%String,Subject:%String,FilePath:%String,OnErrorMailTo:%String %Status MailTo Fields ingeven als piece-delimited-list. pdlTo:%String=";UNDEF",pdlCC:%String=";UNDEF",pdlBCC:%String=";UNDEF",blnSaveObj:%Boolean=1 %String De property Keywords moet steeds beginnen en eindigen met een ";" (delimiter $$$TaskKeyWordDelim) NewVal:%String %Status Zie ##class(BL.Sys.FOP.Data).TaskUpdateStatus() NewStatus:%String,blnSaveObj:%Boolean %Status Returns the Key for SingleLocking processing. Value could depend on the SchedulerID. SchedulerID:%String %String Manueel op te roepen classmethod om FopTasks met foute mail-adressen te kunnen corrigeren. lbTo mag ook %String zijn lbCC, lbBCC zijn optioneel Oproepen via : set sc=##class(Sys.FOP.Task).ChangeMailFields(TaskID, lbTo, , ) w sc,! 1 TaskID:%String,lbTo:%String,lbCC:%List,lbBCC:%List %String 1){ Set DocInfo = DocInfo_"[Doc"_i_"] " } Set DocInfo = DocInfo_Doc.ToString() Set DocInfo = DocInfo_$C(13,10) } /// MultiDoc If $IsObject(..DocMulti){ Set DocInfo = DocInfo_..DocMulti.ToString() ; idem in DocMulti } Quit DocInfo ]]> %String %Library.CacheStorage ^Sys.FOP.TaskD TaskDefaultData ^Sys.FOP.TaskD ^Sys.FOP.TaskI ^Sys.FOP.TaskS Docs subnode "Docs" %%CLASSNAME Status ADBProcessName ActionFax ActionFile ActionMail ActionPrint KlantNr LeverancierNr MergeDocs InternePersoon FeedBack RunMode MaxTimeBusy MaxBusyTime AnalyseRoutine KeyWords ActionFtp DocMulti