SpoolPdfApi

llamada a SpoolPdf desde un programa (batch), sin que se presenten pantallas al usuario, definiendo desde el propio programa el spool a enviar, p.e. en un programa imprimir un cierto listado como factura o lo que sea y enviarlo a pdf y email automaticamente.

  • Tener en la lista cpi@pub y cpi@api
  • El programa a llamar es AP026CL
  • IMPORTANTE: Este API se puede simplificar un poco llamando al programa AP026LAST si lo que se quiere es enviar por pdf + email el ultimo spool impreso en el mismo trabajo.

parametros

  • MODE10 = EMAILPDF
  • USER10 = nombre de usuario del job del spool, (*USER toma el usuario activo al llamar a la API)
  • SGN10 = blanks o firma (FicheroSgn)
  • splFile10 = nombre fichero spool, como QSYSPRT
  • ex10 = blanks - PENDIENTE usar para borrar el spool tras procesarlo
  • además de estos parametros hay que completar otros en la *LDA.

datos a llenar en LDA

  • limpiar posiciones 401 a 1000
  • puede salvarse antes este buffer y reponerse despues de la llamada
  • 478,03 *OA
  • 481,10 nombre del Coprint Server
  • 631,05 *AUTN
  • 636,04 numfile, 0000 para *last
  • 641,10 jobname (nombre del trabajo del spool)
  • 651,06 jobnum (numero del trabajo del spool)
  • 801,50 carpeta para salvar el pdf, o blancos
  • 851,50 email destino (admite varios separados por ; en los 50x si caben)
  • 901,20 nombre fichero pdf sin la extension (se admiten algunas variables VarSys)
  • 921,30 asunto del e-mail
  • 951,50 texto del e-mail (a esto se le adjunta el FicheroSgn de “firma”)

Si el email se envia con CpiMail tener en cuenta el cpimail.ini para Envios por Email y el posible fichero de “firma” (sgn).

Ejemplo de uso

un CL ejemplo de envio de un spool (se imprime la libl en el cl) usando la api:

PGM                                               
DCL &JOB     *CHAR 10                             
DCL &USER    *CHAR 10                             
DCL &NBR     *CHAR  6                             
DCL &BL10    *CHAR 10 VALUE(' ') /* 10 blancos */
DCL &TX80    *CHAR 80
DCL &cServer *CHAR 21                             
DCL &eMail   *CHAR 21                             
RTVJOBA    JOB(&JOB) USER(&USER) NBR(&NBR)        /* variables del trab */
OVRPRTF    FILE(QPRTLIBL) HOLD(*YES) USRDTA(LIBL) /* retener el spool */
DSPLIBL    OUTPUT(*PRINT)                         /* imprimir la *LIBL */
                                                  
ADDLIBLE CPI@PUB                                  
  MONMSG CPF2103 EXEC(RCVMSG MSGTYPE(*LAST))        
ADDLIBLE CPI@API                                  
  MONMSG CPF2103 EXEC(RCVMSG MSGTYPE(*LAST))        

/* pide pc-coprint-server y destino de correo */
chgvar &tx80 'CoPrint Server Name...:'    
  CALL @INP21W PARM('R6W83' &tx80 &cServer) 
  if (&cServer *EQ '*CF03') Then(Return)    
chgvar &tx80 'e-mail...:'                 
  CALL @INP21W PARM('r9w38' &tx80 &eMail)   
  if (&eMail *EQ '*CF03') Then(Return)                  
                                                             
CHGDTAARA  DTAARA(*LDA (401 600)) VALUE(' ')                 
CHGDTAARA  DTAARA(*LDA (478   3)) VALUE('*OA')               
CHGDTAARA  DTAARA(*LDA (481  10)) VALUE(%sst(&cServer 1 10)) 
CHGDTAARA  DTAARA(*LDA (631   5)) VALUE('*AUTN')             
CHGDTAARA  DTAARA(*LDA (636   4)) VALUE('0000')              
CHGDTAARA  DTAARA(*LDA (641  10)) VALUE(&JOB)                
CHGDTAARA  DTAARA(*LDA (651   6)) VALUE(&NBR)                
CHGDTAARA  DTAARA(*LDA (801  50)) VALUE('\\IBMI\PDF\')   
CHGDTAARA  DTAARA(*LDA (901  20)) VALUE('SpoolPdf_&&DT&&')  
CHGDTAARA  DTAARA(*LDA (851  50)) VALUE(&eMail)

CALL AP026CL ('EMAILPDF' '*USER' &BL10 'QPRTLIBL' &BL10)
EndPgm                                                       

Mas facil: AP026LAST

IMPORTANTE: Este API se puede simplificar un poco llamando al programa Ap026Last api para pdf+email el último spool si lo que se quiere es enviar el ultimo spool impreso en el mismo trabajo.

 
/kunden/homepages/8/d674751560/htdocs/cpies/doc/data/pages/coprint/spoolpdfapi.txt · Última modificación: 4/04/2017 06:31 (editor externo)
[unknown button type]
 
Excepto donde se indique lo contrario, el contenido de este wiki esta bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki