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

 X 

✒️ABAP La conversión de un Smartform a PDF

ABAP La conversión de un Smartform a PDF

ABAP La conversión de un Smartform a PDF

CONVERTING A SMARTFORM TO PDF

  • STEP 1: Declaration of variables, structures, and internal tables we will work with.

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

DATA: ti_usuarios TYPE STANDARD TABLE OF zusuarios.

DATA: wa_control_parameters TYPE ssfctrlop,
wa_output_options TYPE ssfcompop,
wa_return TYPE ssfcrescl,
ti_otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,
ti_intab TYPE soli_tab,
ti_objbin TYPE solix_tab,
wa_intab TYPE LINE OF soli_tab,
wa_objbin TYPE LINE OF solix_tab,
ti_objpack TYPE STANDARD TABLE OF sopcklsti1 WITH HEADER LINE.

  • STEP 2: Within the subroutine INVOCAR_SMARTFORM, we execute the function SSF_FUNCTION_MODULE_NAME with the name of the Smartform, which returns the function name of the Smartform.

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.

  • STEP 3: Configuration of the output by setting three parameters:

* Configuramos la salida del formulario Smartform
wa_control_parameters-getotf = 'X'. "Retorno tab OTF Sin imprimir, visualizar
wa_control_parameters-no_dialog = 'X'. "Sin diálogo
wa_output_options-tdnoprev = 'X'. "Visualización de impresión no permitida

  • STEP 4: Execution of the Smartform function using the output configuration structures filled in earlier, and also the structure wa_return, which stores the Smartform output in OTF format.

* Enviar datos al formulario e imprimirlo
CALL FUNCTION v_nombre_form
EXPORTING
output_options = wa_output_options
control_parameters = wa_control_parameters
IMPORTING
job_output_info = wa_return
TABLES
ti_usuarios = ti_usuarios
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

  • STEP 5: Populating the OTFDATA table with the Smartform output in OTF format.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
ti_otfdata[] = wa_return-otfdata[].
ENDIF.

  • STEP 6: Copying the content of the OTFDATA table to the INTAB table.

* En la tabla OTFDATA nos queda guardado el formulario en formato OTF
* Solo resta convertir el OTF a PDF
LOOP AT ti_otfdata.
wa_intab = ti_otfdata.
APPEND wa_intab TO ti_intab.
CLEAR wa_intab.
ENDLOOP.

  • STEP 7: Execution of the function SX_OBJECT_CONVERT_OTF_PDF to convert the OTF format to PDF. The conversion result is stored in the objbin table.

* Convertir el OTF a PDF
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
CHANGING
transfer_bin = ti_objpack-transf_bin
content_txt = ti_intab
content_bin = ti_objbin
objhead = ti_intab
len = ti_objpack-doc_size
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.

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

  • STEP 8: Execution of the GUI_DOWNLOAD method to download the PDF to our PC.

* En la tabla objbin nos queda guardado el PDF para salvarlo en un archivo local
* utilizando el metodo GUI_DOWNLOAD
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = 'C:Usersi0604226Desktopsalida.PDF'
filetype = 'BIN'
CHANGING
data_tab = ti_objbin[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.

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

  • Run our program.

There is another way to convert our Smartform into PDF format, which involves sending the Smartform printout to the SPOOL. This will generate a spool order number, then we must execute the standard program RSTXPDFT4, enter the spool order number in the selection screen, check the option to download PDF file, and enter the path and name of the PDF file to be generated. Finally, after entering this data, we will have obtained our Smartform in PDF format.

E.g

*&---------------------------------------------------------------------*
*& Report ZTEST_ABAP_JEGA_I_2
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest_abap_jega_i_2.

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

DATA: ti_usuarios TYPE STANDARD TABLE OF zusuarios.

DATA: wa_control_parameters TYPE ssfctrlop,
wa_output_options TYPE ssfcompop,
wa_return TYPE ssfcrescl,
ti_otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,
ti_intab TYPE soli_tab,
ti_objbin TYPE solix_tab,
wa_intab TYPE LINE OF soli_tab,
wa_objbin TYPE LINE OF solix_tab,
ti_objpack TYPE STANDARD TABLE OF sopcklsti1 WITH HEADER LINE.

* ---------------------------------------------------------------------*
START-OF-SELECTION.
* ---------------------------------------------------------------------*
* Seleccionamos los datos de la tabla de usuarios
PERFORM seleccionar_datos.

* Llamada al formulario Smartform
PERFORM invocar_smartform.

*&---------------------------------------------------------------------*
*& Form SELECCIONAR_DATOS
*&---------------------------------------------------------------------*
*& Cargar datos en la tabla interna
*&---------------------------------------------------------------------*
FORM seleccionar_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. " SELECCIONAR_DATOS

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

IF NOT ti_usuarios[] IS INITIAL.

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.

* Configuramos la salida del formulario Smartform
wa_control_parameters-getotf = 'X'. "Retorno tab OTF Sin imprimir, visualizar
wa_control_parameters-no_dialog = 'X'. "Sin diálogo
wa_output_options-tdnoprev = 'X'. "Visualización de impresión no permitida

* Enviar datos al formulario e imprimirlo
CALL FUNCTION v_nombre_form
EXPORTING
output_options = wa_output_options
control_parameters = wa_control_parameters
IMPORTING
job_output_info = wa_return
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.
ELSE.
ti_otfdata[] = wa_return-otfdata[].
ENDIF.

* En la tabla OTFDATA nos queda guardado el formulario en formato OTF
* Solo resta convertir el OTF a PDF
LOOP AT ti_otfdata.
wa_intab = ti_otfdata.
APPEND wa_intab TO ti_intab.
CLEAR wa_intab.
ENDLOOP.

* Convertir el OTF a PDF
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
CHANGING
transfer_bin = ti_objpack-transf_bin
content_txt = ti_intab
content_bin = ti_objbin
objhead = ti_intab
len = ti_objpack-doc_size
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.

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

* En la tabla objbin nos queda guardado el PDF para salvarlo en un archivo local
* utilizando el metodo GUI_DOWNLOAD
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = 'C:Usersi0604226Desktopsalida.PDF'
filetype = 'BIN'
CHANGING
data_tab = ti_objbin[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.

IF sy-subrc <> 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: 108 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 conversión de un Smartform a PDF" de la mano de nuestros alumnos.

SAP Master

Lección 11: Video - Conversión de un SmartForm a PDF Pasos para hacer la conversión a PDF: Declaración de variables. Ejecución de la función SSF_FUNCTION_MODULE_NAME. Configuración de la salida. Ejecución de la función del Smartform. Completamos la tabla otfdata. Completamos la tabla intab. Ejecución de la función SX_OBJET_CONVERT_OTF_PDF. Ejecución del método GUI_DOWNLOAD.

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

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

SAP Senior

Lección: Video - Conversión de un SmartForm a PDF Existe otra forma de convertir un formulario smartform al formato PDF , esta consiste en enviar al spool la impresión del formulario smartform, de esta forma estaremos generando un número de orden de spool, luego deberemos ejecutar el programa estandar rstxpdft4 introduciendo en la pantalla de selección el número de la orden de spool, luego tildamos la opción acer dowloand de ficheros pdf e introducimos la ruta y el nombre del archivo pdf que generaremos , finalmente luego de introducir estos datos habremos obtenido nuestro smartform en formato pdf. Para ello utilizamos el programa impresor zprueba_smartforms: 1er paso: declarar las variables,...

Acceder a esta publicación

Creado y Compartido por: Aida Cortina Fernandez

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

SAP Master

Lección 11: Video - Conversión de un SmartForm a PDF Pasos para hacer la conversión a PDF: 1. Declaración de variables. 2. Ejecución de la función SSF_FUNCTION_MODULE_NAME. 3. Configuración de la salida. 4. Ejecución de la función del Smartform. 5. Completamos la tabla otfdata. 6. Completamos la tabla intab. 7. Ejecución de la función SX_OBJET_CONVERT_OTF_PDF. 8. Ejecución del método GUI_DOWNLOAD.

Acceder a esta publicación

Creado y Compartido por: Jose Angel Valles Bustos

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

SAP Master

Pasos para convertir un smartform a pdf: Paso1: Declarar las variables, estructuras y tablas internas con la que vamos a trabajar. Paso2: Dentro de la subrutina invocar smartform ejecutamos la función "SSF_FUNCTION_MODULE_NAME" con el nombre del formulario smartform y nos dvuelve el nombre de la función. Paso3: Configuramos la salida seteando tres parametros que son: getotf para obtener la salida en formato Otf. no_dialog para que no haya dialogo con el usuario y tdnoprev para que la visualización de la impresión no se permita. Paso4: En la estructura wa_return se almacena la salida del smartform en formato otf. Completamos la tabla otfdata con la salida tf del smartform. Pasamos el contenido de la tabla...

Acceder a esta publicación

Creado y Compartido por: Maria Ysabel Colina De Magdaleno

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

SAP Master

Conversion de un SMARTFORM a PDF: ZPRUEBA_SMARTFORMS. Funcion SSF_FUNCTION_MODULE_NAME con el nombre del formulario smartform y nos devuelve el nombre de la funcion del smartform. Luego configuramos la salida seteando los parametros de salida GET_OTF, para obtener la salida en formato OTF, NOT_DAIALOG, para no tener dialogo con el usuario y TD_NOT_PREV para que la visualizacion de la impresion no se permita. Funcion SX_OBJECT_CONVERT_OTF_PDF para convertir el formato OTF a formato PDF. Mediante el metodo GUI_DOWNLOAD descargamos el formulario a la PC. Se puede convertir el formulario a PDF enviando la impresion al formulario, generando una orden de spool, mediante el programa RSTXPDFT4 con el nro de la orden de spool...

Acceder a esta publicación

Creado y Compartido por: Jose Ignacio Rodini

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

SAP Master

Paso 1: Declaración de Variables, Estructuras y Tablas Internas Paso 2: Ejecución de la Función SSF_FUNCTION_MODULE_NAME en la Rutina de Inicialización del Formulario para que nos devuelva el Nombre de la Función de Nuestro Smartform en la variable v_nombre_func. Paso 3: Configuración de la Salida seteando 3 parámetros wa_control_parameters-getotf = 'X' "Retorno tab. OTF. Sin Imprimir, Visualizar o Envío por Fax wa_control_parameters-no_dialog = 'X' "Sin Diálogo con el Usuario wa_output_options-tdnoprev = 'X' " Visualización No Permitida Paso 4: Ejecución de la Función de Nuestro Smartform utilizando...

Acceder a esta publicación

Creado y Compartido por: Victor Norberto Levi

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

SAP Master

CONVERTIR A PDF Primera manera de convertir a PDF. Usando en nuestro programa standar de carga de datos la función 'SX_OBJECT_CONVERT_OTF_PDF' La otra forma de generar un PDF de nuestro smartform es la siguiente: Envíamos al SPOOL nuestra impresión del formulario Smartform, de esta manera estaremos generando un número de orden de spool, luego deberemos de ejecutar el programa estandar RSTXPDFT4, INTRODUCIENDO EL NUMERO DE LA ORDEN DE SPOOL Y ESPECIFICAMOS NOMBRE Y RUTA DEL PDF, DESPUES DE ESTO HABREMOS OBTENIDO NUESTRO FORMULARIO EN FORMATO PDF

Acceder a esta publicación

Creado y Compartido por: Gustavo Alberto Ramirez Franco

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

SAP Master

CONVERSIÓN DE UN FORMULARIO A PDF. PASO 1: Declarar todas las variables, tablas y estructuras que vamos a utilizar. PASO 2: Invocar a la función SSF_FUNCTION_MODULE_NAME con el nombre del formulario y nos retorna el modulo de función del formulario. PASO 3: Configuración de los parametros de salida, seteamos tres parametros. GETOTF = 'X' NO_DIALOG = 'X' TDNOPREV = 'X' PASO 4: Ejecución de la función del formulario. PASO 5: Completar la tabla OTFDATA. PASO 6: Completamos la tabla INTAB. PASO 7 Ejecutar la función SX_OBJECT_CONVERT_OTF_PDF esta función convierte el formulario de OTF a PDF esta conversión se almacena en la tabla OBJBIN. PASO 7: Ejecución del metodo GUI_DOWNLOAD...

Acceder a esta publicación

Creado y Compartido por: Juan Santamaria Borja

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

SAP Master

Para guardar el smartform com PDF Opción 1 * CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' * CALL FUNCTION v_nombre_form * CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF' Obtenemos el formulario en formato OTF y lo convertimos a PDF con esta función. * CALL METHODO 'GUI_DOWLOAD' Para guardar el archivo PDF Opción 2 * Enviar impresión del smartform al SPOOL. * RSTXPDFT4 Con el número de la orden de spool y la ruta en la que lo guardaremos

Acceder a esta publicación

Creado y Compartido por: Helen Silva Ruiz

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

SAP Master

Convertir un smartforms a PDF para ellos se modifica el programa impresor del formulario smartform, con una serie de pasos muy faciles de realizar. 1) declarar variables, estructuras y tablas internas a utilizar 2) captura del nombre del formulario ssf_function_module_name 3)configuracion de salida getotf no_dialog tdnoprev

Acceder a esta publicación

Creado y Compartido por: Andres Felipe Escobar Lopez

 


 

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