cancel
Showing results for 
Search instead for 
Did you mean: 

Error for the PDF conversation of Smartform.

Former Member
0 Kudos

Hi All,

I am getting an error while converting the smartform to the PDF format.I am getting an error while calling the functiion module.

data : w_cparam TYPE ssfctrlop,

w_outoptions TYPE ssfcompop,

w_fmodule TYPE rs38l_fnam,

t_otf_from_fm TYPE ssfcrescl.

w_cparam-no_dialog = 'X'.

w_cparam-preview = space. " Suppressing the dialog box for print preview

w_cparam-getotf = 'X'.

w_outoptions-tddest = 'LP01'.

CALL FUNCTION w_fmodule

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = w_cparam

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = w_outoptions

  • USER_SETTINGS = 'X'

IMPORTING

  • DOCUMENT_OUTPUT_INFO =

job_output_info = t_otf_from_fm

  • JOB_OUTPUT_OPTIONS =

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.

t_otf[] = t_otf_from_fm-otfdata[].

I am not getting any data in the table t_otf_from_fm . Error getting is that " When calling a function module, one of the parmaeters was not specified."

Regards,

Rahul.

Edited by: rahul pai on Mar 29, 2010 8:39 AM

Edited by: rahul pai on Mar 29, 2010 8:42 AM

Edited by: rahul pai on Mar 29, 2010 10:29 AM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

the function module u2018CONVERT_OTFu2019 to convert the smart form to PDF format. The function module

returns the size of downloaded file. Using u2018WS_DOWNLOADu2019 function module, you can download the Smart

form to a PDF file in the required directory.

Sample Code

REPORT zswar.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME.

PARAMETER: p_date LIKE sy-datum.

PARAMETER: p_rea TYPE char255.

SELECTION-SCREEN: END OF BLOCK b1.

DATA: ws_ucomm LIKE sy-ucomm.

INITIALIZATION.

SET PF-STATUS 'STANDARD' OF PROGRAM 'ZSWAR'.

AT SELECTION-SCREEN.

ws_ucomm = sy-ucomm.

CASE ws_ucomm.

WHEN '&PDF'.

PERFORM f1000_download_form.

EXIT.

WHEN '&BACK'.

SET SCREEN 0.

EXIT.

WHEN '&EXIT'.

SET SCREEN 0.

EXIT.

WHEN '&canc'.

SET SCREEN 0.

LEAVE TO SCREEN 0.

ENDCASE.

&----


*& Form F1000_DOWNLOAD_FORM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f1000_download_form.

DATA: form_name TYPE rs38l_fnam.

DATA: wa_ctrlop TYPE ssfctrlop,

wa_outopt TYPE ssfcompop.

DATA: t_otfdata TYPE ssfcrescl,

t_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE.

DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.

DATA: w_filesize TYPE i.

DATA: w_bin_filesize TYPE i.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'ZSMARTFORM_SWAR'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

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

wa_ctrlop-getotf = 'X'.

wa_ctrlop-no_dialog = 'X'.

wa_outopt-tdnoprev = 'X'.

CALL FUNCTION form_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ctrlop

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = wa_outopt

user_settings = 'X'

mydate = p_date

reason = p_rea

IMPORTING

  • DOCUMENT_OUTPUT_INFO =

job_output_info = t_otfdata

  • JOB_OUTPUT_OPTIONS =

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.

t_otf[] = t_otfdata-otfdata[].

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format ='PDF'

Former Member
0 Kudos

REPORT ZDELIVERY_NOTE_PRINT1 NO STANDARD PAGE HEADING.

DATA: IT_OTF TYPE STANDARD TABLE OF ITCOO,

IT_DOCS TYPE STANDARD TABLE OF DOCS,

IT_LINES TYPE STANDARD TABLE OF TLINE,

ST_JOB_OUTPUT_INFO TYPE SSFCRESCL,

ST_DOCUMENT_OUTPUT_INFO TYPE SSFCRESPD,

ST_JOB_OUTPUT_OPTIONS TYPE SSFCRESOP,

ST_OUTPUT_OPTIONS TYPE SSFCOMPOP,

ST_CONTROL_PARAMETERS TYPE SSFCTRLOP,

V_LEN_IN TYPE SO_OBJ_LEN,

V_LANGUAGE TYPE SFLANGU VALUE 'E',

V_E_DEVTYPE TYPE RSPOPTYPE,

V_BIN_FILESIZE TYPE I,

V_NAME TYPE STRING,

V_PATH TYPE STRING,

V_FULLPATH TYPE STRING ,

V_FILTER TYPE STRING,

V_UACT TYPE I,

V_GUIOBJ TYPE REF TO CL_GUI_FRONTEND_SERVICES,

V_FILENAME TYPE STRING,

V_FM_NAME TYPE RS38L_FNAM.

*CONSTANTS C_FORMNAME TYPE TDSFNAME VALUE 'ZTEST'.

CALL FUNCTION 'SSF_GET_DEVICE_TYPE'

EXPORTING

I_LANGUAGE = V_LANGUAGE

I_APPLICATION = 'SAPDEFAULT'

IMPORTING

E_DEVTYPE = V_E_DEVTYPE.

ST_OUTPUT_OPTIONS-TDPRINTER = V_E_DEVTYPE.

*st_output_options-tdprinter = 'locl'.

ST_CONTROL_PARAMETERS-NO_DIALOG = 'X'.

ST_CONTROL_PARAMETERS-GETOTF = 'X'.

*************Data Declaration for SmartForms**************************

DATA: FM_NAME TYPE RS38L_FNAM,

L_T_CONTROL LIKE SSFCTRLOP,

SYINDEX TYPE I,

W_BIN_FILESIZE TYPE I,

FILE_SIZE TYPE I,

L_T_OUT TYPE SSFCOMPOP.

L_T_OUT-TDDEST = 'LP01'.

L_T_CONTROL-NO_DIALOG = 'X'.

L_T_CONTROL-PREVIEW = 'X'.

  • L_T_CONTROL-GETOTF = 'X'.

DATA: T_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,

" Internal table to hold OTF data recd from the SMARTFORM

T_OTF_FROM_FM TYPE SSFCRESCL,

" Internal table to hold the data from the FM CONVERT_OTF

T_PDF_TAB LIKE TLINE OCCURS 0 WITH HEADER LINE.

----


FORM SMARTFORM .

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'ZDELIVERY_NOTE1'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

FM_NAME = FM_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.

ELSE.

**.........................CONVERT TO OTF TO PDF.......................

CALL FUNCTION 'CONVERT_OTF_2_PDF'

IMPORTING

BIN_FILESIZE = V_BIN_FILESIZE

TABLES

OTF = ST_JOB_OUTPUT_INFO-OTFDATA

DOCTAB_ARCHIVE = IT_DOCS

LINES = IT_LINES

EXCEPTIONS

ERR_CONV_NOT_POSSIBLE = 1

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

*........................GET THE FILE NAME TO STORE....................

**CONCATENATE 'C:\Nastek\nast' ITAB_FINAL-PERNR '.pdf' INTO v_name.

  • CONCATENATE 'nast' itab-EBELN '.pdf' INTO V_NAME.

CREATE OBJECT v_guiobj.

CALL METHOD v_guiobj->file_save_dialog

EXPORTING

default_extension = 'pdf'

default_file_name = v_name

file_filter = v_filter

CHANGING

filename = v_name

path = v_path

fullpath = v_fullpath

user_action = v_uact.

IF v_uact = v_guiobj->action_cancel.

EXIT.

ENDIF.

*..................................DOWNLOAD AS FILE....................

*MOVE v_fullpath TO v_filename.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE = V_BIN_FILESIZE

FILENAME = V_NAME"v_filename

FILETYPE = 'BIN'

TABLES

DATA_TAB = IT_LINES

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.

ENDIF.

ENDFORM. " SMARTFORM

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi rahul ,

do it in this way

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = LF_FORMNAME

IMPORTING

FM_NAME = LF_FM_NAME

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 2

OTHERS = 3.

DATA F_NAME TYPE RLGRAP-FILENAME.

W_CTRLOP-GETOTF = 'X'.

W_CTRLOP-NO_DIALOG = 'X'.

W_COMPOP-TDNOPREV = 'X'.

CALL FUNCTION LF_FM_NAME

EXPORTING

CONTROL_PARAMETERS = W_CTRLOP

OUTPUT_OPTIONS = W_COMPOP

USER_SETTINGS = 'X'

IMPORTING

JOB_OUTPUT_INFO = W_RETURN

TABLES

IT_TAB = IT_TAB

IT_TAB1 = IT_TAB1

IT_BANK = IT_BANK

IT_T549T = IT_T549T

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.

I_OTF[] = W_RETURN-OTFDATA[].

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

MAX_LINEWIDTH = 132

IMPORTING

BIN_FILESIZE = V_LEN_IN

TABLES

OTF = I_OTF

LINES = I_TLINE

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

OTHERS = 4.

DATA W_FILESIZE.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

BIN_FILESIZE = V_LEN_IN

FILENAME = F_NAME

FILETYPE = 'BIN'

IMPORTING

FILELENGTH = W_FILESIZE

TABLES

DATA_TAB = I_TLINE

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

OTHERS = 10 .

Manohar2u
Active Contributor
0 Kudos

Hmm..where is your actual data for printing? is this empty smartform?

Also replace and give a try.


w_outoptions-tddest = 'LP01'.


w_outoptions-TDPRINTER = = 'LP01'.

Former Member
0 Kudos

Hi Manohar,

I had tried your suggestions but still it is giving the error.

Regards,

Rahul.