Test class: simulates the whole FOP process from "defining a process/task" to "retrieving the resulting PDF" persistent BL.Sys.FOP.Common 1 %Persistent Parameter ClassNm wordt "at compile time" berekend = %class.Name BL.Sys.FOP.Test PPODFields : defaults from pxDoc + groupBy and OrderBy values from TSeq s sc=##class(BL.Sys.FOP.Test).TestDocMultiFax() w sc,! s TSeq=%TSeq s Task=TSeq.Task w Task,! s Doc=Task.DocMulti.RenderVoorblad w Doc s si=TSeq.Items.GetAt(3) w si Set sc=##class(BL.Sys.FOP.DocBase).RequestFromTaskSeq(si,.fopReq) w sc d fopReq.XMLExport("TESTFAX","literal,indent") w Doc.DataProxy.XMLExport("PX","literal,indent") */ ]]> Taak: - multiple docs in PDF naar PPOD + voorpagina in PDF naar PPOD - merge deze docs tot 1 .pdf-bestand dat zal gefaxt worden. s sc=##class(BL.Sys.FOP.Test).TestDocMultiFax() w sc,! 1 %Status BuildTaskSequence START.",! . Set sc=##class(BL.Sys.FOP.Verwerker).BuildTaskSequence(Task,.TSeq) ; TSeq is returned . Set sc=Task.%Save() . w:($$$ISOK(sc)) "TaskID="_Task.%Id(),! . s:($$$ISOK(sc)) sc=TSeq.%Save() . w $S($$$ISOK(sc):"TSeqID="_TSeq.%Id(), 1:sc),! . s %TSeq=TSeq Else Do . Set:(1) sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,$$$rmInLine) ; $$$rmBatch ; $$$rmSync Quit sc /* ; "FaxRenderToPPODMergeAndSend" kan ook opgesplitst worden in afzonderlijke FOP-taken : ;Set Task=##class(BL.Flow.Basis.Doc).CreateFopTask("FaxRenderAndSaveToPPOD","FAX;RenderToPPOD",) ;Set Task=##class(BL.Flow.Basis.Doc).CreateFopTask("aftFaxMergeAndSend","FAX;MergePPOD;SendFax",) */ ]]> Taak: - multiple docs in PDF naar File - data van pxVoorblad voor mail-data - alle docs in .pdf als attachment aan mail toevoegen en verzenden. s sc=##class(BL.Sys.FOP.Test).TestDocMultiMail() w sc,! 1 %Status Build sample Body Text for Fax or Mail 1 FopType:%String="F" %String Wim Vermeulen
" Set BodyText=BodyText_"
" Set BodyText=BodyText_"Er kunnen meerdere lijnen tekst ingegeven worden, alsook RichText-formatting (via HTML-tags)
" Set BodyText=BodyText_"
" Set BodyText=BodyText_"
" Set BodyText=BodyText_"!!! LET OP VOOR DE BIJLAGEN (indien aanwezig) !!!
" Set BodyText=BodyText_"
" Set BodyText=BodyText_"Mvg. Wim
" Set BodyText=BodyText_"


" If FopType="M" Do . Set BodyText=BodyText_"Attachments: " . Set BodyText=$$$Replace(BodyText,"
","
") . Set BodyText=$$$Replace(BodyText,"
","
") . Set BodyText=BodyText_$$$CRLF_$$$CRLF Quit BodyText ]]>
TestMethod om een voorblad te renderen. Indien blnXmlToFile=1 wordt de xml ipv. de pdf file weggeschreven. 1 FaxRef:%String,blnXmlToFile:%Boolean=0 %Status Verzenden van een PDF via Fax WebService s sc=##class(BL.Sys.FOP.Test).FaxSendPDF(...) 1 RecipientNr:%String,RecipientName:%String,SenderName:%String,Subject:%String,FilePath:%String,OnErrorMailTo:%String,FaxLog:%String="",blnJobbed:%Boolean=0 %Status Prepares the DocBase WS Client : Set TimeOut, if defined - Can check that WS is alive, via PeekServer (param blnPeek) - Set Proxy, if specified (programmer mode) 1 cl:%SOAP.WebClient,TimeOut:%Integer,blnPeek:%Boolean %Status SOAPService niet actief/bereikbaar ;d:(blnPeek) WL^vhDBG($G(%PrefixWL)_"PeekServer OK") ;Do cl.SetLocation($S(locIndx>0:$LG(lbLocs,locIndx),1:"")) ; Only one location, i.e. the default is already set Do cl.SetTimeOut($G(TimeOut,60)) If $G(%blnProxy,0) Do . ;d WL^vhDBG("Set Proxy") . Set cl.HttpProxyServer="192.168.1.97" . Set cl.HttpProxyPort=8888 ;If $G(%blnProxy,..#UseProxy) Do ;. d WL^vhDBG("Set Proxy") ;. Set cl.HttpProxyServer=..#ProxyServer ;. Set cl.HttpProxyPort=..#ProxyPort Quit $$$OK ]]> Method AAACompilerFirst() moet eerst staan in alfabetische lijst, want moet als eerste gecompileerd worden! 1 objectgenerator 1 1 objectgenerator Run an existing FOPTask s sc=##class(BL.Sys.FOP.Test).RunFopTask(tsk,RunMode) w $$ParseStatus^vhLib(sc) 1 FopTask:Sys.FOP.Task,RunMode:%String,Priority:%String %Status s sc=##class(BL.Sys.FOP.Test).SetQItemStatus(QItemID,"W") w sc,! 1 QItem:%String,NewStatus:%String,NewPrio:%Integer %Status s sc=##class(BL.Sys.FOP.Test).SetTaskStatus(taskID,"W") w sc,! 1 FopTask:%String,NewStatus:%String %Status Run an existing FOPTask s sc=##class(BL.Sys.FOP.Test).SetTaskStatus(tsk) w $$ParseStatus^vhLib(sc) Voert een TEST XSLTransformatie uit. Oproepen via : s sc=##class(BL.Sys.FOP.Test).TestTransformXML() 1 %Status Voert een TEST RenderOrgalux (verkoopshandboek) uit. Oproepen via : s sc=##class(BL.Sys.FOP.Test).TestRenderOrgalux() 1 %Status to produce the "Failed to save file ..." bug. s sc=##class(BL.Sys.FOP.Test).TestRenderOrgalux2() w sc,!]]> 1 %Status Voert een FtpSend uit. SourceData : Stream, or FileName t.o.v. CacheServer FtpServer : bvb. "TestFtp" DestDir : (optioneel) SubDir op de FtpServer DestFName : verplicht mee te geven, tenzij de FileName uit SourceData kan overgenomen worden Oproepen via : s sc=##class(BL.Sys.FOP.Test).FtpSend(...) 1 SourceData:%String,FtpServer:%String,FtpPort:%String=21,FtpUser:%String,FtpPassword:%String,DestDir:%String,DestFName:%String,blnBinaryFtp:%Boolean=1 %Status s sc=##class(BL.Sys.FOP.Test).SimulateAll() w $$ParseStatus^vhLib(sc) 1 %Status Define the (!!!) Test FOPTask 1 Sys.FOP.Task s sc=##class(BL.Sys.FOP.Test).RunDocBase2Direct() w $$ParseStatus^vhLib(sc) 1 Data:%String %Status s sc=##class(BL.Sys.FOP.Test).RunDocBaseDirect() w $$ParseStatus^vhLib(sc) 1 Data:%String %Status VH_RenderAndDistributeAsync Set SeqItem.DataIn="e:\ADB\Templates\DEV\TestDocBase\TestDocBase_vh2.xml" Set SeqItem.DataInType="Url" Do $$$SeqItemTProptSet("distribution_type","FILE") ;Do $$$SeqItemTProptSet("distribution_type","PRINTER") Do $$$SeqItemTProptSet("document_alias","TestDocBase") Do $$$SeqItemTProptSet("document_ext","xslt") Do $$$SeqItemTProptSet("xml_source","xml/xsl") Do $$$SeqItemTProptSet("render_inputtype","xml/xsl") Do $$$SeqItemTProptSet("render_outputtype","pdf") Do $$$SeqItemTProptSet("render_outputasbytearray","true") Do $$$SeqItemTProptSet("render_docleanup","true") Do $$$SeqItemTProptSet("distribution_file_docname","TestSample_46870") Do $$$SeqItemTProptSet("distribution_file_folder","E:\FOP\PDFTemp") ;Do $$$SeqItemTProptSet("distribution_printer_name","KyoceraFS4000") ; DocuColor ;Do $$$SeqItemTProptSet("distribution_printer_number_of_copies",1) Do $$$SeqItemTProptSet("fop_ws_url","http://cache02/csp/Admin1/WS.FOP.StatusServer.cls") /* */ Set SeqItem.OmsID="PrintPDF" Set SeqItem.CallType="A" Set SeqItem.ADBProcess="VH_DistributionOnly" ; --> VH_RenderAndDistributeAsync Set SeqItem.DataIn="e:\FOP\Factuur_Test_006.pdf" ; TestSample_46870.pdf ; Set SeqItem.DataInType="LocalFile" ;Do $$$SeqItemTProptSet("distribution_type","FILE") Do $$$SeqItemTProptSet("distribution_type","PRINTER") Do $$$SeqItemTProptSet("distribution_file_docname","TestSample_46870") Do $$$SeqItemTProptSet("distribution_file_folder","E:\FOP\PDFTemp") Do $$$SeqItemTProptSet("distribution_printer_name","KyoceraFS4000") ; DocuColor Do $$$SeqItemTProptSet("distribution_printer_number_of_copies",1) Do $$$SeqItemTProptSet("distribution_printer_direct","true") Do $$$SeqItemTProptSet("distribution_printer_mediasize","ISO_A4") Do $$$SeqItemTProptSet("distribution_printer_sides","ONE_SIDED") Do $$$SeqItemTProptSet("fop_ws_url","http://cache02/csp/Admin1/WS.FOP.StatusServer.cls") /* */ Set sc=##class(Verwerker).RunTaskSequence(TSeq) Set:('$$$ISERR(sc)) sc=##class(Verwerker).GetFopResult() Quit sc ]]> Oproepen via : s sc=##class(BL.Sys.FOP.Test).RenderAndPrintDoc("VHossKellerID","BrotherBoekH",1) w sc,! 1 BONNr:%String,PrinterName:%String,pWithLogo:%Boolean=1,pTraySelect:%String="" %Status 0) NumCopies=1 Set:($$$ISOK(sc)) sc=Task.AddActionPrint(PrinterName,NumCopies,,) Quit:($$$ISERR(sc)) sc Set sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,$$$rmInLine,) ; $$$rmBatch ; $$$rmSync Quit sc ]]> Oproepen via : s sc=##class(BL.Sys.FOP.Test).RenderAndPrintProxy(pxDoc,) w sc,! 1 pxDoc:%String,PrinterName:%String %Status Oproepen via : s sc=##class(BL.Sys.FOP.Test).TestSaveStream() w sc,! 1 %Status %Library.CacheStorage ^BL.Sys.FOP.TestD TestDefaultData ^BL.Sys.FOP.TestD ^BL.Sys.FOP.TestI ^BL.Sys.FOP.TestS %%CLASSNAME