-
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 *