Basis BL-klasse voor het aanmaken van FOP task voor de FlowDocs. Deze BL moet geïnstantieerd worden OPM: deze klasse zou moeten afgeleid worden van BL.Sys.FOP.TaskMgr BL.Sys.FOP.Common,BL.Flow.Doc.Common 1 %RegisteredObject 0 This parameter should be overridden in each derived class basisdoc_NoTemplate This parameter should be overridden in each derived class DocType voor task-keywords : FACTUUR, LEVBON, OFFERTE, ORDER, TOELEV, PRIJSLIJST, RAPPEL, TRANSPORTLIJST (zie ook BL.Sys.FOP.Common.INC) BASIS This parameter should be overridden in each derived class Basis This parameter should be overridden in each derived class F BrotherBoekH This parameter should be overridden if the BuildProxy() method is in a different BL-class Set full class name e.g. BL.Sys.FOP.DataXML . Oproepende BL-object %RegisteredObject %Status DocBase Template name (deployed) %String %String Type document : Factuur, LevBon, Offerte, OrderBvs, Toelev, PrijsLijst, Rappel Gedefinieerd door class parameter "DocName" %String Code voor het Soort document : F, L, A, O, T, PL, R Gedefinieerd door class parameter "DocCode" %String Referentie van het document (i.e. FlowDoc Nr) %String lbDocs is een $LB() van DocRef met eventueel extra specificaties %List PDF of PS %String De PPOD keywords kunnen vooraf gespecifieerd worden, doch worden ze meestal via de BuildProxy ingevuld. Geeft lege listbuild (dus $LB()) mee om dit te onderdrukken, dus geen PPODfields in te vullen. %List XsltParameters voor het genereren van de PDF (lees RenderXsltParams) %String array Render options : specifieke opties voor het genereren van de Proxy (data) en het genereren van de PDF %RegisteredObject Options voor de gegenereerde PDF (e.g. PDF properties, EncryptPdf, ... ) %RegisteredObject FopTask bevat alle gegevens om een document te verwerken (render + action) Hiervoor eerst één van de methods BuildTask...() oproepen. Sys.FOP.Task Set blFlowBasis=##class(BL.Flow.Basis.DocNew).Instantiate(...) 1 ParentBL:%RegisteredObject BL.Flow.Basis.DocNew DocRef:%String,lbDocs:%List FopTask voor "Render And File (WWW)" aanmaken. Zie ook method BuildTaskRenderAndFile() FilePath: enkel de FileName doorgeven indien gewenst, anders wordt deze ge-default. FileURL : als .local doorgeven het volledige pad (server+dir+filename) wordt in URL-vorm teruggegeven 1 %Status FopTask voor "Render And File" aanmaken. De properties DocRef en lbDocs moeten ingevuld zijn Voor blnFileWWW=1 : zie method BuildTaskRenderAndFile() 1 %Status FopTask voor "Render And Print" aanmaken. De properties DocRef en lbDocs moeten ingevuld zijn De parameter PrinterName moet ingevuld zijn 1 PrinterName:%String,NumCopies:%String=1 %Status 0)&&(NumCopies'="0") NumCopies=1 /* /// Ook implementeren in klasse BL.Sys.FOP.TaskMgr /// // Support printing via PCL (Added by WimV on 15/10/2010) #define TranformTypeVoorPCL "PDF" Set TransformType=..TransformType If (TransformType'=$$$TranformTypeVoorPCL)&&(##class(TECH.Print.PrinterKenmerkUtils).IsPCLPrinter(PrinterName)) { Set TransformType=$$$TranformTypeVoorPCL } Set sc=..DocSetRenderDefs(Task.AddDoc(), ..lbDocs, ..ADBTemplate, TransformType, ..lbPPODKeywords) ; , ..TransformType (Modified by WimV on 15/10/2010) */ Set sc=..DocSetRenderDefs(Task.AddDoc(), ..lbDocs, ..ADBTemplate, ..TransformType, ..lbPPODKeywords) Set:($$$ISOK(sc)) sc=Task.AddActionPrint(PrinterName,NumCopies,,) Set ..FopTask=Task Quit sc ]]> FopTask voor "Render And Mail" aanmaken. De properties DocRef en lbDocs moeten ingevuld zijn De parameter MailTo moet ingevuld zijn 1 %Status FopTask voor "Render And FTP" aanmaken. De properties DocRef en lbDocs moeten ingevuld zijn De parameter DestFName moet ingevuld zijn De parameter DestDir bepaalt de subdir op de FTP-server. 1 FtpServer:%String,DestDir:%String,DestFName:%String %Status FopTask voor "Render And File" aanmaken. De properties DocRef en lbDocs moeten ingevuld zijn 1 %Status Document renderen in PDF-vorm en bijhouden in PPOD. Kan gebruikt worden om verschillende docs te verzamelen en samen met een (ge-rendered) voorblad te faxen. PrintGroupName:%String %Status 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 1 %Status Document renderen in PDF-vorm en bijhouden in PPOD. Kan gebruikt worden om verschillende docs te verzamelen en samen met een (ge-rendered) voorblad te faxen. 1 lbDocs %Status Debug Tool Genereert de XML voor list lbDocs en bewaart deze in de opgegeven file (path/dir moet reeds bestaan) Oproepen via : s FP="\\Cache02\c$\Temp\FactuurList_" s sc=##class(BL.Flow.Basis.Doc).FopXMLToFile(FP_$P($H,",",2)_".xml", $LB($LB(255275,,"C"))) w sc,! 1 FileName:%String,lbDocs:%List,DocRef:%String %Status Example PrijsLijst Set:($$$ISOK(sc)) sc=##class(BL.Sys.FOP.DataMgr).SaveDocDataToFile(oDoc,.FileName) Do blFlowDoc.Close() Set blFlowDoc="" Quit sc ]]> 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. AnalyseRoutine:%String,Keywords:%String,UserID:%String Sys.FOP.Task 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 BuildProxy() Doc:Sys.FOP.emDoc,lbDocs:%List,Template:%String,TransformType:%String,lbPPODKeywords:%List %Status De render-data toevoegen aan het Doc. Dumm1 was vroeger Template en Dummy2 was vroeger lbPPODKeywords . Nu moeten ze via de BL-properties doorgegeven worden. Doc:Sys.FOP.emDoc,DataInVia:%String,DataIn,Dummy1:%String,TransformType:%String,Dummy2:%List,Taal:%String,Options:%RegisteredObject,OptionsPDF:%String %Status Specifieke render-data invullen. Deze method kan in de afgeleide klasse overschreven worden voor specifieke uitbreidingen. %Status XSLT-parameters voor RenderDoc omvormen van Array-property naar $LB() Geeft een $LB() terug. Bvb: $LB("pWithLogo=0","pWithBgColors=1") %List Geeft de standaard Keywords terug op basis van de opgegeven AnalyseRoutine. Basis classmethod KeywordsDefaultCM() kan uitgebreid worden via de obj-method KeywordsDefault(), die overschreven wordt in de afgeleide klasse 1 1 DocType:%String,AnalyseRoutine:%String %String Geeft de standaard Keywords terug op basis van de opgegeven AnalyseRoutine. Deze method kan in de afgeleide klasse overschreven worden voor specifieke uitbreidingen. DocType:%String,AnalyseRoutine:%String %String DocRef:%String,Extension:%String="pdf" %String DocRef kan ofwel BONNr zijn, ofwel lbDocs (list) Target: File, FileWWW, FileWWWUrl, TempFTP, Mail, TempMail