MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Archivo no empieza por '%PDF-' (foro/showthread.php?t=47501)

XJerickX 26/12/11 13:13:38

Archivo no empieza por '%PDF-'
 
Buenos dias.

Aqui solicitando su ayuda, estuve haciendo un debugg a un programa que convierte un smartform en un PDF y lo muestra el caso es que en el smartform hay una tabla y el PDF solo se muestra cuando hay un solo registro, por que cuando hay 2 o mas me manda un mensaje que dice:

El archivo no empieza por '%PDF-'
Y el PDF no muestra nada.
Espero me puedan dar una mano y explicarme por que sale este mensaje.

rubendaga 26/12/11 14:41:52

Y que función estás utilizando para la conversión, yo lo he hecho con SX_OBJECT_CONVERT_OTF_PDF y me funciona muy bien independiente de lo que contenga el smartform, acá te pongo un pedazo de código de como lo utilizo, depronto te puede servir.

Slds.

*----------------------------------------------------------------------*
*.Definición Estructuras Locales.
*----------------------------------------------------------------------*
DATA:
ls_parameters TYPE ssfctrlop,
ls_options TYPE ssfcompop,
ls_pack TYPE sopcklsti1,
ls_otfdata TYPE ssfcrescl,
lc_body(255) TYPE c.
*----------------------------------------------------------------------*
**.Asignamos Constantes y Variables Impresión.
*----------------------------------------------------------------------*
CONSTANTS:
l_cte_tdarmod(1) TYPE c VALUE '1',
l_cte_tdnoprint(1) TYPE c VALUE 'X',
l_cte_tddest(4) TYPE c VALUE 'ZPDG',
l_cte_tdcopies(3) TYPE c VALUE '001',
l_cte_device(7) TYPE c VALUE 'PRINTER',
l_cte_no_dialog(1) TYPE c VALUE 'X',
l_cte_getotf(1) TYPE c VALUE 'X',
l_cte_langu(1) TYPE c VALUE 'S',
l_ent TYPE c VALUE cl_abap_char_utilities=>newline.

ls_options-tdarmod = l_cte_tdarmod.
ls_options-tdnoprint = l_cte_tdnoprint.
ls_options-tddest = l_cte_tddest.
ls_options-tdreceiver = sy-uname.
ls_options-tdcopies = l_cte_tdcopies.

ls_parameters-device = l_cte_device.
ls_parameters-no_dialog = l_cte_no_dialog.
ls_parameters-getotf = l_cte_getotf.
ls_parameters-langu = l_cte_langu.

*----------------------------------------------------------------------*
* Definición de variables locales
*----------------------------------------------------------------------*
DATA:
func_module_name TYPE rs38l_fnam,
pa_form TYPE ssfscreen-fname.
* Parámetro del Smartform
pa_form = 'ZFI..........'.
*----------------------------------------------------------------------*
*.Definición referencia a clases.
*----------------------------------------------------------------------*
DATA:
lo_mail TYPE REF TO zcl_sub_send_mail.
*----------------------------------------------------------------------*
*.Definición Tablas Internas.
*----------------------------------------------------------------------*
DATA:
lt_soli TYPE soli_tab,
pti_body TYPE bcsy_text,
pa_subject TYPE so_obj_des,
pti_file TYPE solix_tab,
pti_mail TYPE bcsy_smtpa,
les_mail TYPE ad_smtpadr.

* Determinar el nombre generado por el módulo de función del
* Smartform
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = pa_form
IMPORTING
fm_name = func_module_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* Llamar el módulo de función generado por el Smartform
CALL FUNCTION func_module_name
EXPORTING
control_parameters = ls_parameters
output_options = ls_options
user_settings = SPACE
ges_adrc = ges_adrc
IMPORTING
job_output_info = ls_otfdata
TABLES
gtt_bsik = gti_bsik
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
**.Asignamos Valor OTF.
lt_soli = ls_otfdata-otfdata.
**.Convertir OTF a PDF.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'otf'
format_dst = 'pdf'
devtype = 'lp01'
CHANGING
transfer_bin = ls_pack-transf_bin
content_txt = lt_soli
content_bin = pti_file
objhead = lt_soli
len = ls_pack-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.

XJerickX 29/12/11 19:53:21

Gracias.. pero el smartforms que visualizo se gestiona a travez de una pagina BSP en CRM y lo voy hacer es hacer un debugg desde la tx smartforms para localizar si el error se produce ahi, pero gracias..


Husos Horarios son GMT. La hora en este momento es 19:05:16.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web