Formularios inteligentes en SAP ABAP
⚡ Resumen inteligente
Formularios inteligentes en SAP ABAP permite crear y mantener formularios para impresión masiva, con salida a impresora, fax, correo electrónico o Internet. Esta página explica la arquitectura, los nodos del Generador de Formularios, las ventanas, las tablas, las plantillas, los estilos y el módulo de función generado.
¿Qué son los formularios inteligentes en SAP ABAP?
SAP Smart Forms se utiliza para crear y mantener formularios para impresión masiva en SAP Sistemas. Como medio de salida SAP Los formularios inteligentes admiten una impresora, un fax, correo electrónico o Internet (mediante el uso de la salida XML generada).
SAP introdujo SmartForms en 1998 para superar las limitaciones en SAP Guiones. Los SmartForms son más fáciles de desarrollar, mantener y transportar que SAP Guión.
Comparación entre Smart Forms y SapScripts
- Son posibles múltiples formatos de página en SmartForms, lo que no es el caso en SAP Scripts
- Es posible tener un SmartForm sin ventana principal.
- Las rutinas se pueden escribir en la herramienta SmartForms.
- SmartForms genera un módulo de funciones cuando se activa.
- No se pueden crear etiquetas en SmartForms.
| Criterios | Formularios inteligentes | SAPguión |
|---|---|---|
| Formatos de página | Varios formatos de página en un solo formulario | Formato de una página por formulario |
| Ventana principal | No es obligatorio | Se requiere exactamente una ventana principal. |
| Rutinas | Escrito dentro del propio formulario. | Escrito en el programa de impresión independiente. |
| Activación | Genera un módulo de función | No se genera ningún módulo de función |
| Etiquetas | No se puede crear | Se puede crear |
Ventajas de los formularios inteligentes
- Ayudan a adaptar formularios sin necesidad de conocimientos de programación gracias a su interfaz de usuario totalmente gráfica.
- Al activar el formulario inteligente el sistema genera automáticamente el módulo de funciones y en tiempo de ejecución.
- Para realizar cualquier cambio tenemos que usar Arrastrar y Soltar, Cortar y Pegar. Estas acciones no incluyen la escritura de líneas de codificación ni el uso de un lenguaje de escritura.
- Podemos insertar tablas estáticas y dinámicas. Estos incluyen los avances de línea en las celdas individuales de la tabla, la activación de eventos para encabezados y subtotales de la tabla y la clasificación de datos antes de la salida.
- Los formularios inteligentes permiten al usuario incluir gráficos que pueden mostrarse como parte del formulario o como gráficos de fondo. Durante la impresión, el usuario puede suprimir el gráfico de fondo cuando sea necesario.
- La publicación web es posible utilizando la información generada. XML salida
Architectura de SAP Formulario inteligente
El diagrama de arquitectura muestra las tres capas involucradas. El formulario se diseña en el Generador de Formularios, la activación genera el módulo de función y el programa de impresión llama a ese módulo con los datos de la aplicación. A continuación, se describen los pasos de diseño de la primera capa.
Guía de formularios inteligentes
Repasémoslo en SAP te–
- Ingresar transacción FORMAS INTELIGENTES en el cuadro de código de transacción.
- En la siguiente pantalla, ingrese un nombre de formulario y haga clic en crear
La siguiente pantalla está dividida en tres secciones:
Ventana de navegación Constan de nodos y subnodos. Contienen todos los elementos (texto, ventana, etc.) que pertenecen a los formularios SAP.
- Ventana de mantenimiento muestra los atributos de los elementos
- impresora de formularios La ventana muestra el diseño de la página.
Siempre que creamos formularios inteligentes, SAP crea/genera un módulo de funciones. A diferencia SAPguiones, SAP FORMULARIOS le permiten cambiar el idioma.
En la ventana de navegación encontrará
Declaraciones de datos globales : Los datos definidos aquí se pueden utilizar en todo el formulario inteligente con fines de codificación.
Interfaz de formulario : Aquí se definen todos los datos que se pasarán al smartform desde el programa Imprimir.
Al hacer clic derecho en las páginas se permitirá la creación de una nueva página, ventana, gráfico o dirección.
La impresión se realizará según el campo "página siguiente".
¡Pero el procesamiento se realizará según la secuencia en la ventana de navegación!
Para las imágenes de fondo y los gráficos, puede elegir imágenes de mapa de bits en blanco y negro o en color y se almacenan en forma de textos estándar. Puede desviarse de la pantalla de formulario inteligente y abrir la pantalla de gráficos de formulario. Codigo de transacción: Se78
Configuración en la ventana de gráficos de formularios inteligentes.
Windows en formularios inteligentes
Existen dos tipos de Windows
- Main
- Secundaria
Puntos importantes a tener en cuenta
- No se puede tener más de una ventana principal en una página. Se pueden tener varias ventanas secundarias.
- Lo que imprima en la ventana secundaria... tiene que ser estático. (Si tiene 20 líneas en una orden de compra y hay una restricción de página, las líneas se trasladan a la página siguiente en la ventana principal, es decir, en un tipo de contenido predecesor y sucesor, se imprimirán en secuencia en la ventana principal. Esto no está permitido en las ventanas secundarias.
Dentro de la ventana principal podemos agregar texto como introducción para personalizar el resultado del formulario.
Las opciones de Salida en cada ventana determinan el tamaño de línea, el ancho, los colores y el fondo que se colocará.
Smartforms da la opción de dar el número de dirección que se mantiene en la gestión central de direcciones. La dirección se tomará directamente de la tabla ADRC y se completará en el formulario.
Hay dos editores diferentes disponibles en Smartforms, a saber: Editor normal
y el editor de gráficos.
Esta configuración se puede cambiar usando el editor Configurar en Utilidades.
Mesas en una ventana
En el pintor de tablas, puede dibujar el formato según los requisitos del cliente (por ejemplo, encabezado, subtítulo, artículo, subtotal, total general, etc.)
Puede utilizar el diseño de la tabla para determinar:
- El número de líneas y celdas.
- La altura de cada línea.
- El ancho de cada celda.
- La alineación de la mesa en la ventana.
La tabla muestra los diferentes tipos de líneas que se utilizarán en la tabla. Los tipos de línea definen el tamaño de cada celda y el número de celdas en cada línea.
Flujo de programación de formularios inteligentes
Cuando un SAP Se crea la plantilla de formulario inteligente, un usuario crea el diseño del formulario, define los campos requeridos, las condiciones y las instrucciones de programación especiales en la plantilla de formulario inteligente utilizando Smart Form Builder.
Una vez completado el diseño del formulario, es necesario activarlo antes de que los programas de impresión puedan probarlo o acceder a él. La activación del formulario inicia la generación de un módulo de funciones que maneja todo el procesamiento del formulario.
Este módulo de función interactúa con el programa de aplicación/programa de impresión para crear la salida en el medio de salida definido por el usuario para el dispositivo especificado.
En el caso de los formularios inteligentes, utilizamos 2 módulos de funciones para el procesamiento del formulario inteligente. Al primer módulo de funciones, le pasamos el nombre del formulario inteligente como parámetro de importación. Luego, esto devuelve el nombre del módulo de función generado dinámicamente que realmente llamará al formulario inteligente.
El nombre del formulario inteligente se puede pasar a la función Módulo – ‘SSF_FUNCTION_MODULE_NAME'
Esto devolverá el nombre del módulo de función del formulario inteligente al que se hace referencia.
El programa Print llamará al FM 'SSF_FUNCTION_MODULE_NAME' para obtener el nombre del módulo de función en tiempo de ejecución. Posteriormente llamará al módulo de función así obtenido para ejecutar el formulario inteligente.
Cómo llamar a un formulario inteligente desde un programa de impresión.
La llamada en dos pasos descrita anteriormente siempre se escribe de la misma manera. El programa primero resuelve el nombre generado y luego lo ejecuta con los datos de la aplicación.
- Resuelva el nombre del módulo de función: Pase el nombre del formulario a SSF_FUNCTION_MODULE_NAME. El nombre generado cambia con cada sistema, por lo que nunca debe estar codificado de forma fija.
- Llamar al módulo generado dinámicamente: Utilice la función CALL FUNCTION con la variable que contiene el nombre resuelto y pase los datos a través de los parámetros definidos en la interfaz del formulario.
- Controlar la salida: Rellene la estructura de control SSFCTRLOP para suprimir el cuadro de diálogo de impresión o para solicitar una vista previa, y rellene SSFCOMPOP con el dispositivo de salida.
- Gestionar las excepciones: El módulo generado genera los errores FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR y USER_CANCELED, por lo que se debe verificar SY-SUBRC después de la llamada.
DATA: lv_fm_name TYPE rs38l_fnam, ls_control TYPE ssfctrlop, ls_output TYPE ssfcompop. * 1. Get the name of the generated function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'Z_SMART_INVOICE' IMPORTING fm_name = lv_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE e001(zsf). " Form not found ENDIF. * 2. Call the generated module with the form data ls_control-no_dialog = 'X'. ls_control-preview = 'X'. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ls_control output_options = ls_output is_header = ls_header TABLES it_items = lt_items EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.
⚠️ Advertencia: El nombre del módulo de función generado, por ejemplo /1BCDWB/SF00000123, es diferente en cada sistema. Resuélvalo siempre con SSF_FUNCTION_MODULE_NAME; de lo contrario, el programa fallará después del transporte.
Plantillas
Se puede utilizar una plantilla cuando se conoce el tamaño exacto de la salida o cuando la salida tiene un formato fijo.
P.ej. Formulario de impuestos/cheques/formulario de avión/billete de tren: todos estos utilizan plantillas.
La gran diferencia entre una tabla y una plantilla es que en una tabla la altura cambia dinámicamente. En una plantilla, llamamos a una fila "línea".
Estilos INTELIGENTES
Un estilo inteligente contiene:
- Datos de encabezado que contienen los valores predeterminados de un estilo inteligente
- Formatos de párrafo que incluyen sangrías y espacios, atributos de fuente, tabulaciones y esquema y numeración.
- Formatos de caracteres que incluyen efectos (superíndice, subíndice), códigos de barras y atributos de fuente
- Colores y subrayados para un formato de párrafo o carácter.
Puede utilizar la transacción 'smartforms' / 'smartstyles' para crear un estilo inteligente.
💡 Consejo: Asigne el estilo inteligente en los atributos del formulario en lugar de en cada nodo de texto. De esta forma, un solo cambio de estilo se aplicará a todos los párrafos del formulario.
Eso es todo en este tutorial.























