PROMO JULIO en CVOSOFT United States Of America: 💎Calidad, 🔥Bonificaciones, 🥶Precios Congelados y MÁS!

 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 Expert


Jaime Eduardo Gomez Arango

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

✒️Autor de: 149 Publicaciones Académicas

🎓Egresado de los módulos:

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 Expert


Ejecución de un formulario Smartform Para ejecutar el formulario se ejecuta el programa impresor y podemos colocar un break-point para ver su ejecución. Se entra primero a la subrutina cargar datos que se encarga de recuperar los datos de la tabla y son almacenados en una tabla interna. Luego se ejecuta la subrutina que invoca el formulario. También podemos colocar la palabra break-point dentro del código del smartform y así hacer el debug.

Acceder a esta publicación

Creado y Compartido por: Dairy Alejandra Torrenegra Cera

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

SAP SemiSenior

LA EJECUCIÓN Y EL DEBUG DE UN FORMULARIO: 1) La ejecución de un formulario SmartForm: Para ejecutar un formulario smartform, se tiene que ejecutar el programa impresor. Al programa impresor se le puede agregar un BreackPoint, si se quiere visualizar en la fase de pruebas la ejecución y verificar el comportamiento del programa impresor. Se debe considerar que para los programas impresores de formularios smartform, básicamente se definen o escriben dos (2) subrutinas: Seleccionar_Datos e Invocar_Smartform. En la subrutina Seleccionar_Datos, se inicializan las tablas internas y las variables, se leen los campos de la tabla base de datos que corresponda y se almacena o llena la tabla interna. Por ejemplo, se leen los...

Acceder a esta publicación

Creado y Compartido por: Carmelo Salomón Ortiz González / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Senior

LA EJECUCIÓN DE UN FORMULARIO SMARTFORM. Primero tendremos que ejecutar el programa impresor. Para ello vamos a visualizar el programa impresor y vamos a colocar en breakpoint para analizar su comportamiento. Luego ejecutamos el programa presionando f8. Al ejecutarse la subrutina comprobamos que se recuperan registros de la tabla base de datos y se almacenan en la tabla interna. Luego dentro de la subrutina invocar_smartform lo que primero hacemos es ejecutar el modulo de funciones estándar SSF_FUNCTIN_MODULE_NAME con el nombre de nuestro formulario SmartForms como parámetro de entrada. Y recuperamos el parámetro de salida, el nombre del módulo de funciones que ejecuta el SmartForm. Luego ejecutamos el...

Acceder a esta publicación

Creado y Compartido por: Gerardo Jose Campos Tovar / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Senior

La ejecucioón de unformulario Smartform: tenemos que ejecutar el programa impreso. Para ello, vamos a visualizar el programa impresor y vamos a colocar un breakpoint para analizar su comportamiento. Luego ejecutamos el programa haciendo clic en el icono ejecutar o también podemos precionar la tecla F8. A ejecutar la subrutina seleccionar_datos comprobamos que se recuperan registros de la tabla base de datos ZTABLA_USUARIOS y se almacenan en la tabla interna TI_USUARIOS. Luego dentro de la estructura invocar_smartform lo que primero hacemos es ejecutar el módulo de funciones estándar SSF_FUNCTION_MODULE_NAME con el nombre de nuetro formulario Smartform como parámetro de entrada. Y recuperamos el parámetro...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo

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

SAP Master


I.10.1. Ejecución de un Formulario SmartForm Para ejecutar un formulario SmartForm tendremos que ejecutar el programa impresor del formulario. TIPS: Para depurar un formulario SmartForm podemos utilizar la transacción estándar SMARTFORM_TRACE, al ejecutar la transacción en la pantalla de selección deberemos activar la traza mediante el botón activar, y definir el nivel de la traza, el cual puede ser: Advertencia o error Información de documento Páginas Ventanas Otras opciones Luego ejecutamos el programa impresor de nuestro formulario SmartForm, el cual imprimirá el formulario en la pantalla. Volvemos a visualizar la transacción SMARTFORM_TRACE, particularmente...

Acceder a esta publicación

Creado y Compartido por: Gianfranco Pasqua Indiano / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Expert

La ejecución y el debug de un formulario Smartform Ejecucion del smartform. Se debe ejecutar el programa impresor. La subrutina seleccionar datos recupera la tabla de la base de datos y se almacena en la TI. La subrutina invocar_smartform, se ejecuta el modulo de funciones SSF_FUNCTION_MODULE_NAME, con el nombre de nuestro form. Debug del smartform. Recomendable que todo codigo abap se haga en el programa impresor. Si tenemos codigo en el smartform: crear/logica proceso/lineas de programa-- se debe poner explicitamente la palabra break ponit y luego activar el form y ejecutarlo. audio1: para depurar un form se puede usar la transaccion smartform-trace

Acceder a esta publicación

Creado y Compartido por: Pablo Adrian Oggero

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

SAP Master

Para depurar un formulario SmartForm podemos utilizar la transaccion estandar smartform_trace al ejecutar la transaccion en la pantalla de seleccion debemos activar la traza mediante el boton activar y definir el nivel de la traza el cual puede ser advertencia y error, informacion de documento, paginas, ventanas entre otras opciones mas. Luego ejecutamos el programa IMPRESOR de nuestro formulario SmartForm el cual imprimira el formulario en la pantalla, volvemos a visualizar la transaccion SMARTFORM_TRACE particularmente veremos la tabla que se muestra en la parte inferior de la pantalla la cual habra registrado la fecha actual de la traza, la hora, el usuario, el nivel de la traza y demas datos. Al visualizar la traza correspondiente de nuestro...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Master

EJECUCIÓN DE UN FORMULARIO SMARTFORM. Para ejecutarlo hay que ejecutarlo desde el programa impresor del formulario. En el ejemplo hacen un breack point en el PERFORM cargar_datos y se analiza como se ejecuta internamente en ABAP. Para debuguear un smartform vamos a la transacción SMARTFORMS y se le da cambiar con el nombre del form a debuguear. Para este caso desde la ventana Dirección vamos a create/flow logic/program lines (programa de lineas de código). Se escribe break-point y activamos. Para depurar un SMARTFORM podemos usar la transacción SMARTFORM_TRACE, presionar activar.

Acceder a esta publicación

Creado y Compartido por: Walter Giovanny Montoya García

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

SAP Senior

Audio nA U1L10-A: Transacción Smartform_Trace: depuración de formularios Smartform. Para depurar un formulario Smartform podemos utilizar la transacción estándar Smartform_trace. Al ejecutar la transacción, en la pantalla de selección deberemos activar la traza mediante el botón activar y definir el nivel de la traza, el cual puede ser advertencia o error, información de documento, páginas, ventanas entre otras opciones más. Luego ejecutamos el programa impresor de nuestro formulario Smartform el cual imprimirá el formulario en la pantalla. Volvemos a visualizar la transacción Smartform_trace. Particularmente veremos la tabla que se muestra en la parte inferior...

Acceder a esta publicación

Creado y Compartido por: Juan Alberto Peñalver Alvarez / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Expert


EJECUCIÒN DE UN FORMULARIO SMARTFORM Para ejecutar un formato smartform, se debe ejecutar el programa impresor del formulario. La rutina cargar_datos, carga los datos desde la tabla ztabla_usuarios en la tabla interna ti_usuarios. La subrutina invocar_smartform, ejecuta la funciòn estàndar SSF_FUNCTION_MODULE_NAME, con el nombre de nuestro formulario como paràmetro de entrada y recuperamos en v_nombre_form el nombre del mòdulo de funciòn que ejecuta el smartform. Luego ejecutamos el mòdulo de funciòn contenido en la variable v_nombre_form pasando como paràmetro de entrada la tabla interna ti_usuarios. Luego se presenta la pantalla de impresiòn, aquì se puede configurar...

Acceder a esta publicación

Creado y Compartido por: Miguel Angel Acosta Acosta / Disponibilidad Laboral: FullTime + Carta Presentación

 


 

👌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!