✒️ABAP / La conversión de un Smartform a PDF Por Jaime Gomez Arango

Selector Alummnos / Empresas

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


 

Escanear / Compartir

 

 


Sobre el autor

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

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

SAP Master


Proceso de conversión de SmartForm a PDF Introducción al objetivo de convertir un formulario SmartForm en un archivo PDF para facilitar su descarga y portabilidad en entornos SAP. Se modificará el programa impresor Z prueba_smartphone para lograr la conversión. Relevancia del requerimiento por la alta demanda en ambientes de trabajo SAP. Pasos detallados para la conversión Declaración de variables, estructuras y tablas internas necesarias para el proceso. Ejecución del módulo de funciones ssf_function_module module_name para obtener el nombre del módulo que genera el SmartForm. Configuración de la salida...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

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

SAP Master

Introducción: Aprende a convertir SmartForms a PDF directamente desde ABAP, permitiendo descargar documentos en formato portable (ideal para facturas, reportes, etc.). Este proceso evita la impresión física y facilita el almacenamiento digital. Pasos para Conversión a PDF 1. Declaración de Variables y Estructuras 2. Obtener Módulo de Función del SmartForm 3. Configurar Parámetros de Salida 4. Ejecutar SmartForm y Obtener OTF 5. Convertir OTF a PDF 6. Descargar PDF al Equipo Local Errores Comunes y Soluciones SmartForm no activado: Asegurar que el SmartForm esté activado antes de ejecutar. Tabla de entrada vacía: Verificar que ti_usuarios contenga...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

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

SAP Expert



Conversión de un Smartform a PDF en SAP En SAP, los Smartforms son herramientas utilizadas para diseñar y generar formularios de salida, como facturas, órdenes de compra, notas de crédito, entre otros documentos empresariales. Son una evolución de las tecnologías anteriores como SAPscript, y permiten una mayor flexibilidad y usabilidad. En muchos procesos de negocio, es común la necesidad de convertir estos formularios en archivos PDF, ya sea para almacenarlos digitalmente, enviarlos por correo electrónico o integrarlos en otros sistemas. ¿Qué es un Smartform? Un Smartform en SAP es un objeto desarrollado a través de la transacción SMARTFORMS, que permite definir...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

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

Temas: Conversión de un Smartform a PDF 1. Conversión de Smartform a PDF (Método Principal en Programa Impresor) Descripción: Este método implica una serie de pasos dentro del programa impresor del Smartform para generar la salida en formato OTF y luego convertirla a PDF. El resultado es un archivo PDF que puede ser descargado directamente al equipo del usuario. Cómo Acceder a la Opción (Pasos en el programa impresor): Declaración de variables: Declarar variables, estructuras y tablas internas necesarias. Ejecución SSF_FUNCTION_MODULE_NAME: Llamar a esta función con el nombre del Smartform para...

Acceder a esta publicación

Creado y Compartido por: Roberto Fluder Ahumada

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

SAP Senior

LA CONVERSION DE UN SMARTFORM A PAD: 1) Lo que vamos hacer como primer paso es declarar las variables, estructuras y tablas internas con las que vamos a trabajar. 2) Ejecutamos el módulo de funciones SSF_FUNTION_MODULE_NAME con el nombre del formulario Smartform y nos devuelve el nombre del módulo de funciones que genera el Smartform. 3) Vamos a configurar la salida asignado tres parámetros de la misma, que son getotf para obtener la salida en formato OTF, no_dialog para que no haya diálogo con el usuario y tdnoprev para que la visualización de la impresión no se permita.

Acceder a esta publicación

Creado y Compartido por: Luis Enrique Romero Pinto

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

SAP Expert


Existe otra forma de convertir un formulario smartform al formato PDF esta consisten en enviar al SPOOL la impresion del formulario smartform de esta forma estaremos generando un numero de orden spool, luego deberemos ejecutar el programa estandar RSTXPDFD4 introduciendo en la pantalla la leccion el numero de la orden spool luego tildamos la opcion hacer download del fichero 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. **************** (Sigla del inglés portable document format, formato de documento portátil) es un formato de almacenamiento de documentos digitales independiente de plataformas de software o...

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 Senior

La comversión de un formulario Smartform A PDF: Vamos a explicar cómo convertir Smartform en un archivo PDF, el cual podemos descargar en nuestro equipo. Para ello, modificaremos el programa impreso Smartform ZPRUEBA_SMARTFORM, con una serie de pasos muy faciles de realizar. Cabe destacar que este requerimiento es muy solicitado en los entornos de trabajo de SAP debido a la gran portabilidad de los documentos PDF. Veamos a continuación los pasos necesarios: Paso número 1: La declaración de Variables: Lo que vamos a hacer como primer paso es declarar las variables, estructuras y tablas internas con las que vamos a trabajar. Paso número dos: La ejecución de funciones SSF_FUNCTION_MODULE_NAME:...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

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

SAP Master

LA CONVERSACIÓN DE UN FORMULARIO SMARTFORM A PDF. 1-La declaración de variables Lo que vamos a hacer como primer paso es declarar las variables, estructuras y tablas internas con las que vamos a trabajar. 2-La ejecución del módulo de funciones SS_FUNCTION_MODULE_NAME Ejecutamos el modulo de funciones SS_FUNCTION_MODULE_NAME con el nombre del formulario SmartForm y nos devuelve el nombre del módulos de funciones que genera el SmartForm. 3-La configuración de la salida Vamos a configurar la salida asignando tres parámetros de la misma, que son getotf para obtener la salida en formato OTF, no_dialog para que no haya diálogo con el usuario y tdnoprev para que la visualizacion de la impresión...

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 Expert


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

Acceder a esta publicación

Creado y Compartido por: Jaime Eduardo Gomez Arango / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Expert


La conversión de un Smartform a PDF Se debe modificar el programa impresor Pasos para realizar la conversion: 1 - Declaracion de variables: 2 - Ejecucion del modulo de funciones SSF_FUNCTION_MODULE_NAME. 3 - Configuracion de la salida con trees paramentros getoff, no_dialog, tdnoprev. 4 - Ejecucion del modulo de funciones del smartform. 5 - Completamos la tabla interna TI_OTFDATA. 6 - Completamos la tabla interna TI_INTAB. 7 - Ejecutamos el modulo de funciones SX_OBJECT_CONVERT_OTF_PDF. 8 - Ejecutamos el metodo GUI_DOWNLOAD. Audio1: otra forma de convertir a PDF el form es mediante el envio al spool el form smartform. se genera un nro de orden de spool, se ejecuta el programa RSTXPDFT4, con el nro de orden...

Acceder a esta publicación

Creado y Compartido por: Pablo Adrian Oggero

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.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!