Index: BL/Flow/PrijsLijst/Doc.cls.xml =================================================================== diff -u -r1889 -r1890 --- BL/Flow/PrijsLijst/Doc.cls.xml (.../Doc.cls.xml) (revision 1889) +++ BL/Flow/PrijsLijst/Doc.cls.xml (.../Doc.cls.xml) (revision 1890) @@ -1,21 +1,15 @@ -BL.Sys.FOP.Common +%VHMacro,BL.Sys.FOP.Common,BL.Flow.Doc.Common,%Prod.Product 1 -BL.Flow.Docs.Basis,BL.Flow.Basis.DocNew +BL.Flow.Docs.Basis,%RegisteredObject 0 prijslijst_01.01 - - -DocType voor task-keywords (zie ook BL.Sys.FOP.Common.INC) -PRIJSLIJST - - PrijsLijst @@ -158,32 +152,31 @@ 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).SaveXmlToArchive(1239,) w sc,! + s sc=##class(BL.Flow.PrijsLijst.Doc).SaveXmlToFile(1239,,.TFType) w sc,! 1 -KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,FilePath:%String +KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,FilePath:%String,TFType:%String="" 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 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\e$\PDFTest\PLijst\PrijsLijst\PrijsLijst_1239_20080902.xml","E:\FOP\PDFTest\") w sc,! -s fxml="\\fop\e$\FOP\Data\PrijsLijst_4682_20090119_DFL.xml" -s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndFileFromXML(fxml,.fp) w sc,!,$G(fp),! +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 @@ -359,16 +347,14 @@ XmlPath:%String,MailTo:%String,Subject:%String,Body:%String,FileName:%String,MailFrom:%String %Status @@ -382,112 +368,95 @@ KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,blnArchiveXML:%Boolean=0 %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 +Result : 1 = Toelaten, alle andere waarden NIET toelaten 1 - -%Status +oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,KLNr +1 +0 29) 0 + . Set KLID=^KK1(KLNr) + . Set Regio=$P(^KKL(KLID,0),"\",20) + + If oPLSettings.OmzetOndergrens Do Quit:Omzet s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndFileDoc(1239,,.fp) w sc,!,"File: "_$G(fp) 1 - + %Status - + - s sc=##class(BL.Flow.PrijsLijst.Doc).RenderAndPrintDoc(4682,,"KYOCERAFS4000") w sc,! +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 -KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,PrinterName:%String + %Status @@ -496,27 +465,41 @@ KLNr:%String,oPLSettings:BL.Flow.Proxy.pxPrijsLijstSettings,MailTo:%String,Subject:%String,Body:%String,FileName:%String,MailFrom:%String %Status + - Set sc=blOrd.BuildTaskRenderAndMail(MailTo,.Subject,.Body, .FileName, .MailForm) - Set Task=blOrd.FopTask - Do blOrd.Close() - Set blOrd="" - Set:($$$ISOK(sc)) sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,$$$rmBatch) ; $$$rmSync + + +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(,,) w sc,! + s sc=##class(BL.Flow.PrijsLijst.Doc).TestPrintImages("ICT6050",,lbPRNrs) w sc,! 1 PrinterName:%String,MaxPerChunk:%Integer=5,lbPRNrs:%List="" %Status @@ -541,10 +524,14 @@ */ d WLIP^vhDBG(97,"TestPrintImages") - ;s lbPRNrs=$LB(254322, 246057, 239364)_$LB(55776,247828,10479,104752,90133,385199) _$LB(48867, 299849, 77212, 265935, 71867, 19062, 206458, 145743) + ;s lbPRNrs=$LB(87426, 90133, 87426, 324987, 87426, 324989, 87426, 324991) + #define MaxDocsPerTask 40 + #define MaxPerChunkDFL 5 + + Set blnPrint=0 ; Print or ToFile ? Set KLNr=4682 ; VAN HOECKE - Set:((MaxPerChunk\1)<1) MaxPerChunk=5 + Set:((MaxPerChunk\1)<1) MaxPerChunk=$$$MaxPerChunkDFL Do tpiFetchProducts(5005) ; Beperken tot Blum-producten Do tpiBuildChunks(MaxPerChunk) Do tpiRenderPrintChunks(KLNr) @@ -556,11 +543,18 @@ Set blImage=##class(BL.Prod.ImageLink).Instantiate() Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do - . Quit:'$D(^KPR(PRNr,"J"_LEVNr)) + . If ($L(LEVNr)) Quit:('$D(^KPR(PRNr,"J"_LEVNr))) . Set IdentNr=$P(^KPR(PRNr,2),"\",25) . Quit:$E(IdentNr)=7 ; DO-product . Quit:$E(IdentNr)=6 ; Kindproduct . Quit:$P(^KPR(PRNr,0),"/")?1(1"CBL",1"MBL").E ; Catalogen + . + . Set KKey=$$$PRGet($$$KlassificatieKey) + . Set KKey=$P($G(^KLAS("K",KKey)),"\",8) + . ;Quit:(KKey'=387) ; Box + . ;Quit:(KKey'=187) ; Accessoires + . ;Quit:(KKey'?1(1"387",1"187")) ; Box of Accessoires + . . Set ImageURL=blImage.GetProductImageURL(PRNr,"FOPEMBED"_"PS") ; proxy met URL van product beeld om ge-embed te worden in de PDF door FOP . If ($isObject(ImageURL))&&($L(ImageURL.Content))&&($D(Cache(ImageURL.Content))) Quit . If ($isObject(ImageURL))&&($L(ImageURL.Content)) Set Cache(ImageURL.Content)="" @@ -588,40 +582,56 @@ Quit tpiRenderPrintChunks(KLNr) - #define MaxDocsPerTask 40 - For j=0:$$$MaxDocsPerTask:arChunk Do Quit:($$$ISERR(sc)) - . Do tpiRenderPrintChunksSub(KLNr,j,j+$$$MaxDocsPerTask) + Set (CntTasks,CntChunks)=0 + Set FirstChunk=0 + Set LastChunk=arChunk + ;If $G(blnTest,1) Set LastChunk=3 ; Test with 3 chunks only + For j=FirstChunk:$$$MaxDocsPerTask:LastChunk Do Quit:($$$ISERR(sc)) + . Set sc=$$tpiRenderPrintChunksSub(KLNr,j,$$$Min(j+$$$MaxDocsPerTask,LastChunk+1)) + . Set:($$$ISOK(sc)) CntTasks=CntTasks+1 Quit tpiRenderPrintChunksSub(KLNr,ChunkStart,ChunkStop) Set oPLSettings=##class(BL.Flow.Proxy.pxPrijsLijstSettings).%New() Do oPLSettings.SDInit(KLNr) Do oPLSettings.SDSave("","") Set oPLSettings.BeperkProducts="" ; wordt pas in de subroutine ingevuld. + Set oPLSettings.VanMaand=$$CALCDATE^vhDTyp(,"M",-1) + Set oPLSettings.CallBackProduct="" + // Init BL - Set blPrsL=..Instantiate() - Do blPrsL.Init(KLNr,) - Set blPrsL.lbDocs=$LB(KLNr) - Set blPrsL.TransformType="PS" - Set blPrsL.lbPPODKeywords=$LB() - Do blPrsL.XsltParams.SetAt(1,"pWithLogo") - Do blPrsL.XsltParams.SetAt(1,"pImageColVisible") - Set:($L($G(PrinterName))) blPrsL.Printer=PrinterName + ;Set blPrsL=..Instantiate() + ;Do blPrsL.Init(KLNr,) + ;Set blPrsL.lbDocs=$LB(KLNr) + ;Set blPrsL.TransformType="PS" + ;Set blPrsL.lbPPODKeywords=$LB() + ;Do blPrsL.XsltParams.SetAt(1,"pWithLogo") + ;Do blPrsL.XsltParams.SetAt(1,"pImageColVisible") + ;Set:($L($G(PrinterName))) blPrsL.Printer=PrinterName + Set:($G(PrinterName)="") PrinterName=..#PrinterDFL + Set Dir="\\WV_XP\D$\Temp\FOP_pl\" + Set FName="pl_TEST001_" // Create FopTask - Set Task=blPrsL.CreateFopTask("DocRenderAndPrint",,) + Set:(blnPrint) Task=..CreateFopTask("DocRenderAndPrint",,) + Set:('blnPrint) Task=..CreateFopTask("DocRenderAndFile",,) // Loop through arChunk Set i="" For Set i=$O(arChunk(i)) Quit:(i="") Do:(i' @@ -647,8 +657,6 @@ Set oSettings.TekstNa=$LB("PL:TEKST:GELDIGVANAF") Set oSettings.TekstVoor=$LB("PL:TEKST:GELDIGVANAF","PL:TEKST:ORGALUX2008") Set oSettings.CallBackProduct="CF`BL.Flow.Proxy.pxPrijsLijst`Check2008" - - Set oSettings.BeperkProducts="" ; $LB(,,) Quit oSettings ]]> @@ -774,27 +782,117 @@ -Geeft de standaard Keywords terug op basis van de opgegeven AnalyseRoutine. -Deze method kan in de afgeleide klasse overschreven worden voor specifieke uitbreidingen. +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 @@ -818,6 +916,9 @@ Do:(Target="File" ) bfdSetFile() Do:(Target="FileWWW" ) bfdSetFileWWW() Do:(Target="FileWWWUrl") bfdSetFileWWWUrl() + Do:(Target="TempFTP" ) bfdSetTempFTP() + Do:(Target="Mail" ) bfdSetMail() + Do:(Target="TempMail" ) bfdSetTempMail() Quit bfdSetFile() @@ -833,7 +934,7 @@ ;Set values If (FName="")||(Dir="") Do . Set:(Dir="") Dir=##class(BL.Sys.FOP.CommonTasks).LoggedOnUserPath() - . Set:(FName="") FName=..DefaultPDFNameCM($G(DocNr,"000000")) + . Set:(FName="") FName=..DefaultPDFName($G(DocNr,"000000")) . Set FilePath=$$$FullPath(FName,Dir) Else Do . Set:(FilePath="") FilePath=$$$FullPath(FName,Dir) @@ -847,7 +948,7 @@ // OUTPUT: FName,Dir,FilePath Set Dir=$$$FOPInetPubDir_$$$SubDir Set FName=##class(%File).GetFilename($G(FilePath)) - Set:(FName="") FName=..DefaultPDFNameCM(DocNr) + Set:(FName="") FName=..DefaultPDFName(DocNr) Set FilePath=##class(%File).NormalizeDirectory(Dir)_FName Quit bfdSetFileWWWUrl() @@ -856,6 +957,37 @@ // OUTPUT: FilePath Set FilePath=$$$FOPInetPubURL_$$$SubDirURL_FName Quit + +bfdSetTempFTP() + // INPUT : FName or empty + // Dir fixed + // OUTPUT: FilePath ;The returned 'Dir' can be local path to FOP;the 'Dir in the FilePath' is the network-converted 'Dir' + Set Dir="E:\FOP\PDFTemp" + Set FtpSrcDir=$$$CvtFopE2Ntw(Dir) + ;Set Dir=FtpSrcDir ;optional: use same value (network path) to address file from both servers (FOP and Caché0x) + Set:($G(FName)="") FName=..#DocCode_"_"_DocNr_"_"_$ZD($H,8)_".pdf" + Set FilePath=##class(%File).NormalizeDirectory(FtpSrcDir)_FName + Quit + +bfdSetMail() + // INPUT : FName or empty + // No Dir needed + // OUTPUT: FName + Set:($G(FName)="") FName=..#DocCode_"_"_DocNr_"_"_$ZD($H,8)_".pdf" + Quit + +bfdSetTempMail() + // INPUT : FName or empty, Dir or empty (defaulted if empty) + // OUTPUT: FName,Dir,FilePath ;Dir and FilePath : network-converted 'Dir' + // OPM: FilePath wordt zowel gebruikt bij RenderToFile (WS) en LoadFile (WS) in FOP, als bij DeleteFile from Caché-task + d WL^vhDBG("BuildFileData IN ("_Target_"): "_$G(FName)_" - "_$G(Dir)_" - "_$G(FilePath)) + If $G(Dir)="" Do + . Set Dir=$$$PDFMailDirNtw + . ;Set Dir=$$$PDFMailDir ;Set Dir=$$$CvtFopE2Ntw(Dir) + Do bfdSetMail + Set FilePath=##class(%File).NormalizeDirectory(Dir)_FName + d WL^vhDBG("BuildFileData OUT ("_Target_"): "_$G(FName)_" - "_$G(Dir)_" - "_$G(FilePath)) + Quit ]]>