In principe leidt deze klasse af van de interface BL.Flow.Factuur.IDoc, maar gezien de huidige, niet-flexibele structuur van deze klasse en classmethods wordt deze niet ge-refactored. De interface dient dus enkel om de Mock-class voor de UT te genereren. BL.Sys.FOP.Common 1 BL.Flow.Docs.Basis,BL.Flow.Basis.DocNew right factuur_01.01 DocType voor task-keywords (zie ook BL.Sys.FOP.Common.INC) FACTUUR Factuur F KyoceraFS4000 %String 1 lbFacturen:%Integer %String 1 FactType:%String,FANr:%String,KLNr:%String %Status Afdrukken van een gearchiveerde factuur (PDF). Oproepen via : s sc=##class(BL.Flow.Factuur.Doc).PrintPDF("\\Notes01\f$\Archive\Factuur200701\Factuur_725218_20070521.pdf","KyoceraFS4000",) w sc,! s sc=##class(BL.Flow.Factuur.Doc).PrintPDF("E:\FOP\OMR_Print\FACTUUR-EUR-N-F-31.ps","KyoceraFS4000",) w sc,! 1 FilePath:%String,PrinterName:%String,NumberOfCopies:%Integer,RunMode:%String,Priority:%String %Status Oproepen via : s sc=##class(BL.Flow.Factuur.Doc).MergePrintOMR("GR02","~") w sc,! 1 PrintGroupName:%String,PrinterName:%String %Status 1 FANr:%String,FactType:%String="F" %String %String DocDatum in $H-formaat meegeven, anders default huidige datum. 1 DocDatum:%String %String Geeft steeds het path terug t.o.v. van FOP DocBase. Mag dus GEEN netwerk-share naam zijn !!! 1 %String geeft het pad om gebruikt te worden in RPLKL 1 FANr:%String,FactType:%String="F" %String 1 FANr:%String,FactType:%String="F",FilePath:%String,blnOverwrite:%Boolean=1 1 FANr:%String,FactType:%String="F" %String 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 %Status 1 %Status 1 FactuurIDs:%ListOfDataTypes,FilePath:%String %Status 1 ProformaIDs:%ListOfDataTypes,FilePath:%String %Status 1 DocumentIDs:%ListOfDataTypes,FilePath:%String,FactType:%String 1 %Status 1 FANr:%String,FactType:%String="F",pdlExemplaren:%String="",MailTo:%String,Subject:%String,Body:%String,FileName:%String,MailFrom:%String %Status Oproepen via : s sc=##class(BL.Flow.Factuur.Doc).RenderAndFtpDoc(725218,,,"vhisiedownload.vanhoecke.be",,"TestWimV002.pdf") w sc,! 1 FANr:%String,FactType:%String="F",pdlExemplaren:%String="V",FtpServer:%String,DestDir:%String,DestFName:%String %Status Verwerking bij het aanmaken van een factuur: pdlProcess is piece-delimimited list (";"-gescheiden) en bevat de opties voor de verwerking: - "AO" : Archiveren Origineel only - "PP" : PrintToPPOD only : alle exemplaren naar PPOD, dus niets archiveren - "AO;PP" : beide (=default) - "AA" : (bijzondere optie) : Archiveren Alle exemplaren. Niet in Productie, enkel voor Develop/Debug. Steeds zonder PPOD !!! Deze Sys.FOP.Task wordt opgesplitst in verschillede taken en moet speciaal behandeld worden: - Archiveren : in PDF-formaat; enkel origineel exemplaar; Save to File - PrintWithOMR : in PS-formaat; orig exemplaar + kopieën; Save to PostProcOutData Oproepen via : s sc=##class(BL.Flow.Factuur.Doc).PrintAndFileDoc(255275,,"\C","AO;PP") w sc,! 1 FANr:%String,FactType:%String="F",pdlExemplaren:%String="",ProcessorFlag:%String,FactuurDto:BL.Flow.Proxy.pxFactuur="" %Status Task.AnalyseRoutine="aftFactuurPrintOMRAndFile" Set sc=$$$OK Set Dir=..ArchiveDir(..DocDatum(FANr,FactType)) Set FName=blFact.ArchiveFileName() Set blnAA=(ProcessorFlag["AA") ; Archiveren Alle exemplaren (bijzondere optie) Set blnAO=(ProcessorFlag="AO")&&(FactType'="P") ; Archiveren Origineel only; niet voor Proforma's Set blnPPOD=(ProcessorFlag["PP") If (blnAO)||(blnAA) Do . Set ARtn="aftFactuurArchiveren" . Set blFact.lbDocs=$LB($LB(FANr,FactType,$S(blnAO:"",1:pdlExemplaren))) ; blnAO : Archiveren Origineel only . Set blnFile=(''$L(FName)) . Set blnPPOD=0 Else If blnPPOD Do ; (ProcessorFlag["PP") ; PrintToPPOD en mogelijk ook Archiveren (origineel only) . Set blnAlsoArchive=(ProcessorFlag["AO")&&($L(FName)) . Set ARtn=$S(FactType="P":"aftProformaPrintOMR", 'blnAlsoArchive:"aftFactuurPrintOMR", 1:"aftFactuurPrintOMRAndFile") . Set blFact.lbDocs=$LB($LB(FANr,FactType,pdlExemplaren)) . Set blnFile=(blnAlsoArchive=1) Else Do . Do ##class(TECH.Exceptions.InvalidInputException).Throw("PrintAndFileDoc: inconsistent ProcessorFlag ("_ProcessorFlag_") for FactType "_FactType_". Task not built.") Set blFact.TransformType=$S(blnPPOD:"PS",1:"PDF") Set blFact.lbPPODKeywords=$S(blnPPOD:$LB(,,,,,,"",,,""), 1:$LB()) ; Bijlage and PrintGroep filled by SQL-update !!! Set blFact.lbPPODKeywords=$S(blnPPOD:"", 1:$LB()) Do blFact.XsltParams.SetAt($G(pWithLogo,0),"pWithLogo") ;Do blFact.XsltParams.SetAt(pTraySelect,"pTraySelect") // Build Task #dim Task As Sys.FOP.Task = "" Set Task=blFact.CreateFopTask(ARtn,,) If DataOphalenViaDto { Set blFact.lbDocs="" Set sc=blFact.DocSetRenderDataFromDto(Task.AddDoc(), DocData, "DOCS") } Else { Set sc=blFact.DocSetRenderDefs(Task.AddDoc(), ) } Set:($$$ISOK(sc))&&(blnFile) sc=Task.AddActionFile(FName,Dir) Set:($$$ISOK(sc))&&(blnPPOD) sc=Task.AddActionPrint(blFact.Printer,1,,,) 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 Oproepen via : s sc=##class(BL.Flow.Factuur.Doc).RenderAndFileFromXML("\\Cache02\c$\Temp\FactuurList_40157.xml","E:\FOP\PDFTest\Factuur\") w sc,! s sc=##class(BL.Flow.Factuur.Doc).RenderAndFileFromXML("\\Cache02\c$\Temp\FactuurList_40157.xml",) w sc,! 1 %Status Genereert de XML voor list lbDocs en geeft deze terug via DataStream DataStream als .local doorgeven. 1 %Status initiator ;Set sc=pxDoc.XMLExportToStream(.DataStream,"DOCS","literal,indent") Quit sc ]]> 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.Factuur.Doc).FopXMLToFile(FP_$P($H,",",2)_".xml", $LB($LB(255275,,"C"))) w sc,! 1 FileName:%String,lbDocs:%List %Status
Aanmaken van een factuur proxy-object
  FANr          : FactuurNr
  FactType      : "F" (of leeg) voor factuur
                  "P" voor Proforma
  Exemplaar     : "O" (of leeg) voor origineel factuur
                  "C" voor kopie
                  "A" voor kopie aan ...
                  (andere codes)
]]>
1 BL.Flow.Proxy.pxFlowDocs
1 lbFacturen:%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. 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 FANr zijn, ofwel lbFacturen (list) Target: File, FileWWW, FileWWWUrl, TempFTP, Mail, TempMail