🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP La ejecución y el debug de un formulario Smartform

ABAP La ejecución y el debug de un formulario Smartform

ABAP La ejecución y el debug de un formulario Smartform

Executing a SmartForm

To execute a Smartform, we need to run the form printing program. Every printing program follows similar steps:

  • Data retrieval and loading into one or more internal tables.
  • Retrieve the function module name that executes the form using the SSF_FUNCTION_MODULE_NAME function.
  • Execute the function module whose name we retrieved in the previous step.
  • Configure the form's print screen. Various aspects can be informed here:
  • Form title.

  • Direct execution of printing without passing through the spool first.

  • Determination of the number of copies to print.

  • Storage Mode allows determining whether we only print or also save the print in the spool.

  • In Cover Page Settings, we can decide whether to print the SAP cover page on the same sheet.

  • Mandatory printer output notification even if a preview is performed.

*&---------------------------------------------------------------------*
*& Form INVOCAR_SMARTFORM
*&---------------------------------------------------------------------*
* Inicializar a imprimir smartform
*----------------------------------------------------------------------*
FORM invocar_smartform .

IF NOT ti_usuarios[] IS INITIAL.

* Inicializar el formulario.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZFORMULARIO_PRUEBA'
IMPORTING
fm_name = v_nombre_form
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* Enviar datos al formulario e imprimirlo
CALL FUNCTION v_nombre_form
TABLES
ti_usuarios = ti_usuarios
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDIF.

ENDFORM. " INVOCAR_SMARTFORM

Debugging a SmartForm

We go to the Smartforms transaction, enter the form name, and click the modify button.

We create a code lines object in the desired page's first window. The code will be the breakpoint statement, and we activate the form. Upon re-executing the form, it will stop where we placed the breakpoint.

Alternatively, we can execute the transaction SMARTFORM_TRACE. In the selection screen, we activate tracing by clicking the activate button and set the trace level. The following levels are available:

  • Warning or error.
  • Document information.
  • Pages.
  • Windows.

Then, we inform the form printing program. Once the form is displayed, we return to the SMARTFORM_TRACE transaction, search for the trace of our execution, and upon entering it, we will see all detected errors.

E.g

*&---------------------------------------------------------------------*
*& Report ZTEST_ABAP_JEGA_I_1
*&---------------------------------------------------------------------*
*& Ejemplo smartform program
*&---------------------------------------------------------------------*
REPORT ztest_abap_jega_i_1.

* Nombre del modulo de funciones del formulario.
DATA: v_nombre_form(30) TYPE c.

DATA: ti_usuarios TYPE STANDARD TABLE OF zusuarios.
*Previamente creamos en el Diccionario de datos la estructura ZUSUARIOS
*con los mismos campos de ZTABLA_USUARIOS a excepción del Mandante

* ---------------------------------------------------------------------*
START-OF-SELECTION.
* ---------------------------------------------------------------------*

* Seleccionamos los datos de la tabla de usuarios
PERFORM cargar_datos.

* Llamada al formulario Smartform
PERFORM invocar_smartform.


*&---------------------------------------------------------------------*
*& Form CARGAR_DATOS
*&---------------------------------------------------------------------*
* cargar datos en la tabla interna
*----------------------------------------------------------------------*
FORM cargar_datos .

CLEAR ti_usuarios.
REFRESH ti_usuarios.

SELECT dni nombre_ape estado_usu direccion
FROM ztabla_usuarios
INTO CORRESPONDING FIELDS OF TABLE ti_usuarios.

ENDFORM. " CARGAR_DATOS
*&---------------------------------------------------------------------*
*& Form INVOCAR_SMARTFORM
*&---------------------------------------------------------------------*
* Inicializar a imprimir smartform
*----------------------------------------------------------------------*
FORM invocar_smartform .

IF NOT ti_usuarios[] IS INITIAL.

* Inicializar el formulario.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZFORMULARIO_PRUEBA'
IMPORTING
fm_name = v_nombre_form
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* Enviar datos al formulario e imprimirlo
CALL FUNCTION v_nombre_form
TABLES
ti_usuarios = ti_usuarios
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDIF.

ENDFORM. " INVOCAR_SMARTFORM


 

 

 


Sobre el autor

Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master

Jaime Eduardo Gomez Arango

Profesión: Ingeniero de Sistemas y Computación - España - Legajo: SW34C

✒️Autor de: 102 Publicaciones Académicas

🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero de sistemas y computación con 8 años de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.

Certificación Académica de Jaime Gomez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La ejecución y el debug de un formulario Smartform" de la mano de nuestros alumnos.

SAP Master

Lección 10: Video - Ejecución de un Formulario SmartForm Ejecución del formulario Smartform desde el programa impresor. Para ejecutar el formulario en el programa impresor creado en la lección 4, ejecutamos el programa impresor en modo debug, para ver como se ejecuta el formulario. Primero entramos al programa para colocar un breakpoint en la subrutina CARGAR_DATOS, ejecutamos el programa y entramos a la subrutina que invoca el Smartform INVOCAR_SMARTFORM, y es aquí en donde se ejecutará el formulario. Como debuguear un Smartform. Ejecutamos la transacción Smartforms en modo debug (/nsmartforms) y creamos dentro de la ventana DIRECCION una línea de código en la cual agregamos...

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Lección: Video - Ejecución de un Formulario SmartForm [ 10º de 11 ] Ejecución del formulario Smartform desde el programa impresor. Para ejecutar el formulario en el programa impresor creado en la lección 4, ejecutamos el programa impresor en modo debug, para ver como se ejecuta el formulario. Primero entramos al programa para colocar un breakpoint en la subrutina CARGAR_DATOS, ejecutamos el programa y entramos a la subrutina que invoca el Smartform INVOCAR_SMARTFORM, y es aquí en donde se ejecutará el formulario. Como debuguear un Smartform. Ejecutamos la transacción Smartforms en modo debug (/nsmartforms) y creamos dentro de la ventana DIRECCION una línea de código en...

Acceder a esta publicación

Creado y Compartido por: Jose Angel Valles Bustos

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

EJECUCIÓN DE UN FORMULARIO . Para ejecutar un formulario debemos ejecutar el programa impresor del formulario. Comportamiento del programa. >Se ejecuta la rutina cargar datos esta recupera los datos de la tabla interna o Base de datos. >Rutina que invoca al formulario se ejecuta la función SSF_FUNCTION_MODULE_NAME con el nombre del formulario como parametro y recuperamos en una variable el nombre del modulo de función del formulario. Debug de un Formulario: Entramos en la transacción SMARTFORMS e ingresamos el nombre del formulario hacemos clic sobre el botón CAMBIAR dentro del nodo dirección creamos un programa de lineas y dentro escribimos la sentencia BREACK-POINT y activamos el formulario ejecutamos...

Acceder a esta publicación

Creado y Compartido por: Juan Santamaria Borja

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Ejecucion de un formulario SmartForm: Ejecutamos el programa impresor y hacemos un break pint para ver su comportamiento. Ingresamos a la subrutina cargar datos, se recuperan datos y se almacenan en la tabla. La subrutina llama al formulario SmartForm. Ejecuta V_NOMBRE_FORM que recupera el modulo de funcion del SmatForm y ejecuta el modulo. Visualizamos la pantalla de impresion, configuramos titulo de impresion con la opcions Spoll control y con el puntero hacemos click en Print inmediately para ejecutar. Esto es para que no lo envie al spool y tengamos que buscar luego en la SP01. Seleccionamos la cantidad de copias a imprimir. Storage Mode, Esta opcion se utiliza para imprimir o almacenar en el spool . SAP COVER PAGE: Se utiliza para imprimir...

Acceder a esta publicación

Creado y Compartido por: Ernesto Aristides Romano

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

- Consideraciones al Ejecutar un Smartform En el momento en que se nos presenta la ventana de diálogo para la salida del formulario, podremos: Ponerle un Título a la Impresión En Control SPOOL: Indicar si queremos la Salida inmediata, Borrar tras la salida, etc. En Modo archivo: Sólo imprimir, Sólo Archivar, Imprimir y Archivar. En Ejemplares: Cantidad de Copias En Portada SAP: Si queremos o no que la imprima. En Disp.salida: Debemos indicar un dispositivo aunque solamente lo vayamos a visualizar y elegiremos una Impresora Local que puede ser LP01 o LOCL. - Depuración de un formulario Smartform Para depurar un Smartform, podemos utilizar la Trx SMARTFORM_TRACE. Al ingresar,...

Acceder a esta publicación

Creado y Compartido por: Victor Norberto Levi

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Ejecución de un Formulario SmartForms. Se ejecuta el programa impresor y se realiza un break point para analizar su comportamiento , se ejecuta el programa, se ingresa a la subrutina cargar datos, allí se visualiza que se recuperan datos y se almacenan en la tabla y la subrutina que invoca al formulario SmartForms, se ejecuta la función estándar v_nombre_form y se recupera el modulo de función que ejecuta el smartform, luego se ejecuta el modulo de función, Luego se visualiza la pantalla de impresión, se configura el titulo de la impresión, en las opciones Spool control se da clic en Print inmediately para que se ejecute directamente y no lo mande al Spool y se tenga que buscar posteriormente...

Acceder a esta publicación

Creado y Compartido por: David De Jesùs Restrepo Cañas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Se puede depurar un smartform a través de la transacción SMARTFORM TRACE, se debe activar la traza y definir el nivel dela Traza a nivel: Advertencia o error, información del documento , paginas, ventanas, etc. Se ejecuta el programa impresor Se vuelve a ejecutar la transacción SMARTFORM TRACE, en donde registra en una tabla la fecha, usuario, hora y nivel de la traza además que nos informa el detalle de los errores que contiene el smartform.

Acceder a esta publicación

Creado y Compartido por: Maria Guadalupe Gonzalez Sanchez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Al ejecutar el programa impresor (SE38) lo primero que veremos será la ventana de diálogo donde podemos elegir si deseamos imprimir el formulario o previsualizarlo. Si deseamos hacerle un seguimiento por debug , dentro de la línea de código colocamos un break-point

Acceder a esta publicación

Creado y Compartido por: Juan Carlos Ayala Chira

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Ejecucion de un SMARTFORM: ejecutar el programa impresor. Mediante un BRAK-POINT podemos "debagear" el programa. Ejecutar, seleccionar impresora, cantidad de copias... previsualizar. SMARTFORM_TRACE: trx que sirve para depurar un SMARTFORM, debemos activar la traza con las opciones necesarias.

Acceder a esta publicación

Creado y Compartido por: Jose Ignacio Rodini

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Como ejecutar un formulario SmartForm Para ejecutar el formulario ejecutamos el programa impresor y hacemos un break point para validar su proceso. Ingresamos a la subrutina cargar datos, se recuperan datos y se almacenan en la tabla Interna. Validamos la subrutina y la función 'SSF_FUNCTION_MODULE_NAME' que llama al formulario SmartForm. Ejecuta V_NOMBRE_FORM que recupera el módulo de función del SmartForm y ejecuta el modulo que ejecuta el SmartForm. Se Visualizamos la pantalla de impresión, se puede configuramos el título de impresión con la opciones Spoll control y con el puntero del mouse haciendo clic en Print inmediately y ejecutamos. Esto es con la idea de que no lo envié al spool...

Acceder a esta publicación

Creado y Compartido por: Jhon Deibys Cano Pineda

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!