Вы находитесь на странице: 1из 6

24/8/2016 CmocrearelprogramaimpresorparalaejecucindeunSmartformenSAP

top-menu
Sobre Teknoda Contacto

Buscar... enTeknodatips

Home SAP Netweaver AS/400 System i Cursos WORKSHOPS BLOGS

http://www.teknodatips.com.ar/sapnetweaver/226comocrearelprogramaimpresorparalaejecuciondeunsmartformensap.html 1/6
24/8/2016 CmocrearelprogramaimpresorparalaejecucindeunSmartformenSAP

Est aqu: Inicio SAP Netweaver Cmo crear el programa impresor para la ejecucin de un Smartform en SAP

Lea en SAP Netweaver . . . SAP Netweaver / ABAP Notas tcnicas / Tips / Tutorials
DesanudandoConceptos:
SAPHANA
Cmo crear el programa impresor para la ejecucin de un Smartform
Nohaynewsletter,conferenciao en SAP
eventodelambienteERPqueenlos
ltimosmeseshayaahorradodetalles Aprenda paso a paso a crear el programa impresor para ejecutar un Smartform en
yespeculacionessobreelnuevo SAP.
paradigma:SAPHANA.
La herramienta Smartforms provista por SAP est enfocada en el desarrollo de Suscribirse a Teknodatips
En medio del marketing hype, es formularios, por ejemplo el de una factura, que posteriormente ser impresa de algn
siempre difcil para los que estamos modo. Como medio de salida, los Smartforms soportan una impresora, un fax, e-mail o
en el ruedo decodificar lo esencial de Internet (usando la salida XML). Recibir un mail cada vez que se
las nuevas tecnologas, as que aqu
Existen otras herramientas de SAP que posibilitan lo mismo, como Sapscript y Adobe publique un nuevo tip.
va nuestro aporte para ayudar a una
Forms. Seleccionar AL MENOS un
cabal y conceptual comprensin de
SAP HANA. casillero:
Para poder desarrollar un Smartform, es necesario previamente conocer algunos conceptos
importantes:
LEER ESTE ARTICULO >>>>> AS/400 Tips
El desarrollo de un Smartform consta de dos fases:
SAP/ABAP Tips
el diseo del formulario (layout)
y su invocacin desde un programa ABAP. A este programa se lo denomina Programa
Impresor o Programa de control. Es necesario tener creado este programa antes de Nombre
poder utilizar el Smartform. Si bien la lgica implementada en este programa podra Correo
estar incorporada en el propio diseo del smartform, es habitual en la mayora de las
implementaciones de Smartforms, contar con un programa impresor especfico que
Suscribirse
contenga esa lgica, "separada" del diseo especfico del formulario.

El programa impresor o programa de control puede ser: desarrollado desde cero o


adaptado de alguno existente.

Este programa, adems de encargarse de realizar la llamada al Smartform, puede contener


la lgica necesaria para la obtencin de la informacin que el Smartform va a utilizar (por
ejemplo, puede realizar consultas a la base de datos para extraer los datos a mostrarse en el
Smartform). Los datos extrados por el programa impresor se almacenarn en estructuras
de datos (tabla interna, variables, etc.), y ser enviada al Smartform para que ste pueda
usar esa informacin.

Sin embargo, como se mencion en prrafos anteriores, el mismo diseo del Smartform
podra contener esa lgica para la obtencin de informacin que l mismo va a utilizar.

En el presente tip se desarrollar paso a paso la creacin de un programa impresor,


explicando las principales sentencias de su cdigo, ejemplificando la obtencin de los datos
a travs de un programa impresor (no en el propio Smartform), que ser generado desde
cero.

Proximamente, en otro tip se detallarn los pasos necesarios para la definicin del
diseo propiamente dicho del formulario smartform.

Consideraciones para el Ejemplo a desarrollar:


Se trabaja con la tabla SBOOK del entorno de pruebas y se requiere que el diseo del
formulariosmartform a desarrollar respete el siguiente layout, y deber recuperar los
datos necesarios para listar las reservas correspondientes a los vuelos con los siguientes
datos:

Compaa (campo carrid): Lufthansa (LH)

Connection Id (campo carrid): 0400

Fecha (campo fldate): 28 de Febrero de 1995.

http://www.teknodatips.com.ar/sapnetweaver/226comocrearelprogramaimpresorparalaejecuciondeunsmartformensap.html 2/6
24/8/2016 CmocrearelprogramaimpresorparalaejecucindeunSmartformenSAP

PasosparalacreacindelprogramaImpresor:

1) Acceder a la transaccin SE80 para crear un programa, denominado, por ejemplo,


ZIMPRESOR, que ser el programa Impresor del Smartform.

2) En este paso, una vez creado el programa impresor, ser necesario en l realizar lo
siguiente::

a) Definir las estructuras de datos, donde almacenar los datos obtenidos.

b) Obtener los datos (con consultas a la base de datos).

c) Especificar las funciones que llaman al Smartform

A continuacin se detalla para a), b) y c) el cdigo para realizar la accin correspondiente:

a) Definir las estructuras de datos:


Se detallan las siguientes sentencias dentro del programa impresor:

Donde se puede observar:

la creacin de 3 variables (date1, carrier1 y connection1) para almacenar los datos


nicos que se van a mostrar en el formulario. En la imagen del layout de salida
mostrada anteriormente, se corresponde con los campos: Field 1, Field 2 y Field 3. El
Field 7, tambin mostrado, no va a contener ningn dato en particular, pero es donde
el desarrollador puede escribir su nombre o algn texto que sea de su inters. Este
campo se incluye nicamente debido a que contribuir luego, cuando se defina la
estructura del Smartform, a detallar una de sus partes (por ejemplo, el footer).
La creacin de una variable llamada l_funcion cuyo tipo es rs38l_fnam, contendr el
nombre del mdulo de funcin que ejecuta al Smartform.
La definicin de un tipo de datos que coincide con la estructura de la tabla SBOOK (se
usa de esta manera para simplificar el ejemplo).
Se declara una tabla interna del tipo definido en el cdigo ejemplo.

b) Obtencin de los datos:

En el cdigo anterior se puede observar:

http://www.teknodatips.com.ar/sapnetweaver/226comocrearelprogramaimpresorparalaejecuciondeunsmartformensap.html 3/6
24/8/2016 CmocrearelprogramaimpresorparalaejecucindeunSmartformenSAP

Se asigna a cada una de las variables creadas en el paso a) los valores que se
solicitaron en el requerimiento ejemplo.
date1 se corresponde con la fecha, currier1 se corresponde con Compaia y
connection1 se corresponde con Connection ID
La sentencia SELECT obtiene los datos que se almacenarn en la tabla interna.

c) Especificar las funciones que llaman al Smartform

La sentencia PERFORM imprimir_formulario es la que invoca a las funciones: 1)


SSF_FUNCTION_MODULE_NAME (standard de SAP) y 2) l_funcion (definicin propia), que
son necesarias para la invocacin de cualquier Smartform. (Tener en cuenta que l_funcion
puede llevar otro nombre).

Se detalla esta accin en el cdigo siguiente:

Donde:

Para la funcin 1) SSF_FUNCTION_MODULE_NAME, se definen los parmetros necesarios:

el nombre del formulario (formname) se introduce el nombre que se le dar al


Smartform una vez que se lo cree.
el parmetro fm_name, que en este ejemplo en particular se definir como l_funcion,
como fue declarada anteriormente de tipos38l_fnam.

Por ltimo se declara el manejo de excepciones para la funcin.:

Como se visualiza en el cdigo anterior:

Inmediatamente debajo del llamado a la funcin, ser necesario chequear que no haya
habido errores (sy-subrc = 0) y en ese caso se har un call function a l_funcion (se
corresponde con el IMPORTING de la funcin anterior).
En EXPORTING se detallan los campos que se desean enviar al Smartform.
En TABLES la tabla interna anteriormente definida, y como es habitual, el manejo de las
excepciones correspondientes.

De esta manera el programa impresor est listo para ser utilizado para ejecutar un
smartform.

Paratenerencuenta...
El programa impresor es necesario para la ejecucin de un Smartform, pero no es
suficiente, resta crear el smartform (definiendo el diseo), para que pueda ser
invocado por el Programa impresor.
http://www.teknodatips.com.ar/sapnetweaver/226comocrearelprogramaimpresorparalaejecuciondeunsmartformensap.html 4/6
24/8/2016 CmocrearelprogramaimpresorparalaejecucindeunSmartformenSAP
invocado por el Programa impresor.
Si bien la lgica definida en el programa impresor puede estar incorporada al
disear el smartform, es habitual crear su lgica en el programa impresor como se
detall en el tip presente.

En el prximo tip se mostrar paso a paso cmo definir el


smartform (disear el layout), para luego poder ejecutarlo,
haciendo su invocacin desde el programa impresor recientemente
creado.

Especialista ABAP

Copyright 2012 - Teknoda S.A.


IMPORTANTE:
NotastcnicasdeSAPABAP"seenvaconfrecuenciavariableysincargocomoservicioanuestros
clientesSAP.Contienenotas/tutoriales/artculostcnicosdesarrolladosenformatotalmenteobjetivae
independiente.TeknodaesunaorganizacindeserviciosdetecnologainformticayNOcomercializa
hardware,softwareniotrosproductos.
SideseasuscribirotradireccindeemailparaquecomiencearecibirlasNotasTcnicasSAP,enveun
mensajedesdeesadireccinasapping@teknoda.com,aclarandonombre,empresa,cargoypasdel
suscriptor.

SAP,SAPNetweaver,R/3yABAPsonmarcasregistradasdeSAPAG.SAPnoeseleditordeesta
publicacinynoesresponsabledelamismaenningnaspecto.Lainformacincontenidaenesta
publicacinhasidogeneradapornuestrosespecialistasapartirdefuentesconsideradasconfiablesydel
ejercicioprofesionalcotidiano.Noobstante,porlaposibilidaddeerrorhumano,mecnico,cambiode
versinuotro,Teknodanogarantizalaexactitudocompletuddelamisma.
COPYRIGHTTEKNODAS.A.PROHIBIDASUREPRODUCCIONTOTALOPARCIALSIN
CONSENTIMIENTODETEKNODA

Anterior Siguiente
Comentarios

#2 Manuel 22-07-2013 20:57 0


Muchas gracias por este articulo.

saludos
Citar

#1 ChristopherB.G. 17-07-2013 21:53 0


Muchas gracia por el tutorial, de gran ayuda para quienes estamos empezando.

Saludos desde Chile


Citar

Refrescar lista de comentarios

Escribir un comentario

Nombre(requerido)

Email(requerido)

Sitioweb

1000simbolos

Subscribirsealanotificacindenuevoscomentarios

Refescar

Enviar

JComments

http://www.teknodatips.com.ar/sapnetweaver/226comocrearelprogramaimpresorparalaejecuciondeunsmartformensap.html 5/6
24/8/2016 CmocrearelprogramaimpresorparalaejecucindeunSmartformenSAP

Copyright 2016 Teknoda tips - Tecnologia SAP


Netweaver - IBM AS400 - System i - iSeries. Todos
los derechos reservados.

2016 Teknoda tips - Tecnologia SAP Netweaver - IBM AS400 - System i - iSeries | Designed by Hurricane Media

http://www.teknodatips.com.ar/sapnetweaver/226comocrearelprogramaimpresorparalaejecuciondeunsmartformensap.html 6/6