Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

smart form to pdf error

Former Member
0 Likes
410

When ever i am fetching the data into internal table and passing to function module instead of values i am getting hashes, the error is occuring in this line

CALL FUNCTION v_fun_name

EXPORTING

control_parameters = v_control_parameters

output_options = v_ssfcompop

w_vbak = wa_vbak

IMPORTING

document_output_info = v_ssfcrespd

job_output_info = v_ssfcrescl

job_output_options = v_ssfcresop

TABLES

i_vbak = i_vbak

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.

*Passing otftable data to i_itcoo.

i_itcoo = v_ssfcrescl-otfdata[].

The full code is pasted below check it :

&----


*& Include Z_PDF_CONVERSIONF *

&----


&----


*& Form f_validate_input

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_validate_input .

DATA: l_temp_ebeln(10) TYPE c .

*Checking if field is empty.

IF s_vbeln IS INITIAL.

MESSAGE i000(zcommon).

ENDIF.

*Checking whether purchase docuemnt no contains any character.

l_temp_ebeln = s_vbeln-low.

IF l_temp_ebeln+0(1) CA sy-abcde.

MESSAGE i001(zcommon).

ENDIF.

ENDFORM. " f_validate_input

&----


*& Form f_data_selection

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_data_selection .

*data: w_vbak type vbak,

  • t_vbak type table of vbak.

*

select single * from vbak into wa_vbak.

*select single * from vbak into w_vbak.

SELECT * FROM vbak INTO TABLE i_vbak WHERE vbeln = s_vbeln-low.

*This gets form name and function module name.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = c_formname

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

fm_name = v_fun_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.

*Setting print parameters.

v_control_parameters-no_dialog = 'x'. "(Is this necessary)

----


  • Setting of output options *

----


*Setting up language.

v_language = sy-langu.

TRANSLATE v_language TO UPPER CASE.

v_control_parameters-langu = v_language.

*Set control parameters to get the output format(OTF) from smart forms.

v_control_parameters-no_dialog = 'X'.

v_control_parameters-getotf = 'X'.

v_ssfcompop-tdnoprev = 'X'.

*Fetch device type from language.

CALL FUNCTION 'SSF_GET_DEVICE_TYPE'

EXPORTING

i_language = v_language

  • I_APPLICATION = 'SAPDEFAULT'

IMPORTING

e_devtype = v_devtype

EXCEPTIONS

no_language = 1

language_not_installed = 2

no_devtype_found = 3

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

----


  • Set Device type in output options *

----


*Fetches device type name.

v_ssfcompop-tdprinter = v_devtype. "Device type name.

CALL FUNCTION v_fun_name

EXPORTING

control_parameters = v_control_parameters

output_options = v_ssfcompop

w_vbak = wa_vbak

IMPORTING

document_output_info = v_ssfcrespd

job_output_info = v_ssfcrescl

job_output_options = v_ssfcresop

TABLES

i_vbak = i_vbak

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.

*Passing otftable data to i_itcoo.

i_itcoo = v_ssfcrescl-otfdata[].

----


  • Conversion of output format OTF into PDF *

----


*FM converts OTF format into pdf.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF'

max_linewidth = 132

  • ARCHIVE_INDEX = ' '

  • COPYNUMBER = 0

  • ASCII_BIDI_VIS2LOG = ' '

IMPORTING

bin_filesize = v_pdf_len

bin_file = v_pdf_xstring

TABLES

otf = i_itcoo

lines = i_tline

EXCEPTIONS

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

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

----


  • Concateneting file name to variable *

----


CONCATENATE 'arun' '.pdf' INTO v_fname.

CREATE OBJECT v_guiobject.

CALL METHOD v_guiobject->file_save_dialog

EXPORTING

default_extension = 'PDF'

default_file_name = v_fname

file_filter = v_filter

CHANGING

filename = v_fname

path = v_path

fullpath = v_fullpath

user_action = v_uact.

IF v_uact = v_guiobject->action_cancel.

EXIT.

ENDIF.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

bin_filesize = v_pdf_len

filename = v_fname

filetype = 'BIN'

  • APPEND = ' '

  • WRITE_FIELD_SEPARATOR = ' '

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = i_tline

  • FIELDNAMES =

  • 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

  • OTHERS = 22

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " f_data_selection

When ever i am fetching the data into internal table and passing to function module instead of values i am getting hashes, the error is occuring in this line

CALL FUNCTION v_fun_name

EXPORTING

control_parameters = v_control_parameters

output_options = v_ssfcompop

w_vbak = wa_vbak

IMPORTING

document_output_info = v_ssfcrespd

job_output_info = v_ssfcrescl

job_output_options = v_ssfcresop

TABLES

i_vbak = i_vbak

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.

*Passing otftable data to i_itcoo.

i_itcoo = v_ssfcrescl-otfdata[].

The full code is pasted below check it :

&----


*& Include Z_PDF_CONVERSIONF *

&----


&----


*& Form f_validate_input

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_validate_input .

DATA: l_temp_ebeln(10) TYPE c .

*Checking if field is empty.

IF s_vbeln IS INITIAL.

MESSAGE i000(zcommon).

ENDIF.

*Checking whether purchase docuemnt no contains any character.

l_temp_ebeln = s_vbeln-low.

IF l_temp_ebeln+0(1) CA sy-abcde.

MESSAGE i001(zcommon).

ENDIF.

ENDFORM. " f_validate_input

&----


*& Form f_data_selection

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_data_selection .

*data: w_vbak type vbak,

  • t_vbak type table of vbak.

*

select single * from vbak into wa_vbak.

*select single * from vbak into w_vbak.

SELECT * FROM vbak INTO TABLE i_vbak WHERE vbeln = s_vbeln-low.

*This gets form name and function module name.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = c_formname

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

fm_name = v_fun_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.

*Setting print parameters.

v_control_parameters-no_dialog = 'x'. "(Is this necessary)

----


  • Setting of output options *

----


*Setting up language.

v_language = sy-langu.

TRANSLATE v_language TO UPPER CASE.

v_control_parameters-langu = v_language.

*Set control parameters to get the output format(OTF) from smart forms.

v_control_parameters-no_dialog = 'X'.

v_control_parameters-getotf = 'X'.

v_ssfcompop-tdnoprev = 'X'.

*Fetch device type from language.

CALL FUNCTION 'SSF_GET_DEVICE_TYPE'

EXPORTING

i_language = v_language

  • I_APPLICATION = 'SAPDEFAULT'

IMPORTING

e_devtype = v_devtype

EXCEPTIONS

no_language = 1

language_not_installed = 2

no_devtype_found = 3

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

----


  • Set Device type in output options *

----


*Fetches device type name.

v_ssfcompop-tdprinter = v_devtype. "Device type name.

CALL FUNCTION v_fun_name

EXPORTING

control_parameters = v_control_parameters

output_options = v_ssfcompop

w_vbak = wa_vbak

IMPORTING

document_output_info = v_ssfcrespd

job_output_info = v_ssfcrescl

job_output_options = v_ssfcresop

TABLES

i_vbak = i_vbak

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.

*Passing otftable data to i_itcoo.

i_itcoo = v_ssfcrescl-otfdata[].

----


  • Conversion of output format OTF into PDF *

----


*FM converts OTF format into pdf.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF'

max_linewidth = 132

  • ARCHIVE_INDEX = ' '

  • COPYNUMBER = 0

  • ASCII_BIDI_VIS2LOG = ' '

IMPORTING

bin_filesize = v_pdf_len

bin_file = v_pdf_xstring

TABLES

otf = i_itcoo

lines = i_tline

EXCEPTIONS

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

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

----


  • Concateneting file name to variable *

----


CONCATENATE 'arun' '.pdf' INTO v_fname.

CREATE OBJECT v_guiobject.

CALL METHOD v_guiobject->file_save_dialog

EXPORTING

default_extension = 'PDF'

default_file_name = v_fname

file_filter = v_filter

CHANGING

filename = v_fname

path = v_path

fullpath = v_fullpath

user_action = v_uact.

IF v_uact = v_guiobject->action_cancel.

EXIT.

ENDIF.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

bin_filesize = v_pdf_len

filename = v_fname

filetype = 'BIN'

  • APPEND = ' '

  • WRITE_FIELD_SEPARATOR = ' '

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = i_tline

  • FIELDNAMES =

  • 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

  • OTHERS = 22

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " f_data_selection

1 REPLY 1
Read only

Former Member
0 Likes
375

put like this

<b>call function 'CONVERT_OTF'

exporting

format = 'PDF'

  • MAX_LINEWIDTH = 132

  • ARCHIVE_INDEX = ' '

  • COPYNUMBER = 0

  • ASCII_BIDI_VIS2LOG = ' '

importing

bin_filesize = len_out

  • BIN_FILE =

tables

otf = otf_table

lines = pdf

  • EXCEPTIONS

  • ERR_MAX_LINEWIDTH = 1

  • ERR_FORMAT = 2

  • ERR_CONV_NOT_POSSIBLE = 3

  • ERR_BAD_OTF = 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.

clear: file.

call function 'GUI_DOWNLOAD'

exporting

bin_filesize = len_out

filename = 'C:/TESTING07.PDF'

filetype = 'BIN'

  • APPEND = ' '

  • WRITE_FIELD_SEPARATOR = ' '

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

tables

data_tab = pdf

  • FIELDNAMES =

  • 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

  • OTHERS = 22

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.</b>

regards

Prabhu