easy Api Word Programa Ejemplo

Easy Api Word se puede llamar con un simple call, pasando parámetros.
Básicamente permite tener un documento Word base (la plantilla) con huecos/variables rellenables desde el programa.
Por ejemplo, podemos tener un documento plantilla con variables tal como:
El dia &fecha& estimamos entregarle su pedido &pedidonum& …
y simplemente asignar contenido a esas variables fecha y pedidonum en el programa.


Parte de API Word.


Programa ejemplo

Crear un fuente RPGIV (miembro tipo rpgle) y pegar trozos de lineas desde este ejemplo:

  • se pueden enviar facilmente 32 variables al documento
    • nombre de la variables (respetar mayusc/minusc, igual que &xxxx& en el docx) ponerla en arrVar(n) sin los &
    • contenido en arrVarC(n) como en el ejemplo
  • Para enviar el proceso a un servidor Win pc-Coprint poner su nombre en pCoprint, o bien pasarle *DIRECT para generar documento en el pc local de la emulacion
    • (necesita licencia extra)
  • en pBaseDoc poner el documento base, la plantilla .docx Word que tiene dentro las variables &xxxxxx&
    • Este documento docx debe situarse en una carpeta del as400 accesible, tal como el ejemplo '/tmp/demoWord.docx'
    • El tema de acceso a IFS del as400 a veces es muy puñetero por temas de seguridad (userId,Password…) ver Seguridad IFS
    • evitar espacios y caracteres raros en nombres de fichero, usar Minusc, Mayusc, guion y guion bajo y poco mas.
  • en pSaveDoc poner el path del documento a grabar
    • poner la extension según se desee grabar un pdf o un docx
    • Este fichero final puede estar en cualquier sitio accesible por el pc-Coprint (o pc local en caso de *DIRECT)
    • evitar espacios y caracteres raros en nombres de fichero, usar Minusc, Mayusc, guion y guion bajo y poco mas.
  • En pMail se puede definir una direccion de correo destino, incluso dos separando con ; tal como uno@domi.com;dos@domi.com
    • El dato admite parametros extra separados por coma tal como
      • uno@domi.es,Asunto,firmaOpcional,texto
      • para no usar firma sería uno@domi.es,Asunto,,texto, copia cc, copia oculta cco
      • ver la operación ;;Email en Operaciones CoPrint
  • pOpt Opciones especiales:
    • EMP para enviar email del pdf (cuando el save primario es pdf) con los parametros contenidos en el dato pMail
    • EMD para enviar email del docx (cuando el save primario es docx) con los parametros contenidos en el dato pMail
    • PDF para generar pdf ademas cuando pSaveDoc se dice .docx (o sin extension)
 * para parametros de llamada 
D arrVar          s             20    DIM(32)                                              
D arrVarC         s            512    DIM(32)                                              
D arrScript       s            256    DIM(32)                                              
                                                                                           
D pBaseDoc        s            256    inz('/tmp/DemoWord.docx')
D pSaveDoc        s            256    inz('/tmp/demoWord-&&d-t&&.pdf')
D apiWord         s             21    inz('CPI@API/AP024')                 pgm easy apiWord
                                                                                           
C/free                                                                                     
      arrVar(1) = 'varUno';                  
        arrVarC(1) = '--Test variable 1--';  
      arrVar(2) = 'varDos';                  
        arrVarC(2) = 'VAR-NUM2';             
      arrVar(3) = 'varTres';                 
        arrVarC(3) = 'VAR-Tres';             
      arrVar(4) = 'varCuatro';               
        arrVarC(4) = 'VAR-NUM4 y tal y tal'; 
      arrVar(5) = 'TextoFinal';              
        arrVarC(5) = 'api Word es parte de api Office, un producto de '+  
                     'CPI Software que permite generar documentos Word.';                                                                    
 /end-free                                                                      
C                   CALL      apiWord                                                    
C                   PARM                    pBaseDoc        256            plantilla.docx
C                   PARM      'COPRIN3'     pCoPrint         10            pc-CoPrint Server              
C                   PARM                    pSaveDoc        256            docum a salvar .pdf o .docx             
C                   PARM                    arrVar                         variables a buscar              
C                   PARM                    arrVarC                        contenido a reemplazar              
C                   PARM      ''            pMail           256            opcional, email       
C                   PARM      ' '           pOpt            256            opciones              
C                   PARM                    arrScript                      uso reservado
C                   PARM      ''            pScriptF        256            uso reservado
 *                                                                                       
C                   MOVE      *ON           *inLR                                        

El nombre de fichero a salvar admite algunas variables:

  • &&d-t&& lo cambia por fecha-hora, tal como yymmdd-hhmmss
  • &&D_T&& igual pero con guion bajo
  • &&DT&& igual pero sin guion
  • &&D6&& yymmdd o &&D8&& yyyymmdd
  • &&T6&& hhmmss
  • &&MD&& mmdd
  • &&YM&& yymm
  • &&DC&& carpeta “mis documentos”
  • &&TM&& carpeta temporal
  • &&PC&& nombre del pc
  • &&US&& nombre del usuario

8-o IMPORTANTE:

  • El tema de acceso a IFS del as400 a veces es muy puñetero por temas de seguridad (userId,Password…) ver Seguridad IFS
  • El pc donde corra apiWord necesita tener acceso a ifs400, ver bien el enlace sobre Seguridad IFS y comprobar que se tenga acceso al menos a la carpeta /tmp del as400.

 
/kunden/homepages/8/d674751560/htdocs/cpies/doc/data/pages/api_office/apiwordprogramaejemplo.txt · Última modificación: 3/04/2019 12:35 por admin
[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