Está en la página 1de 5

Encuentranos en Google+.

Sobre Teknoda

Registrarse

Login/Logout

Contacto

Search Teknodatips . . .

Home
Home

AS/400 System i

SAP Netweaver

SAP Netweaver

BLOGS

Encuestas

WORKSHOPS

Links SAP

Cmo crear el programa impresor para la ejecucin de un Smartform en SAP

SAP Netweaver / ABAP

Lea en SAP Netweaver . . .


Desanudando Conceptos:
SAP HANA

Notas tcnicas / Tips / Tutorials

Cmo crear el programa impresor para la ejecucin de un Smartform


en SAP
1

Share

si no HANA hoy, HANAr


maana

Aprenda paso a paso a crear el programa impresor para ejecutar un


Smartform en SAP.

No hay newsletter, conferencia o evento


del ambiente ERP que en los ltimos meses
haya ahorrado detalles y especulaciones
sobre el nuevo paradigma: SAP HANA.

La herramienta Smartforms provista por SAP est enfocada en el desarrollo de formularios, por
ejemplo el de una factura, que posteriormente ser impresa de algn modo. Como medio de salida, los
Smartforms soportan una impresora, un fax, e-mail o Internet (usando la salida XML).

En medio del marketing hype, es siempre


difcil para los que estamos en el ruedo
decodificar lo esencial de las nuevas
tecnologas, as que aqu va nuestro aporte
para ayudar a una cabal y conceptual
comprensin de SAP HANA.
LEER ESTE ARTICULO >>>>>

Existen otras herramientas de SAP que posibilitan lo mismo, como Sapscript y Adobe Forms.
Para poder desarrollar un Smartform, es necesario previamente conocer algunos conceptos
importantes:

SAP Tips Newsletter GRATIS


Reciba por mail los mejores tips, notas
tcnicas, tutoriales paso a paso, etc.
Los suscriptores recibirn ADEMAS
Quick Reference Charts, material de
Workshops, y otros documentos
publicados NO accesibles en el sitio.

El desarrollo de un Smartform consta de dos fases:


Correo
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 poder
utilizar el Smartform. Si bien la lgica implementada en este programa podra 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 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
formulario smartform 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.

Suscribirse

Pasos para la creacin del programa Impresor:


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:


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 tipo s38l_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

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.

Para tener en cuenta ...


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.
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:

Notas tcnicas de SAP ABAP" se enva con frecuencia variable y sin cargo como
servicio a nuestros clientes SAP. Contiene notas/tutoriales/artculos tcnicos
desarrollados en forma totalmente objetiva e independiente. Teknoda es una
organizacin de servicios de tecnologa informtica y NO comercializa hardware,
software ni otros productos .
Si desea suscribir otra direccin de e-mail para que comience a recibir las Notas
Tcnicas SAP, enve un mensaje desde esa direccin a sapping@teknoda.com,
aclarando nombre, empresa, cargo y pas del suscriptor.
SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el
editor de esta publicacin y no es responsable de la misma en ningn aspecto. La
informacin contenida en esta publicacin ha sido generada por nuestros especialistas
a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No
obstante, por la posibilidad de error humano, mecnico, cambio de versin u otro,
Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN
CONSENTIMIENTO DE TEKNODA

Reciba por mail los mejores tips, notas


tcnicas, tutoriales paso a paso, etc.
Los suscriptores recibirn ADEMAS
Quick Reference Charts, material de
Workshops, y otros documentos
publicados NO accesibles en el sitio.
Correo
Suscribirse

Comentarios
#2 Manuel 22-07-2013 17:57
Muchas gracias por este articulo.
saludos
Citar

#1 Christopher B.G. 17-07-2013 18:53


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)

Refescar

Enviar
JComments

Buscar ms tips de SAP enTeknodatips . . .

Create Reports Codelessly in VS. Deliver Them to All .NET


Copyright 2015 Teknoda tips - Tecnologia SAP Netweaver - IBM AS400 - System i - iSeries. Teknodatips es un sitio de TEKNODA S.A. - Todos los derechos reservados.
Joomla! es software libre publicado bajo la licencia GNU/GPL.
Todos los derechos reservados 2015 http://www.teknodatips.com.ar