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.

  • 🖨️ Propósito principal: Los formularios inteligentes generan documentos impresos en masa y admiten la impresión, el fax, el correo electrónico y la salida a Internet mediante el XML generado.
  • 🕰️ Origen: SAP Introdujo Smart Forms en 1998 para superar los límites de SAPguion, y son más fáciles de desarrollar, mantener y transportar.
  • 🧱 Diseño gráfico: En el Creador de Formularios, los nodos se organizan arrastrándolos y soltándolos, de modo que un formulario se adapta sin escribir una sola línea de código.
  • ⚙️ Módulo generado: Al activar un formulario se genera un módulo de función, y el programa de impresión obtiene su nombre en tiempo de ejecución mediante SSF_FUNCTION_MODULE_NAME.
  • 🪟 Regla de ventana: Cada página contiene como máximo una ventana principal, que se extiende a través de las páginas, mientras que cada ventana secundaria solo muestra contenido estático.
  • 📐 Tabla o plantilla: Una tabla crece dinámicamente con los datos, y se utiliza una plantilla cuando la salida tiene un tamaño fijo, como un cheque o un billete.
  • ???? Estilos inteligentes: Los formatos de párrafo, los formatos de caracteres, los colores y los códigos de barras se almacenan en un estilo inteligente y se reutilizan en todos los formularios.

SAP Formularios inteligentes ABAP

¿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

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

  1. Ingresar transacción FORMAS INTELIGENTES en el cuadro de código de transacción.
  2. En la siguiente pantalla, ingrese un nombre de formulario y haga clic en crear

Guía de formularios inteligentes

La siguiente pantalla está dividida en tres secciones:

Guía de formularios inteligentes

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.

Guía de formularios inteligentes

Al hacer clic derecho en las páginas se permitirá la creación de una nueva página, ventana, gráfico o dirección.

Guía de formularios inteligentes

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!

Guía de formularios inteligentes

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

Guía de formularios inteligentes

Configuración en la ventana de gráficos de formularios inteligentes.

Guía de formularios inteligentes

Windows en formularios inteligentes

Windows en formularios inteligentes

Existen dos tipos de Windows

  1. Main
  2. 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.

Windows en formularios inteligentes

Dentro de la ventana principal podemos agregar texto como introducción para personalizar el resultado del formulario.

Windows en formularios inteligentes

Las opciones de Salida en cada ventana determinan el tamaño de línea, el ancho, los colores y el fondo que se colocará.

Windows en formularios inteligentes

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.

Windows en formularios inteligentes

Hay dos editores diferentes disponibles en Smartforms, a saber: Editor normal

Windows en formularios inteligentes

y el editor de gráficos.

Windows en formularios inteligentes

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.

Windows en formularios inteligentes

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.

Windows en formularios inteligentes

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'

Flujo de programación de formularios inteligentes

Esto devolverá el nombre del módulo de función del formulario inteligente al que se hace referencia.

Flujo de programación de formularios inteligentes

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.

Flujo de programación de formularios inteligentes

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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".

Plantillas en SAP ABAP

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.

Plantillas en SAP ABAP

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

Preguntas Frecuentes

Una tabla crece con el número de filas de la tabla interna, por lo que su altura cambia en tiempo de ejecución. Una plantilla tiene un número fijo de líneas y celdas, lo que resulta adecuado para un cheque, un billete o un formulario fiscal.

Configure GETOTF en la estructura de control, lea los datos OTF devueltos por el módulo generado y páselos al módulo de función CONVERT_OTF. El resultado es una tabla binaria que se puede enviar por correo electrónico o descargar.

No. Un formulario inteligente es independiente del cliente, por lo que está disponible en todos los clientes del sistema después de la activación. SAPEl formato del script depende del cliente y debe copiarse con SCC1.

Los asistentes de IA elaboran el programa de impresión, incluyendo la llamada a SSF_FUNCTION_MODULE_NAME y el manejo de excepciones. El diseño en sí se sigue organizando nodo por nodo en el Generador de formularios, ya que es un objeto gráfico.

Sí. Los formularios inteligentes siguen siendo la opción predeterminada para la impresión masiva en muchos casos. SAP Los sistemas, mientras que Adobe Forms abarca los documentos interactivos. Las herramientas de IA principalmente agilizan las tareas relacionadas, como la lectura de un formulario y la redacción de su documentación.

Resumir este post con: