vhLib.Macro,BL.Sys.FOP.Common,BL.Flow.Doc.Common,Prod.Product 1 BL.Flow.Docs.Basis,%RegisteredObject right prijslijst_01.01 PrijsLijst PL KyoceraFS4000 1 Klanten:%List %String 1 KLNr:%String %Status Geeft DocDatum in $H formaat terug SubID als .local doorgeven, bevat "DFL" wanneer GeldigVan niet ingevuld is. Dan wordt tevens $H als DocDatum teruggegeven. 1 %String 1 KLNr:%String,DocDatum:%String,SubID:%String="" %String func. arg "DocDatum As %String" behouden ]]> 1 DocDatum:%String %String 1 DocDatum:%String %String geeft het pad van de ge-archiveerde xml. s lbFiles=##class(BL.Flow.PrijsLijst.Doc).ArchiveFullPathUser(1239) w $$LCVTSimple^vhLib(lbFiles,$C(13,10)) 1 KLNr:%String,SubID:%String="" %List Ophalen van de gearchiveerde prijslijsten voor KLNr. De lijst van FileNames (*.xml) wordt in lbFiles teruggegeven. De ArchiveDir moet gespecifieerd worden als Netwerk-pad. 1 NetworkDir:%String,KLNr:%String,SubID:%String="" %List De PrijsLijst genereren en als XML file opslaan. Volledig path van file opgeven (t.o.v. Caché-server) Oproepen via : s sc=##class(BL.Flow.PrijsLijst.Doc).SaveXmlToFile(1239,,.TFType) w sc,! [Previously private] 1 KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,FilePath:%String,TFType:%String="" %Status Archive Only: De PrijsLijst XML genereren en in Archief opslaan Oproepen via : s sc=##class(BL.Flow.PrijsLijst.Doc).SaveXmlToArchive(1239,) w sc,! 1 KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings %Status De PrijsLijst XML genereren en converteren naar "XML-voor-Excel" versie. De tijdelijke (uitgebreide) XML wordt in TempDir op Fop gezet. Moet achteraf opgeruimd worden. Voor FilePath: zie method TransformToCsvFromXML() Oproepen via : s sc=##class(BL.Flow.PrijsLijst.Doc).TransformToXML(1239,,.fp) w sc,!,$G(fp),! 1 %Status XmlPath t.o.v. FOP-server definiëren FilePath voor csv-output: mag "" (leeg) zijn mag Dir+FName zijn mag Dir zijn (eindigen met "\" !!!), FName from XmlPath s sc=##class(BL.Flow.PrijsLijst.Doc).TransformToXMLFromXML("\\Notes01\Archive\PrijsLijst\PrijsLijst_1239_20081001.xml",.fp) w sc,!,$G(fp),! 1 %Status De volledige Prijslijst-xml omzetten naar de "XML-voor-Excel" versie en deze via ftp naar de www verzenden XmlPath t.o.v. FOP-server definiëren Deze call maakt 2 afzonderlijke opdrachten : nl. eerst een XSLTransform (via WS rechtstreeks naar DocBase) en daarna de Ftp-send (is caché-task via de FOP-scheduler) s sc=##class(BL.Flow.PrijsLijst.Doc).TransformToXMLAndFtpFromXML("\\Notes01\Archive\PrijsLijst\PrijsLijst_1239_20081001.xml","vhisiedownload.vanhoecke.be",,"TestWimV.xml") w sc,! 1 XmlPath:%String,FtpServer:%String,DestDir:%String,DestFName:%String %Status Deze call maakt 1 FOP-scheduler opdracht, die de volledige Prijslijst-xml omzet naar PDF-versie en deze via ftp naar de www verzendt XmlPath t.o.v. FOP-server definiëren Oproepen via : s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndFtpFromXML("\\Notes01\Archive\PrijsLijst\PrijsLijst_1239_20081001.xml","vhisiedownload.vanhoecke.be",,"TestWimV.pdf") w sc,! 1 XmlPath:%String,FtpServer:%String,DestDir:%String,DestFName:%String %Status tevens ook wachten tot de task afgehandeld is) Set sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,$$$rmInLine) Quit sc ]]> XmlPath t.o.v. FOP-server definiëren FilePath voor pdf-output: mag "" (leeg) zijn mag Dir+FName zijn mag Dir zijn (eindigen met "\" !!!), FName from XmlPath s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndFileFromXML("\\fop_disabled\e$\PDFTest\PLijst\PrijsLijst\PrijsLijst_1239_20080902.xml","E:\FOP\PDFTest\") w sc,! s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndFileFromXML("\\Notes01\Archive\PrijsLijst\PrijsLijst_1239_20081001.xml",.fp) w sc,!,$G(fp),! 1 %Status XmlPath t.o.v. FOP-server definiëren FileURL : als .local doorgeven enkel de FileName doorgeven indien gewenst, anders wordt deze ge-default. het volledige pad (server+dir+filename) wordt in URL-vorm teruggegeven 1 %Status XmlPath t.o.v. FOP-server definiëren FileName is voor de attached pdf, indien leeg dan FName from XmlPath s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndMailFromXML("\\fop_disabled\e$\PDFTest\PLijst\PrijsLijst\PrijsLijst_1239_20080901.xml","wv@vanhoecke.be","Test PL from XML","See attached PDF: ", .fn) w sc,! s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndMailFromXML("\\Notes01\Archive\PrijsLijst\PrijsLijst_1239_20081001.xml","wv@vanhoecke.be","Test PL from XML","See attached PDF: ", .fn) w sc,! 1 XmlPath:%String,MailTo:%String,Subject:%String,Body:%String,FileName:%String,MailFrom:%String %Status De PrijsLijst genereren (render PS) + Save to PostProcOutData Oproepen via : s sc=##class(BL.Flow.PrijsLijst.Doc).RenderToPPOD(1239,,) w sc,! 1 KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,blnArchiveXML:%Boolean=0 %Status Result : 1 = Toelaten, alle andere waarden NIET toelaten [Previously private] 1 oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,KLNr 0 1 oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,KLNr s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndFileDoc(1239,,.fp) w sc,!,"File: "_$G(fp) 1 %Status FileURL : als .local doorgeven enkel de FileName doorgeven indien gewenst, anders wordt deze ge-default. het volledige pad (server+dir+filename) wordt in URL-vorm teruggegeven 1 %Status 1 KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,MailTo:%String,Subject:%String,Body:%String,FileName:%String,MailFrom:%String %Status Oproepen via : s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndPrintDoc(6822,,) w sc,! s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndPrintDoc(6822,0,"BrotherBoekH",1) w sc,! 1 KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,PrinterName:%String,pWithLogo:%Boolean=1,pTraySelect:%String="" %Status s sc=##class(BL.Flow.PrijsLijst.Doc).TestPrintImages(,,) w sc,! s sc=##class(BL.Flow.PrijsLijst.Doc).TestPrintImages("ICT6050",,lbPRNrs) w sc,! 1 PrinterName:%String,MaxPerChunk:%Integer=5,lbPRNrs:%List="" %Status TestMethod om tijdens de Development fase eenvoudig PrijsLijstSettings te creëren. 1 lbOptions:%List BL.Flow.Proxy.pxPrijsLijstSettings 1 %Status initiator ;Set sc=pxDoc.XMLExportToStream(.DataStream,"DOCS","literal,indent") Quit sc ]]> Debug Tool Genereert de XML voor de prijslijst in lbDocs en bewaart deze in de opgegeven file (path/dir moet reeds bestaan) Oproepen via : s FP="\\Cache02\c$\Temp\PrijsLijst_" s sc=##class(BL.Flow.PrijsLijst.Doc).FopXMLToFile(FP_$P($H,",",2)_".xml", $LB(1239)) w sc,! s sc=##class(BL.Flow.PrijsLijst.Doc).FopXMLToFile("\\notes01\shared\p v\kellerpl.xml", $LB(1239)) w sc,! 1 FileName:%String,lbDocs:%List %Status Aanmaken van het proxy-object dat de proxy-prijslijst bevat. lbKlanten is een $LB() van de vorm $LB(KLNr,...). 1 BL.Flow.Proxy.pxFlowDocs 1 lbKlanten:%List,KLNr:%String %Status Wordt opgeroepen vanuit de method Fill...() van het Proxy-object. 1 Regio:%String,SpecialPrintGroep:%String="" %String Geeft de standaard Keywords terug op basis van de opgegeven AnalyseRoutine 1 DocType:%String,AnalyseRoutine:%String %String XSLT-parameters voor RenderDoc berekenen. Geeft een $LB() terug. Bvb: $LB("pWithLogo=0","pWithBgColors=1") 1 lbXsltParams:%List,pWithLogo:%Boolean=0,pWithBgColors:%Boolean="",pTraySelect:%String="",pTraySelectVoorblad:%String="",pImageColVisible:%String="" %List Create Task-object AnalyseRoutine is een verplichte parameter Keywords is optioneel. Bij voorkeur ";"-gescheiden UserID is optioneel. Keywords en UserID worden berekend indien niet gedefinieerd. 1 AnalyseRoutine:%String,Keywords:%String,UserID:%String Sys.FOP.Task De render-data toevoegen aan het Doc. 1 Doc:Sys.FOP.emDoc,DataInVia:%String,DataIn,Template:%String,TransformType:%String="PDF",lbPPODKeywords:%List,lbXsltParams:%List %Status De render-data ophalen, i.e. invullen in de parameters (als .local doorgeven). 1 %Status De render-data toevoegen aan het Doc. Alleen gebruiken wanneer de data van het document gedefinieerd is via lbDocs, i.e. xml wordt pas later gegenereerd via method GetFopXML() 1 Doc:Sys.FOP.emDoc,lbDocs:%List,Template:%String,TransformType:%String="PDF",lbPPODKeywords:%List,pWithLogo:%Boolean,pTraySelect:%String,pTraySelectVoorblad:%String,oPLSettings:Sys.FOP.emDocOptions,pImageColVisible:%String %Status 1 KLNr:%String,Extension:%String="pdf" %String DocRef kan ofwel KLNr zijn, ofwel lbDocs (list) Target: File, FileWWW, FileWWWUrl, TempFTP, Mail, TempMail 1