cómo crcómo crear el programa impresor para la ejecución de un smartform en sapear el programa...
TRANSCRIPT
-
8/18/2019 Cómo Crcómo crear el programa impresor para la ejecución de un Smartform en SAPear El Programa Impresor Pa…
1/5
cómo crear el programa impresor para la ejecución de un Smartform en SAP
Aprenda paso a paso a crear el programa impresor para ejecutar un Smartform en SAP.
La herramienta Smartforms provista por SAP está enfocada en el desarrollo de formularios, por ejemplo el de una factura,
que posteriormente será impresa de algún modo. Como medio de salida, los Smartforms soportan una impresora, un fa, e!mail o
"nternet #usando la salida $%L&.
'isten otras herramientas de SAP que posi(ilitan lo mismo, como Sapscript ) Adobe Forms.
Para poder desarrollar un Smartform, es necesario previamente conocer algunos conceptos importantes*
'l desarrollo de un Smartform consta de dos fases*
el diseño del formulario (layout)
y su invocación 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 lógica implementada en este programa podría estar incorporada en el propio diseño del smartform, es abitual
en la mayoría de las implementaciones de Smartforms, contar con un programa impresor especí!co "ue contenga esa
lógica, #separada# del diseño especí!co del formulario.
'l programa impresor o programa de control puede ser* desarrollado desde “cero” oadaptado de alguno
existente.
'ste programa, además de encargarse de reali+ar la llamada al Smartform, puede contener la lógica necesaria para
la obtención de la información que el Smartform va a utili+ar #por ejemplo, puede reali+ar consultas a la (ase de datos para
etraer los datos a mostrarse en el Smartform&. Los datos etrados por el programa impresor se almacenarán en estructuras de datos
#ta(la interna, varia(les, etc.&, ) será enviada al Smartform para que -ste pueda usar esa información.
Sin em(argo, como se mencionó en párrafos anteriores, el mismo diseo del Smartform podra contener esa lógica para la o(tención
de información que -l mismo va a utili+ar.
'n el presente tip se desarrollará paso a paso la creación de un programa impresor, eplicando las principales sentencias
de su código, ejemplificando la o(tención de los datos a trav-s de un programa impresor #no en el propio Smartform&, que será
generado desde cero.
Proimamente, en otro tip se detallarán los pasos necesarios para la denición del diseño propiamente dicho del
formulario smartform.
Consideraciones para el 'jemplo a desarrollar*
Se tra(aja con la ta(la S/001 del entorno de prue(as ) se requiere que el diseo del formulario smartform a desarrollar respete el
siguiente 2la)out3, ) de(erá recuperar los datos necesarios para listar las reservas correspondientes a los vuelos con los
siguientes datos*
Compaa #campo carrid&* Lufthansa #L4&
Connection "d #campo carrid&* 5655
7echa #campo fldate&* 89 de 7e(rero de :;;
-
8/18/2019 Cómo Crcómo crear el programa impresor para la ejecución de un Smartform en SAPear El Programa Impresor Pa…
2/5
Pasos para la creación del programa Impresor:
1 Acceder a la transacción S!"# para crear un programa, denominado, por ejemplo,$I%P&!S'&, que será el programa "mpresor
del Smartform.
( 'n este paso, una ve+ creado el programa impresor, será necesario en -l reali+ar lo siguiente**
a =efinir las estructuras de datos, donde almacenar los datos o(tenidos.
b 'btener los datos #con consultas a la (ase de datos&.
c 'specificar las funciones )ue llaman al Smartform
A continuación se detalla para a, b ) c el código para reali+ar la acción correspondiente*
a Denir las estructuras de datos*
Se detallan las siguientes sentencias dentro del programa impresor*
-
8/18/2019 Cómo Crcómo crear el programa impresor para la ejecución de un Smartform en SAPear El Programa Impresor Pa…
3/5
=onde se puede o(servar*
la creación de $ variables (date1, carrier1 y connection1) para almacenar los datos %nicos "ue se van a
mostrar en el formulario. En la imagen del layout de salida mostrada anteriormente, se corresponde con los
campos& Field 1, Field ( y Field +. El 'ield , tambin mostrado, no va a contener ning%n dato en particular, pero es
donde el desarrollador puede escribir su nombre o alg%n te*to "ue sea de su inters. Este campo se incluye
%nicamente debido a "ue contribuir+ luego, cuando se de!na la estructura del Smartform, a detallar una de sus partes
(por eemplo, el -footer).
/a creación de una variable llamada l,funcion cuyo tipo es rs+"l,fnam, contendr+ elnombre del módulo de
función "ue eecuta al Smartform.
/a de!nición de un tipo de datos "ue coincide con la estructura de la tabla S0112 (se usa de esta manera
para simpli!car el eemplo).
Se declara una tabla interna del tipo de!nido en el código eemplo.
b Obtención de los datos:
'n el código anterior se puede o(servar*
Se asigna a cada una de las variables creadas en el paso a) los valores "ue se solicitaron en el re"uerimiento
eemplo.
date3 se corresponde con la feca, currier3 se corresponde con 4ompañia y connection3 se corresponde con4onnection 56
/a sentencia SE/E47 obtiene los datos "ue se almacenar+n en la tabla interna.
c Especificar las funciones que llaman al Smartform
La sentencia P'>70>% imprimir,formulario es la que invoca a las funciones* 1
SSF,F-./0I'.,%'-2!,.A%! #standard de SAP& ) (& l,funcion #definición propia&, que son necesarias para la invocación
de cualquier Smartform. #?ener en cuenta que l,funcionpuede llevar otro nom(re&.
Se detalla esta acción en el código siguiente*
-
8/18/2019 Cómo Crcómo crear el programa impresor para la ejecución de un Smartform en SAPear El Programa Impresor Pa…
4/5
=onde*
Para la función 1 SSF,F-./0I'.,%'-2!,.A%!, se definen los parámetros necesarios*
el nombre del formulario (formname) 8 se introduce el nombre "ue se le dar+ al Smartform una vez "ue se lo
cree.
el par+metro fm9name, "ue en este eemplo en particular se de!nir+ como l,funcion, como fue declarada
anteriormente de tipo s+"l,fnam3
Por último se declara el mane4o de excepciones para la función3*
Como se visuali+a en el código anterior*
5nmediatamente debao del llamado a la función, ser+ necesario ce"uear "ue no aya abido errores (sy:
subrc ; 1?75@ de la función
anterior).
En EB>1?75@ se detallan los campos "ue se desean enviar al Smartform.
-
8/18/2019 Cómo Crcómo crear el programa impresor para la ejecución de un Smartform en SAPear El Programa Impresor Pa…
5/5
En 7A0/ES la tabla interna anteriormente de!nida, y como es abitual, el maneo de las e*cepciones
correspondientes.
=e esta manera el programa impresor está listo para ser utili+ado para ejecutar un smartform.
Para tener en cuenta ...
El programa impresor es necesario para la eecución de un Smartform, pero no es su!ciente, resta crear
el smartform (de!niendo el diseño), para "ue pueda ser invocado por el >rograma impresor.
Si bien la lógica de!nida en el programa impresor puede estar incorporada al diseñar el smartform, es
abitual crear su lógica en el programa impresor como se detalló en el tip presente.
En el pró*imo tip se mostrar+ paso a paso cómo de!nir el smartform (diseñar el-layout), para luego poder eecutarlo, aciendo su invocación desde el programaimpresor recientemente creado.