Close

enero 13, 2014

Introducción a los Smart Forms de SAP

Estos son formularios o reportes para impresión que podemos generar en SAP, la diferencia con los reportes ALV es que estos no son interactivos, pero son apropiados para impresión por ejemplo para facturas, notas de remisión, impresión de cheques etc.

En esta lección veremos como crear un smart form sencillo utilizando la transacción smarforms y como ejecutarlo para pruebas a medida que vayamos avanzado veremos ejemplos más complejos.

Conceptos básicos

Los Smart Forms están estructurados de la siguiente forma:

Estructura de un smart form de SAP

Primero se encuentra el formulario, el cual contiene páginas y parámetros globales, dentro de los parámetros globales definimos los formatos (negritas, subrayado, tamaño de letra, etc), parámetros de entrada, variables globales y sub rutinas e incialización de datos.

El formulario puede tener una o más paginas, al decir páginas no me refiero a la cantidad de páginas que se vayan a imprimir sino al diseño, en la mayoría de los casos vamos a necesitar un único diseño de página, un ejemplo en el que necesitemos más de una, podría ser cuando necesitemos imprimir datos en formato tabular como un estado de cuenta, y al final una página con información de las formas en que se puede pagar.

Las páginas contienen ventanas, una ventana es similar a los cuadros de texto que se usan en MS Word (de Office), las diferencias entre la ventana principal y las secundarias son estas:

  • En cada pagina debe haber una única ventana principal (no cero ni dos, siempre una), y varias o ninguna ventana secundaria.
  • Si el contenido de una ventana principal no logra desplegarse completamente en una página, se imprimen tantas páginas como sea necesario, pero si el contenido de una ventana secundaria no logra desplegarse completamente, se imprime cortado sin generar páginas adicionales.

Las ventanas pueden contener diferentes objetos para imprimir como textos, tablas, imágenes. También pueden contener objetos de código ABAP.

Al ingresar en la transacción smartforms, y desplegar un formulario veremos un editor como este:

Explicación del entorno de trabajo de los smart forms de SAP

En la parte izquierda se encuentran dos árboles de navegación el primero contiene los elementos de un formulario y el segundo las variables que pueden ser utilizadas. Si tenemos activado un nodo de texto podemos arrastrar y soltar la variables para que se impriman en el formulario.

En la parte central se despliega el nodo u objeto seleccionado con todas sus propiedades. En la parte derecha esta el Report Painter, aquí podemos posicionar y dimensionar las ventanas del formulario.

Crear un Smart Form sencillo.

  • Entrar en la transacción smartforms.
  • En el campo formulario ingresar: z_hola_mundo y presione el botón crear, luego veremos una pantalla como esta:

Vista de la pantalla de la transacción smartforms de SAP

  • En el campo significado cambiamos “Formulario nuevo”, por una descripción apropiada, en este caso podemos dejar algo como “Imprime Hola Mundo”.
  • Ahora vamos a añadir un texto al reporte, haciendo clic derecho sobre la ventana principal (MAIN) y seleccionado Crear > Texto, del menú contextual.

Creando un texto para un smart form

  • Ahora en la parte derecha de la ventana podremos editar el nuevo texto, ingresamos “Hola mundo” y luego presionamos el botón de activar y con esto habremos creado nuestro primer smart form.

smartforms editar texto

Ejecutar un smart form para pruebas.

Para un ambiente de producción necesitaremos crear un programa y opcionalmente una transacción para llamar al smart form, pero si nuestra intención es solo probar el formulario, podemos seguir estos pasos:

  • Abrir el smart form para visualizar o modificar desde la transacción smartforms y asegurarnos que se encuentre activado.
  • Presionar F8, notaremos que nos lleva a la transacción SE37 con una función de un nombre largo y extraño.
  • Volvemos a presionar F8 y nos lleva a una pantalla en donde podemos ingresar parámetros de entrada para nuestro smart form, en este caso no hemos definido parámetros de entrada.
  • Presionamos por tercera vez F8 y veremos la pantalla estándar de impresión de SAP y debemos elegir salida inmediata (para que no se genere en el spool) y presionamos el botón Visualización de impresión para ver el reporte en pantalla.