Deze klasse kan een collectie van documenten verwerken en groeperen, door gebruik te maken van de PPOD. Is hoofdzakelijk bedoeld voor het faxen en mailen van interne admin-documenten. Bij fax wordt het voorblad afzonderlijk ge-rendered en in de PPOD(group) toegevoegd, na berekening v/h totaal aantal pagina's. serial BL.Sys.FOP.Common 1 %SerialObject één of meerdere Docs kunnen tesamen ge-faxed of ge-mailed worden de toegevoegde Docs zullen ge-rendered worden. emDoc array Verplicht veld %String Type van de gegenereerde documenten: PDF of PS %String CreatieTijdstip in $H-formaat. Kan gebruikt worden om bvb. de tijdsaanduiding in een filename toe te voegen. %String KlantNr of LevNr. Wordt gebruikt ter controle/validatie van de toe te voegen documenten. %Integer Default=1; kan afgezet worden indien geen voorblad gewenst. %Boolean Het toegevoegde Doc zal als voorblad ge-rendered worden. Deze property houdt het proxy-voorblad in emDoc.DataProxy bij. De gegevens van het proxy-voorblad worden dus opgenomen in de storage. emDoc Begeleidende info: bij fax te dienen als voorblad; bij mail te dienen als subject+body Deze property houdt het proxy-voorblad tijdelijk vast (transient). Zie ook property RenderVoorblad, waar het voorblad bewaard wordt (persistent). %SerialObject 1 Set emDoc=DocMulti.AddMainDoc("XML","URL;c:\DataDir\Sample.xml","PDF","TestDocBase","N",,) DataType:%String="XML",DataRef:%String,TransformType:%String="PDF",Template:%String,Taal:%String,Options:%String,OptionsPDF:%String emDoc Nieuwere versie om RenderDoc (Data+Info) aan de DocMulti toe te voegen Voor de opties van DataIn etc, zie method emDoc.SetRenderData(...) Set emDoc=DocMulti.AddRenderDoc("REF","URL;c:\DataDir\Sample.xml","XML","PDF","TestDocBase",$LB(),$LB(),"N",,) DataInVia:%String,DataIn,DataType:%String="XML",Template:%String,TransformType:%String="PDF",lbPPODKeywords:%List,lbXsltParams:%List,Taal:%String,Options:%String,OptionsPDF:%String emDoc Voegt een Doc toe aan de array Docs. Doc kan meegegeven worden of leeg. In het laatste geval wordt een nieuw doc geïnstantieerd. Doc:Sys.FOP.emDoc emDoc DataInVia:%String,DataIn,DataType:%String="XML",Template:%String,TransformType:%String="PDF",lbPPODKeywords:%List,lbXsltParams:%List,Taal:%String,Options:%String,OptionsPDF:%String emDoc Vult de RenderVoorblad propertie in met het Doc-object. Indien Doc leeg is wordt een nieuw doc geïnstantieerd. Doc:Sys.FOP.emDoc emDoc +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /// | Methods for building the complete DocMulti -object | /// | | /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /// Opbouwen van het DocMulti object voor een Fax-task. - pxVoorblad moet vooraf gecreeerd worden - lbDocTypes,lbDocDefs bevat gelijk aantal ListItems, DocType het type document (bvb. FACTUUR) en DocDefs bevat de lbDefs Geeft het emDocMulti-object terug als resultaat van de method ( + Status als .local doorgeven) 1 %RegisteredObject Genereert een unieke FaxName (PPODGroup) op basis van de gegeven parameters en een teller (Suffix) Zie method ..GenerateFaxName() 1 KLNr:%String,User:%String,Time:%String %String Genereert een FaxName (PPODGroup) op basis van de gegeven parameters Indien User=leeg/undefined, dan GetCurrentUser; User="~" dan geen user in de FaxName 1 KLNr:%String,User:%String,Time:%String="",Suffix:%String %String Genereert een FaxFilePath OrigFilePath:%String %String Opbouwen van het DocMulti object voor een Mail-task. - pxVoorblad moet vooraf gecreeerd worden; de gegevens worden gebruikt als mail-data: to, subject, body, ...) - lbDocTypes,lbDocDefs bevat gelijk aantal ListItems, DocType het type document (bvb. FACTUUR) en DocDefs bevat de lbDefs Geeft het emDocMulti-object terug als resultaat van de method ( + Status als .local doorgeven) 1 %RegisteredObject Voegt RenderData toe via een 'List of DocDefs' Aangezien ieder DocType zijn eigen validatie EN eigen Template(name) heeft, moet voor ieder type de specifieke klasse opgeroepen worden. lbDocTypes:%List,lbDocDefs:%List,KLNr:%String,TFType:%String,lbKeywordsPPOD:%List,pWithLogo:%String %Status +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /// | Methods for intermediate processing: | /// | | /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /// De RequestInfo params toevoegen voor het Renderen van het Voorblad. De Task is verplicht door te geven en moet een DocMulti bevatten. Zie ook method SetVoorbladPageCount() 1 Task:Sys.FOP.Task,SeqItem:Sys.FOP.emSeqItem,blnUpdatePageCount:%Boolean %Status Property PageCount invullen in het proxy-object pxVoorblad : tellen van het aantal pagina's reeds aanwezig in de ppod (voor PPODGroupName). Deze telling is slechts zinvol wanneer de TaskSequence reeds "in verwerking" is, m.a.w. wanneer de voorgaande SeqItems reeds afgewerkt zijn (lees: de Docs reeds naar PPOD ge-rendered zijn) SeqItem:Sys.FOP.emSeqItem,blnUpdatePageCount:%Boolean=0 %Status Property PageCount invullen in het proxy-object pxVoorblad. De Task is verplicht door te geven en moet een DocMulti bevatten. Zie ook method SetVoorbladPageCount() 1 Task:Sys.FOP.Task %Status Property PageCount invullen in het proxy-object pxVoorblad : tellen van het aantal pagina's reeds aanwezig in de ppod (voor PPODGroupName). Deze telling is slechts zinvol wanneer de TaskSequence reeds "in verwerking" is, m.a.w. wanneer de voorgaande SeqItems reeds afgewerkt zijn (lees: de Docs reeds naar PPOD ge-rendered zijn) %Status 0) Doc.XSLParameters=Doc.XSLParameters_$LB("pPageCount="_pxVoorblad.PageCnt) Quit $$$OK ]]> %String 1) { Set ToString = ToString_"[Doc"_i_"] " } Set ToString = ToString_Doc.ToString() Set ToString = ToString_$C(13,10) } Quit ToString ]]> %Library.CacheSerialState emDocMultiState ^Sys.FOP.emDocMultiS "Sys.FOP.emDocMulti" Docs KlantNr CreatedH MetVoorblad PPODGroupName RenderVoorblad PPODOutputType