Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

download Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

of 10

Transcript of Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    1/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    Share

    inShare

    PDF (Portable Document Format) es un estándar sólido y universalmente aceptado para visualización eintercambio de información multiformato.

    ¿Qué posibilidades ofrece AP para generar arc!ivos en formato PDF" #$isten varias opciones% sobretodo en las versiones m&s nuevas% para producir salida en formato PDF desde un sistema AP.

    Es interesante conocerlas dado que difieren en su ámbito de aplicación y limitaciones.

    El tip eneración de archivos PDF desde SP!!" en S#P$ le mostrará las diferentes opciones de %eneración de PDFs y un e&emplo con

    el uso de una de las alternativas.

    "a tecnolo%'a más reciente para la creación de formularios en S#P$ es la solución AP 'nteractive Forms b( Adobe. Esto permite

    crear formularios interactivos ( formularios de impresión basados en Adobe PDF para optimiar los procesos de impresión de las

    aplicaciones.

    El punto interesante en el uso de esta tecnolo%'a es su compatibilidad con las personalidades ##P y *#+# del S#P ,et-eaver

     #pplication Server. #ctualmente$ el uso de los formularios de impresión basados en PDF$ puede reemplaar a los martForms$ del lado

     ##P$ y además$ potenciar a las)eb D(npro$ del lado de *ava$ as' como a las )eb D(npro for ABAP en la personalidad ##P$

    usando formularios interactivos.

    Para tal efecto esta nueva solución S#P nteractive Forms by #dobe (disponible a partir de S#P ,et-eaver /0) utilia el Adobe

    +iveC(cle Designer $ que es una herramienta de dise1o que permite la creación de formularios utiliando 2 Elements$ de manera muy

    intuitiva y fácil de utiliar$ y está totalmente inte%rado en el ##P 3or4bench y en el ,et-eaver Developer Studio.

    #n este tip veremos la alternativa de la creación de un formulario basado en PDF ( cómo usarlo desde un programa impresor

    ABAP. Desarrollaremos el e&emplo desde el ABAP )or,benc!.

    5omo se menciona en párrafos anteriores$ tener en cuenta que también podr'an %enerarse formularios interactivos utiliando S#P

    nteractive Forms by #dobe$ o tambi6n conocido como #dobe Forms$ desde el cliente ,et-eaver Developer Studio$ como herramienta de

    desarrollo del 7lado de *#+#8. #sta alternativa no ser& desarrollada en el presente tip.

    Cómo crear el formulario Adobe

    "os formularios de impresión basados en #dobe son parte de S#P nteractive Forms by #dobe y son usados para imprimir en los

    sistemas S#P.

    2n formulario #dobe PDF consta de tres partes$ que son todas necesarias para la creación del mismo9

    'nterfase- 5ontiene los parámetros (tablas$ estructuras$ etc) que un formulario podrá utiliar. Es independiente del formulario.

    Conte$to- 5ontiene :nicamente los parámetros de la interfase que son requeridos en un determinado formulario.

    +a(out- Es el dise1o del formulario.

    Pa%. ; de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/175-generacion-de-pdf-en-sap-desde-spool-y-otros.htmlhttp://www.teknodatips.com.ar/sap-netweaver/175-generacion-de-pdf-en-sap-desde-spool-y-otros.htmlhttp://www.teknodatips.com.ar/sap-netweaver/175-generacion-de-pdf-en-sap-desde-spool-y-otros.htmlhttp://www.teknodatips.com.ar/sap-netweaver/175-generacion-de-pdf-en-sap-desde-spool-y-otros.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    2/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    Pasos a seguir para la creación del formulario PDF Adobe

    ;. #cceder a la transacción SFP – Form Builder.

    . 5ompletar la si%uiente pantalla con la descripción de la interfase. "ue%o$ %rabar seleccionando Save9

    2na ve creada la interfase$ se debe indicar cuales serán los parámetros de entrada y salida que mane&ará la misma. Esta etapa es

    similar al mane&o de parámetros de una función. # continuación se muestra la interfase creada anteriormente$ con tres parámetros de

    Pa%. < de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    3/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    entrada9

     

    Si se desea modificar la interfase en esta etapa$ los pasos son los si%uientes se%:n corresponda9

     

    ? @acer doble clic4 sobre 'mport y a%re%ar en la parte derecha de la pantalla todos los parámetros de entrada que tendrá la interfase.

    ? Aepetir dicha operación para los parámetros de eBport $ las eBcepciones$ datos %lobales$ etc.

    ? En 'nitialization$ a%re%ar códi%o ##P de ser necesario (por e&emplo para buscar datos de customiin% necesarios en el formulario).

    2na ve realiadas las modificaciones se debe grabar y activar .

    C. 2na ve %enerada la interfase$ acceder nuevamente a la transacción SFP$ para crear el formulario. Ele%ir un nombre para el formulario

    y presionar Create9

     

    Pa%. > de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    4/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    . 5ompletar la descripción del formulario y asociarlo con una interfase. "ue%o seleccionar Save:

    . 2na ve creado el formulario$ se debe asociar un conteBto para el mismo. En la solapa Conte$taparecerán sobre la iquierda todos losparámetros que se declararon en la interfase. De dicha interfase se deberán seleccionar sólo los parámetros que se utiliarán en el

    formulario. Para ello$ arrastrar hacia el conteBto (parte derecha de la pantalla) los parámetros que se deseen$ tal como lo muestra la

    fi%ura si%uiente9

    . 2na ve dise1ado el conteBto del formulario$ Grabar y activar .

    G. "ue%o$ dise1ar la ima%en de salida que tendrá el formulario$ a trav6s de la solapa +a(out9

    Pa%. 0 de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    5/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    En la solapa P&ginas de raba/o (o ody Pa%es) se dise1ará el formulario. "as principales herramientas para ello son las 7Paletas8$ que

    se pueden ubicar libremente en la pantalla. De no estar visibles$ se las puede a%re%ar desde el men:$ yendo a Paletas y seleccionando la

    paleta deseada9

    Paleta *erar0u1a 2 3ista de Datos- En la vista de datos aparecerán todos los parámetros definidos en el conteBto y

    simplemente habrá que arrastrarlos hacia la pá%ina de traba&o tal como muestra la fi%ura anterior.

    Paleta 4b/eto- Se definen al%unos atributos del ob&eto tales cómo bordes$ presentación$ si es de sólo lectura$ obli%atorio$ etc.

     #demás en dicha paleta se encuentra el enlace del campo al parámetro del conteBto$ es decir qu6 parámetro del conteBto está asociado

    a cada campo del formulario.Paleta Fuente 2 P&rrafo- Permite definir la fuente (tipo$ color) y el estilo de párrafo (centrado$ alineado$ etc.) para cada ob&eto

    del formulario.

    Paleta Biblioteca- 5ontiene todos los elementos que se pueden arrastrar al formulario tales cómo radiobuttons$ campos de

    teBto$ botones$ l'neas$ códi%os de barra$ etc.

     

    En el caso de querer mostrar una tabla en el formulario$ desde la paleta “Vista de Datos” se debe arrastrar la tabla a la pá%ina de

    traba&o como cualquier otro componente9

     

    Pa%. C de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    6/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    En la pá%ina de traba&o seleccionar la tabla e ir a la paleta 4b/eto completando con los si%uientes datos9

     

    Por :ltimo seleccionar en la pá%ina de traba&o el tipo tabla dentro de la tabla (tener cuidado que la tabla y el tipo tabla están muyencimados y es dif'cil distin%uirlos) y completar los si%uientes datos en la paleta 4b/eto9

    Pa%. de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    7/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    En la solapa 3ista Previa del PDF se puede visualiar el dise1o del formulario completo.

    ;/. Por :ltimo$ grabar y activar .

    Es importante tener en cuenta que para poder desple%ar el formulario en la vista previa$ es necesario la confi%uración de los Adobe

    Document ervices 5AD6 del lado del AP 7et8eaver Application erver *A3A y la coneBión desde ABAP con el sistema servidor *A3A que ofrece los #dobe Document Services.

    "a confi%uración de #DS está fuera del alcance de este tip. Para detalles sobre la confi%uración de #dobe Document Services$ referirse al

    @elp de S#P y buscar por9 Adobe Document Services Configuration Guide.

    Programa de impresión para el formulario

    El si%uiente códi%o de pro%rama escrito en ##P$ especifica cómo imprimir ese formulario a una impresora.

    Para poder invocar al formulario desde un programa impresor ABAP se deberán se%uir los si%uientes pasos9

    ;) +lenar las tablas% estructuras% etc. 0ue se pasar&n cómo par&metros al formulario. #n este e/emplo se llenaron latabla pt_reserv  ( la estructura pa_header.

    internalIerror K 0

    !H@EAS K C.

    F sy?subrc = /.

    Pa%. de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    8/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    QESS#E D sy?ms%id HJPE sy?ms%ty ,2QEA sy?ms%no

    3H@ sy?ms%v; sy?ms%v< sy?ms%v> sy?ms%v0.

    E,DF.

     

    @6 4btener el nombre din&mico del formulario-

     

    5#"" F2,5H!, OFPIF2,5H!,IQ!D2"EI,#QEO

    EMP!AH,

    iIname K ORF!AQI+@O

    QP!AH,

    eIfuncname K pIfuncIname.

     

    6 +lamar al formulario con el nombre obtenido% pas&ndole los par&metros con los datos (a

    cargados9

     

    D#H#9 lIdocparams HJPE sfpdocparams$

    lIformoutput HJPE fpformoutput.

    lIdocparams?lan%u K OEO.

    lIdocparams?fillable K cIon.

     

    5#"" F2,5H!, pIfuncIname

    EMP!AH,

    ;bcd-bdocparams K lIdocparams

    iI%tIreserv K ptIreserv

    %aIheader K paIheader 

    QP!AH,

    ;bcd-bformoutput K lIformoutput

    Pa%. de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    9/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    EM5EPH!,S

    usa%eIerror K ;

    systemIerror K <

    internalIerror K >

    !H@EAS K 0.

     

    6 Cerrar el procesamiento del formulario-

     

    5#"" F2,5H!, OFPI*!I5"!SEO

    EM5EPH!,S

    usa%eIerror K ;

    systemIerror K <

    internalIerror K >

    !H@EAS K 0.

    F sy?subrc = /.

    QESS#E D sy?ms%id HJPE sy?ms%ty ,2QEA sy?ms%no

    3H@ sy?ms%v; sy?ms%v< sy?ms%v> sy?ms%v0.

    E,DF.

    e0uisitos técnicos

    Para poder utilizar la !erramienta de Adobe Forms 5AP 'nteractive Forms b( Adobe6 es necesario contar con los si%uientes

    componentes de soft-are9

    Del lado del servidor:

    ? S#P ,et-eaver #pplication Server  *A3A .0/ o superior (en todos los escenarios posibles$ es decir$ es SEQPAE necesario)

    ? S#P ,et-eaver #pplication Server ABAP .0/ o superior (sólo en el caso de que la solución sea desarrollada con este len%ua&e)

    ? Adobe Document ervices T 5onfi%urado en el Qotor *#+#. En el S#P ,et-eaver #pplication Server ##P (desde donde se

    desarrolló el formulario) es necesario establecer el v'nculo con el S#P 3#S *#+# para poder acceder a los Adobe Document

    ervices 0ue corren el el ervidor *A3A)

    ? Adobe Credencials (Sólo para el caso de usar formularios interactivos)

    Del lado del cliente:

    ? S#P ,et-eaver Developer Studio ó S#P 2 con #dobe "ive 5ycle Desi%ner (lo que se utilió en el caso del tip)

    Pa%. G de ;/

    http://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.htmlhttp://www.teknodatips.com.ar/sap-netweaver/8-como-crear-formularios-de-impresion-basados-en-pdf-e-imprimirlos-desde-un-programa-abap.html

  • 8/17/2019 Cómo Crear Formularios de Impresión Basados en PDF e Imprimirlos Desde Un Programa ABAP

    10/10

    Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

    ? #ctive 5omponent Frame-or4 (para 3eb Dynpro nte%ration)

    ? #dobe #crobat Aeader ./.< o superior$ para poder mirar el PDF.

    Para tener en cuenta

    "a posibilidad de definir formularios interactivos con S#P nteractive Forms by #dobe$ no se detalla en el tip presente.

    "os formularios interactivos en formato PDF posibilitan a los usuarios cargar datos en el formulario presentado en la pantalla

    y guardar  esas entradas en formato MQ"$ para lue%o$ cuando el sistema S#P reciba ese formulario PDF$ pueda eBtraer los datos del

    mismo y procesarlos.

    E&ecutar el PDF %enerado$ ya sea para formularios interactivos o formularios de impresión basados en PDF (como en el caso

    del tip)$ involucra SEQPAE el uso de Adobe Document ervices 5AD6$ componente de soft-are incluido en la solución para

    formularios que estamos analiando. Esta componente provee los 3eb Services que son usados para la %eneración de formularios PDF

    en tiempo de e/ecución ( se e/ecutan en el motor *