vhLib.Macro,DocBaseCNTs 1 %RegisteredObject 0 192.168.1.97 8088 0 0 1 0 1 %String w ##class(BL.FOP.DocBase.TestWS).TestRenderViaAsync() 1 %Status Result:"_Rslt) If $G(Rslt)=1 Do // Get Error StatusFromFopProcess . Set sc=$G(^Sys.FOP.Log("ByJOB",fopJobID)) . Kill ^Sys.FOP.Log("ByJOB",fopJobID) . Do:($L(sc)) WL^vhDBG("Status from FopProcess: "_$$ParseStatus^vhLib(sc)) Quit ]]> w ##class(BL.FOP.DocBase.TestWS).TestRender() 1 %Status w ##class(BL.FOP.DocBase.TestWS).RenderOrgaluxAll() 1 LandCodes:%String="BE;NL",Talen:%String="N;F",Dieptes:%String="45;50;60;65" %Status w ##class(BL.FOP.DocBase.TestWS).RenderOrgalux() 1 Diepte:%String,LandCode:%String="BE",Taal:%String="N",PageHeaderTxt:%String %Status w ##class(BL.FOP.DocBase.TestWS).XSLTransformXML() 1 XMLPath:%String,XSLT:%String,OutFile:%String %Status 1 %Status will signal when finished. . d WL^vhDBG("fopRes Async: returns only the fopJobID: "_fopJobID) ;Else Do Set fopRes=..FopProcess(fopReq) Quit:('$IsObject(fopRes)) 0 Set fopJobID=fopRes.jobID Set Rslt=..SignalViaSFSKey("SFS\"_fopJobID,.msg) ; Signals only if SendFOPStatus is present (and waiting) Set sc=..HandleFopResponse(fopRes,fopReq) Quit sc rndRender(ProcessName) Set fopReq.process=$G(ProcessName,"RenderOnly") ;Do fopReq.SetDataIn("","NoData") Do rndAddCommomTaskProps Do rndDataCommonSrcFile Do rndTaskRenderOnly() Quit rndXSLTransform(ProcessName) Set fopReq.process=$G(ProcessName,"SimpleXslTransformationOnly") Kill tmpFileNameXML,tmpFileNameXSLT Set:($L($LG(lbDataIn,3))) tmpFileNameXML=$LG(lbDataIn,3) ; XML FileName Set:($L($LG(lbDataIn,4))) tmpFileNameXSLT=$LG(lbDataIn,4) ; XSLT FileName Do rndTaskXslTransformOnly(.tmpFileNameXML,.tmpFileNameXSLT) Quit rndRenderAndPrint(ProcessName) Set fopReq.process=$G(ProcessName,"RenderAndPrint") Do rndAddCommomTaskProps Do rndDataCommonSrcFile Do rndTaskRender() Do rndTaskPrint() Quit rndRenderAndFile(ProcessName) Set fopReq.process=$G(ProcessName,"RenderAndFile") Kill tmpFileName,tmpFolder Do rndAddCommomTaskProps Do rndDataCommonSrcFile Set:($L($LG(lbDataOut,1))) tmpFileName=$LG(lbDataOut,1) ; FileName Set:($L($LG(lbDataOut,2))) tmpFolder=$LG(lbDataOut,2) ; Folder Do rndTaskRender() Do rndTaskFile(.tmpFileName,.tmpFolder) Quit rndRenderAndDistributeVH(ProcessName) Set fopReq.process=$G(ProcessName,"VH_RenderAndDistributeAsync") Set DistribType=$$$dmkDistributionFile ; $$$dmkDistributionFile ; $$$dmkDistributionEmail_";"_$$$dmkDistributionFile_";"_$$$dmkDistributionPrinter Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,DistribType) Do rndAddCommomTaskProps Do rndDataCommonSrcFile Do rndTaskRender() Do:($F(DistribType,$$$dmkDistributionEmail)) rndTaskEmail() Do:($F(DistribType,$$$dmkDistributionPrinter)) rndTaskPrint() Do:($F(DistribType,$$$dmkDistributionFile)) rndTaskFile() Do rndSendFOPStatus Quit rndRenderAndDistribute(ProcessName) Set fopReq.process=$G(ProcessName,"VH_RenderAndDistribute") Set DistribType=$$$dmkDistributionFile ; $$$dmkDistributionEmail_";"_$$$dmkDistributionFile_";"_$$$dmkDistributionPrinter Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,DistribType) Do rndAddCommomTaskProps Do rndDataCommonSrcFile Do rndTaskRender() Do:($F(DistribType,$$$dmkDistributionEmail)) rndTaskEmail() Do:($F(DistribType,$$$dmkDistributionPrinter)) rndTaskPrint() Do:($F(DistribType,$$$dmkDistributionFile)) rndTaskFile() ;Do rndSendFOPStatus Quit rndRenderAndEmailAndPrint(ProcessName) Set fopReq.process=$G(ProcessName,"RenderAndEmailAndPrint") Do rndAddCommomTaskProps Do rndDataCommonSrcFile Do rndTaskRender() Do rndTaskEmail() Do rndTaskPrint() ;Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,$$$dmkDistributionEmail_";"_$$$dmkDistributionPrinter) Quit rndRenderAndEmail(ProcessName) Set fopReq.process=$G(ProcessName,"RenderAndEmail") Do rndAddCommomTaskProps Do rndDataCommonSrcFile Do rndTaskRender() Do rndTaskEmail() ; "037601919@vhfax.be" - test@037601919@FAX Quit rndRenderMultiAndEmail(ProcessName) Set fopReq.process=$G(ProcessName,"RenderMultiAndEmail") Set TemplateNames="OLProdCat"_"#"_"OLProdCat_19pct" Set arTProps($$$IncTP)=$LB($$$dmkDocumentName,TemplateNames) Set arTProps($$$IncTP)=$LB($$$dmkMultipleRenderToken,"#") Do fopReq.SetDataIn("c:\FOP\XML\DBMulti") ; \ProdListXML_Test2.01.xml" ;Set arTProps($$$IncTP)=$LB($$$dmkRenderSourcefiles,"c:\FOP\XML\DBMulti") Set arTProps($$$IncTP)=$LB($$$dmkRenderDocExt,"xslt") Set arTProps($$$IncTP)=$LB($$$dmkAdbapiIndata,$$$dmkInputXMLXSL) ; dmkInputXMLXSL / dmkInputXSLFO / dmkInputRIF Set arTProps($$$IncTP)=$LB($$$dmkRenderInputasbytearray,"false") Set arTProps($$$IncTP)=$LB($$$dmkRenderTargetdir,$G(Folder,"E:\FOP\PDFTemp")) Do rndTaskRender() Do rndTaskEmail() Quit rndPDFMerge(ProcessName) Set fopReq.process=$G(ProcessName,"VH_PDFMergeOnly") Do rndTaskMerger() Quit rndRenderAndMergeAndFile(ProcessName) /* Set fopReq.process=$G(ProcessName,"RenderAndEmailAndPrint") Do rndDataCommonSrcFile Do rndTaskRender() Do rndTaskMerger() Do rndTaskFile(.tmpFileName,.tmpFolder) */ Quit rndLoadResAndRender(ProcessName) Set fopReq.process=$G(ProcessName,"LoadResAndRender") Do rndAddCommomTaskProps Set arTProps($$$IncTP)=$LB($$$dmkLoadFileinputurl,"http://cache02/CSP/Admin1/TestDocBase_SampleA.xml") Do rndTaskRender() Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,$$$dmkDistributionFile) Do rndTaskFile() ;Do rndTaskEmail() Do rndAddFeedBackStatus Quit rndRenderAndPDFMergeVH(ProcessName,MainDocs) Set fopReq.process=$G(ProcessName,"VH_RenderAndPDFMergeAsync") Set MainDocs=$G(MainDocs,"E:\FOP\PDFTemp\TestSample59359.pdf") Do rndAddCommomTaskProps Do rndDataCommonSrcFile Set arTProps($$$IncTP)=$LB($$$dmkRenderDocExt,"xslt") Set arTProps($$$IncTP)=$LB($$$dmkAdbapiIndata,$$$dmkInputXMLXSL) ; dmkInputXMLXSL / dmkInputXSLFO / dmkInputRIF Set arTProps($$$IncTP)=$LB($$$dmkRenderInputType,$$$dmkInputXMLXSL) ; dmkInputXMLXSL / dmkInputXSLFO / dmkInputRIF Set arTProps($$$IncTP)=$LB($$$dmkRenderOutputType,$$$dmkOutputPDF) ; dmkOutputPDF / dmkOutputPS / dmkOutputRIF / dmkOutputXEP Set arTProps($$$IncTP)=$LB($$$dmkRenderDocleanup,"true") /* * / // RenderAndMerge via TempFile Set arTProps($$$IncTP)=$LB($$$dmkRenderOutputasbytearray,"false") Set arTProps($$$IncTP)=$LB($$$dmkRenderTargetfile,"E:\FOP\PDFTemp\TempFrontPage.pdf") ; $LB($$$dmkRenderTargetdir,"E:\FOP\PDFTemp\") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerInputasbytearray,"false") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerInputdocuments,MainDocs) Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerPrependDocument,"E:\FOP\PDFTemp\TempFrontPage.pdf") /* */ // RenderAndMerge via In/Outputasbytearray=true Set arTProps($$$IncTP)=$LB($$$dmkRenderOutputasbytearray,"true") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerInputasbytearray,"true") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerAppendDocument,MainDocs) /* */ Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerOutputasbytearray,"false") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerOutputfilename,"E:\FOP\PDFTemp\FaxFileName037601919.pdf") ; FaxDir\ Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("xslt_param01","pTaal="_Taal) Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("xslt_param02","LOCALE="_$S($G(blnDevText,0):"VH_nl", 1:"BE_nl")) ; _$CASE(Taal, "N":"BE_nl","F":"BE_fr", :"BE_nl")) Do rndSendFOPStatus Quit rndDataCommonSrcFile If $L($G(SrcPath)) Do Quit . Do fopReq.SetDataIn(SrcPath,DataFrom) // Else Do ;Do fopReq.SetDataIn("","NoData") ;Do fopReq.SetDataIn($$$DBResPathNtw_"SampleA\SampleAbis.xml","UploadData") Do fopReq.SetDataIn($$$DBResPath_"TestDocBase\TestDocBase_vh2.xml") ; $$$DBResPath_"TestDocBase\TestDocBase_vh2.xml") ; "c:\FOP\XML\DBMulti") ; $$$DBResPath_"SampleA\SampleA.xml") ; _";"_$$$DBResPath_"SampleA\SampleAbis.xml") ;Do fopReq.SetDataIn("http://cache02/CSP/Admin1/TestDocBase_SampleA.xml","Url") Quit rndShowObjects d WL^vhDBG($$ObjListToText^vhLib($LB("d"))) Quit // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | Separate distribution tasks | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ rndAddCommomTaskProps Set arTProps($$$IncTP)=$LB($$$dmkDocumentName,Template) Set arTProps($$$IncTP)=$LB($$$dmkRenderDocExt,$S($L($G(Taal)):Taal_".", 1:"")_"xslt") Set arTProps($$$IncTP)=$LB($$$dmkAdbapiIndata,$$$dmkInputXMLXSL) ; dmkInputXMLXSL / dmkInputXSLFO / dmkInputRIF Quit rndAddFeedBackStatus Set arTProps($$$IncTP)=$LB($$$dmkFeedbackKey,"statusblah") Set arTProps($$$IncTP)=$LB($$$dmkFeedbackToken,"=") Set arTProps($$$IncTP)=$LB($$$dmkFeedbackValue,"test") Quit rndSendFOPStatus Set arTProps($$$IncTP)=$LB("fop_ws_url","http://cache02/csp/Admin1/WS.FOP.StatusServer.cls") Quit rndTaskXslTransformOnly(tmpFileNameXML,tmpFileNameXSLT) ;Set tmpFileNameXML=$G(tmpFileNameXML,"file:///E:/ADB/Templates/DEV/TestDocBase/TestDocBase_vh2.xml") ;Set tmpFileNameXSLT=$G(tmpFileNameXSLT,"file:///E:/ADB/Templates/DEV/TestDocBase/TestDocBase.FO.N.xslt") Set tmpFileNameXML=$G(tmpFileNameXML,"file:///C:/FOP/XML/172778.xml") Set tmpFileNameXSLT=$G(tmpFileNameXSLT,"file:///C:/FOP/XSLT/MapToFlowOfferte.xslt") Set arTProps($$$IncTP)=$LB($$$dmkTransformInputasbytearray,"false") Set arTProps($$$IncTP)=$LB($$$dmkTransformInputurl,tmpFileNameXML) Set arTProps($$$IncTP)=$LB($$$dmkTransformXslurl,tmpFileNameXSLT) ;Set Taal="F" Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("transform_param01","pTaal="_Taal) Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("transform_param02","LOCALE="_$S($G(blnDevText,0):"VH_nl", 1:"BE_nl")) Quit rndTaskRenderOnly() Set arTProps($$$IncTP)=$LB($$$dmkRenderDocleanup,"true") Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("xslt_param01","pTaal="_Taal) Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("xslt_param02","LOCALE="_$S($G(blnDevText,0):"VH_nl", 1:"BE_nl")) Quit rndTaskRender() ; In combination with DistributionTask(s) Set arTProps($$$IncTP)=$LB($$$dmkRenderInputType,$$$dmkInputXMLXSL) ; dmkInputXMLXSL / dmkInputXSLFO / dmkInputRIF Set arTProps($$$IncTP)=$LB($$$dmkRenderOutputType,$$$dmkOutputPDF) ; dmkOutputPDF / dmkOutputPS / dmkOutputRIF / dmkOutputXEP Set arTProps($$$IncTP)=$LB($$$dmkRenderOutputasbytearray,"true") Set arTProps($$$IncTP)=$LB($$$dmkRenderDocleanup,"true") Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("xslt_param01","pTaal="_Taal) Set:($L($G(Taal))) arTProps($$$IncTP)=$LB("xslt_param02","LOCALE="_$S($G(blnDevText,0):"VH_nl", 1:"BE_nl")) ; _$CASE(Taal, "N":"BE_nl","F":"BE_fr", :"BE_nl")) If (Template="OLProdCat")&&($D(lbOpties)) Do . Set:($L($LG(lbOpties,1))) arTProps($$$IncTP)=$LB("xslt_param03","pLandCode="_$LI(lbOpties,1)) . Set:($L($LG(lbOpties,2))) arTProps($$$IncTP)=$LB("xslt_param04","pPageHeader="_$LG(lbOpties,2)) Quit rndTaskPrint(PrinterName) ;Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,$$$dmkDistributionPrinter) ; Printer / Email / File / Jms Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterName,$G(PrinterName,"DocuColor")) ; DocuColor / DocuColorPCL / Landscape / BJ230 / EasyCoder Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterNumberOfCopies,1) Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterChromaticity,"CHROMATICITY_MOMOCHROME") ; CHROMATICITY_COLOR / CHROMATICITY_MOMOCHROME Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterDirect,"true") Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterMediasize,"ISO_A4") ; NA_LEGAL / NA_LETTER / ISO_A0 / ... / ISO_A4 / ... / ISO_A10 / ISO_B0 / ... / ISO_B10 / ISO_C3 / ... / ISO_C6 / ISO_DESIGNATED LONG Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterOrientation,"ORIENTATION_PORTRAIT") ; ORIENTATION_PORTRAIT / ORIENTATION_REVERSE_PORTRAIT / ORIENTATION_LANDSCAPE / ORIENTATION_REVERSE_LANDSCAPE Set arTProps($$$IncTP)=$LB($$$dmkDistributionPrinterSides,"ONE_SIDED") ; ONE_SIDED / TWO_SIDED_LONG_EDGE / TWO_SIDED_SHORT_EDGE Quit rndTaskFile(FileName,Folder) ;Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,$$$dmkDistributionFile) Set arTProps($$$IncTP)=$LB($$$dmkDistributionFileDocname,$G(FileName,"TestSample_"_$P($H,",",2))) Set arTProps($$$IncTP)=$LB($$$dmkDistributionFileFolder,$G(Folder,"E:\FOP\PDFTemp")) Quit rndTaskEmail(MailTo) ; MailTo (recipients: comma-delimited) ;Set arTProps($$$IncTP)=$LB($$$dmkDistributionType,$$$dmkDistributionEmail) Set:('$D(MsgBody)) MsgBody="Hierbij vind je het PDF-bestand."_$$$CRLF_$$$CRLF_$C(160) Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailSmtpHostName,"notes01") Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailSender,"admin@vanhoecke.be") ;Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailSmtpHostName,"ws_ict_xp") ;Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailSender,"wro@vanhoecke.be") Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailRecipient,$G(MailTo,"wv@vanhoecke.be")) Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailSubject,$G(Subject,"FOP from DocBase - "_$ZDT($H,4))) Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailMessage,$G(MsgBody)) Set arTProps($$$IncTP)=$LB($$$dmkDistributionEmailAttachmentname,$G(PDFName,"TestFOP_"_$P($H,",",2)_","_"TestFOP2"_","_"TestFOP3")) Set:($L($G(CC))) arTProps($$$IncTP)=$LB($$$dmkDistributionEmailCcrecipient,CC) ;Set BCC="wv@vanhoecke.be" Set:($L($G(BCC))) arTProps($$$IncTP)=$LB($$$dmkDistributionEmailBccrecipient,BCC) Quit rndTaskMerger(FileNames,Folder) ;New Delim,Files Set FileNames=$G(FileNames,"E:\FOP\PDFTemp\OL_BOX4550.pdf"_Delim_"E:\FOP\PDFTemp\OL_BOX50.pdf") ;Set FileNames=$$$DBDataPath_"pdfmerger\pdf_docs\3.pdf"_Delim_$$$DBDataPath_"pdfmerger\pdf_docs\2.pdf" Set Delim="#" Set Files=$S($L($G(Folder)):Folder, 1:FileNames) Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerInputdocuments,Files) Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerInputasbytearray,"false") ;Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerPrepend,$$$DBDataPath_"pdfmerger\pdf_covers\5.pdf") ;Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerAppend,$$$DBDataPath_"pdfmerger\pdf_covers\4.pdf") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerPrependDocument,$$$DBDataPath_"pdfmerger\pdf_covers\1.pdf") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerAppendDocument,$$$DBDataPath_"pdfmerger\pdf_covers\5.pdf"_Delim_$$$DBDataPath_"pdfmerger\pdf_covers\5.pdf") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerToken,Delim) Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerOutputasbytearray,"false") Set arTProps($$$IncTP)=$LB($$$dmkPdfmergerOutputfilename,$G(OutFile,"E:\FOP\PDFTemp\"_"SampleMerge_"_$P($H,",",2)_".pdf")) Quit rndArrayToTaskPropt(fopReq,arTProps) ; arTProps als .local doorgeven ; New i Set i="" For Set i=$O(arTProps(i)) Quit:(i="") Do . Do ..AddToTaskPropt(fopReq.taskProps,$LG(arTProps(i),1),$LG(arTProps(i),2)) Quit ]]> 1 TaskList:%RegisteredObject,name:%String,value:%String %Status 1 Stage:%String="DEV",TraceLevel:%String WS.FOP.WSRequestInfo 1 fopReq:WS.FOP.WSRequestInfo,Stage:%String,TraceLevel:%String %Status 1 fopReq:WS.FOP.WSRequestInfo,SrcPath:%String,DataFrom:%String %Status " Set:($G(DataFrom)="") DataFrom=$S($G(SrcPath)="":"NoData", 1:"LocalFile") If DataFrom="NoData" Do . Set fopReq.data=$$$XmlEmpty . Do ..AddToTaskPropt(fopReq.taskProps,$$$dmkRenderInputasbytearray,"true") Else If DataFrom="UploadData" Do ; from the client PC's point of view. In this case: the CachéServer . Set fopReq.data=$$sdiSrcDataFromPath(SrcPath) . Do ..AddToTaskPropt(fopReq.taskProps,$$$dmkRenderInputasbytearray,"true") Else If DataFrom="LocalFile" Do ; from the FOP's point of view ("c:\temp\test.xml") . Set fopReq.dataRef=SrcPath . ;Do ..AddToTaskPropt(fopReq.taskProps,$$$dmkRenderInputasbytearray,"true") Else If DataFrom="Url" Do ; from the FOP's point of view ("http://..." ) . Set fopReq.dataRef=SrcPath . Do ..AddToTaskPropt(fopReq.taskProps,$$$dmkRenderInputasbytearray,"true") Quit $$$OK sdiSrcDataFromPath(SrcPath) w "Volledig path: "_SrcPath,! Set InF=##class(%Library.File).%New(SrcPath) Do InF.Open("RU") If InF.IsOpen Do . Do InF.Rewind() . Set xml=InF.Read(InF.Size) Else Do . w "0;Kan bestand niet openen om uit te lezen: "_SrcPath Set InF="" ; Do InF.%Close() d WL^vhDBG("XML="_xml) Quit xml ]]> Check the status of an on-going DocBase process w ##class(BL.FOP.DocBase.TestWS).GetAsyncResponse(...) 1 fopJobID:%String %String will signal when finished. Set ^Sys.Event.Lookup("FOP","fopJobID",fopJobID)=$J Set Rslt=$SYSTEM.Event.Wait("",SyncTimeOut) Kill ^Sys.Event.Lookup("FOP","fopJobID",fopJobID) ... ;ATTENTION: In order to trigger a Wait event after the StartFopProcessAsync() call, make sure that the SendFOPStatus task is ; included in the DocBase Process! If not, the Event.Wait() will run into the TimeOut!]]> 1 CfgADBASync:%Boolean=..#DocBaseAsyncMode,fopReq:WS.FOP.WSRequestInfo,TimeOut:%Integer,blnPeek:%Boolean %String 1 fopReq:WS.FOP.WSRequestInfo,TimeOut:%Integer,blnPeek:%Boolean WS.FOP.WSResponse SOAPService niet actief/bereikbaar d:($G(blnPeek,..#UsePeekServer)) WL^vhDBG($G(%PrefixWL)_"PeekServer OK") Do cl.SetTimeOut($G(TimeOut,60)) Set cl.HttpUsername="uta" Set cl.HttpPassword="uta" If $G(blnProxy,..#UseProxy) Do . Set cl.HttpProxyServer=..#ProxyServer . Set cl.HttpProxyPort=..#ProxyPort ;d WL^vhDBG("SOAP Client class: "_cl_$$$CRLF_$$ObjToText^vhLib(cl)) d WL^vhDBG($G(%PrefixWL)_"Invoke DocBase WS ""fopRes=cl.process(fopReq)"" ... ") Do fprFopProcessSub() d WL^vhDBG($G(%PrefixWL)_"Finished DocBase cl.process: Result: "_$G(fopRes)) Quit $S(blnAsync:$G(jobID), 1:$G(fopRes)) fprFopProcessSub() Set fopRes="" Quit:(locIndx<0) Set $ZTRAP="fprSoapErrorRender" If blnAsync Do ; HAS NOT BEEN TESTED YET !!! . Set jobID=cl.startRequest(fopReq) . Set fopRes=$System.OBJ.New("WS.FOP.WSResponse") ; WS.FOP.WSAsyncResponse . Set fopRes.jobID=jobID Else Do . Set fopRes=cl.process(fopReq) Set $ZTRAP="" Quit fprSoapErrorRender Set $ZTRAP="" w "Error in SOAPRequest",! ;w "SOAP message: "_$$ParseStatus^vhLib(%objlasterror),! Set CustomMsg="FOP process failed ." Do SOAPErrorMail^cspBasis.SOAPlib("FOP_ADB_ERR",,CustomMsg,) Set $ZE="" Quit ]]> 1 fopRes:WS.FOP.WSResponse,fopReq:WS.FOP.WSRequestInfo %Status Status msg: "_$$ParseStatus^vhLib(sc)) . Else If fopReq.process?1(1"SimpleXslTransformationOnly") Do .. Set FileName=##class(%File).NormalizeDirectory("C:\FOP\PDFTemp\")_"Result.fo.xml" .. Set sc=$$fprResponseToFile(fopRes,FileName) .. d WL^vhDBG($G(%PrefixWL)_"Response.data saved to file : ["_$$$Server_"] "_FileName_$$$CRLF_" --> Status msg: "_$$ParseStatus^vhLib(sc)) . Else Do .. d WL^vhDBG($G(%PrefixWL)_"Data: "_fopRes.data) Else Do . Set sc=..HandleFopResponseError(fopRes,fopReq) Quit sc fprResponseToFile(response,FileName) ;New sc,stream Set stream=##class(%FileCharacterStream).%New() Set sc=stream.LinkToFile(FileName) Quit:($$$ISERR(sc)) sc Set sc=stream.Write(response.data) Set sc=stream.SaveStream() Quit $$$OK ]]> 1 fopRes:WS.FOP.WSResponse,fopReq:WS.FOP.WSRequestInfo %Status Returns "" or 0 or 1 1 %String Returns "" or 0 or 1 1 %String Looks up the JobID of the process to Signal. Passes an errormessage via .msg Returns "" or 0 or 1 1 %String Event triggered by the WebService "StatusServer", called from Assentis DocBase processes. Should be called when using an Asynchronous implementation of the DocBase fop Server. 1 DocBaseID:%String,Status:%String,NumberOfPages:%Integer,DocURL:%String