Problem in displaying smartform as pdf in portal
Hi all,
We created a smartform and we are displaying as a pdf in portal.Everything is fine and pdf is coming.But there is arabic data in the form .
Some of the arabic data is coming perfectly.
But some data is coming in Japanese or chinese and some data is coming like
F,D'! 9(/'D1-EF (F 5'D- 'D3JA 叉â
Department 'D%/'1) 'D9'E) DDEH'1/ 'D(41J).
Please let me know what could be the problem.
Thanks and Regards,
Rajesh
hi Rajesh.....
Could you explain me how 2 display SMARTFORM as PDF in portal..... please.....
I have the requirement as follows.....
By pressing a button the smartform must be generated.....
SO what must be the RFC o/p from ABAP.... I am ABAPER basically
and what the portal guys must do.....
pleaseeee
Similar Messages
-
Problem in displaying smartform as pdf in mail attachment
Hi Gurus,
I have generated a Smartform, converted to PDF and sent as attachment to email, upto this everything working fine.
Now the email is generated with the PDF attachment but Adobe Reader encounters an error when opening.
Error display as below mentioned
Adobe Reader could not open 'abc_X.PDF' because it is either not a supported file type or because the file has been damaged(for example, it was sent as an email attachment and wasn't correctly decoded).
The program cods as below mentioned
TYPES:BEGIN OF ty_viqmel,
qmnum TYPE viqmel-qmnum,
qmart TYPE viqmel-qmart,
objnr TYPE viqmel-objnr,
qmtxt TYPE viqmel-qmtxt,
erdat TYPE viqmel-erdat,
erzeit TYPE viqmel-erzeit,
aenam TYPE viqmel-aenam,
aufnr TYPE viqmel-aufnr,
qmdab TYPE viqmel-qmdab,
swerk TYPE viqmel-swerk,
END OF ty_viqmel.
TYPES: BEGIN OF ty_t001w,
werks TYPE werks,
name1 TYPE name1,
END OF ty_t001w.
DATA:IT_VIQMEL TYPE TABLE OF TY_VIQMEL,
WA_VIQMEL TYPE TY_VIQMEL,
IT_T001W TYPE TABLE OF TY_T001W,
WA_T001W TYPE TY_T001W,
IT_FINAL TYPE TABLE OF ZPM_T_MAINTENACE,
WA_FINAL TYPE ZPM_T_MAINTENACE.
data: it_diff like it_viqmel,
wa_diff like line of it_diff.
Smartforms data declarations
DATA: lv_fmname TYPE rs38l_fnam, "value 'ZPM_F_MAINTENANCE_REQUEST'.
w_cparam TYPE ssfctrlop ," To display smart form in arabic.
w_compop type ssfcompop,
W_bin_filesize TYPE i, " Binary File Size
w_FILE_NAME type string,
w_File_path type string,
w_FULL_PATH type string,
WA_BUFFER TYPE STRING. "To convert from 132 to 255
Internal table to hold the OTF data
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.
Objects to send mail.
data:I_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
I_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
I_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
I_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
WA_OBJHEAD TYPE SOLI_TAB,
WA_DOC_CHNG TYPE SODOCCHGI1.
DATA: V_LEN_IN LIKE SOOD-OBJLEN,
I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE,
V_LEN_OUT LIKE SOOD-OBJLEN,
V_LEN_OUTN TYPE I,
V_LINES_TXT TYPE I,
V_LINES_BIN TYPE I.
START-OF-SELECTION.
SELECT QMNUM
QMART
QMTXT
ERDAT
ERZEIT
AENAM
AUFNR
QMDAB
SWERK
OBJNR
FROM VIQMEL
INTO CORRESPONDING FIELDS OF TABLE IT_VIQMEL
WHERE aufnr = SPACE
and qmdab = '00000000'
AND ( QMART EQ 'M1' OR QMART EQ 'M2' OR QMART EQ 'M3' ).
IF SY-SUBRC = 0.
sort it_viqmel by qmnum.
ENDIF.
loop at it_viqmel into wa_viqmel.
perform 72hours.
endloop.
SELECT WERKS
NAME1 FROM T001W INTO TABLE IT_T001W
FOR ALL ENTRIES IN IT_diff
WHERE WERKS = IT_diff-SWERK.
IF SY-SUBRC = 0.
LOOP AT IT_diff INTO WA_diff.
READ TABLE IT_T001W INTO WA_T001W WITH KEY WERKS = WA_diff-SWERK.
IF SY-SUBRC = 0.
WA_FINAL-QMNUM = WA_diff-QMNUM.
WA_FINAL-QMTXT = WA_diff-QMTXT.
WA_FINAL-ERDAT = WA_diff-ERDAT.
WA_FINAL-ERZEIT = WA_diff-ERZEIT.
WA_FINAL-SWERK = WA_diff-SWERK.
WA_FINAL-NAME1 = WA_T001W-NAME1.
WA_FINAL-AENAM = WA_diff-AENAM.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
ENDIF.
ENDLOOP.
ENDIF.
clear:w_cparam,w_compop.
w_cparam-langu = 'AR'.
w_cparam-getotf = 'X'.
w_cparam-no_dialog = 'X'. " Suppressing the dialog box
W_COMPOP-TDNOPREV = 'X'.
w_compop-tddest = 'LP01'.
W_COMPOP-TDPRINTER = 'PRINTER'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZPM_F_MAINTENANCE_REQUEST'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = lv_fMNAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
CALL FUNCTION lv_fmname
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = w_cparam
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = w_compop
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = t_otf_from_fm
JOB_OUTPUT_OPTIONS =
TABLES
it_final = it_final
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
t_otf[] = t_otf_from_fm-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
ARCHIVE_INDEX = ' '
COPYNUMBER = 0
ASCII_BIDI_VIS2LOG = ' '
PDF_DELETE_OTFTAB = ' '
PDF_USERNAME = ' '
IMPORTING
BIN_FILESIZE = w_bin_FILESIZE
BIN_FILE =
TABLES
otf = T_OTF
lines = T_PDF_TAB
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5
IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.
LOOP AT T_PDF_TAB.
TRANSLATE T_PDF_TAB USING '~'.
CONCATENATE WA_BUFFER T_PDF_TAB INTO WA_BUFFER.
ENDLOOP.
TRANSLATE WA_BUFFER USING '~'.
DO.
I_RECORD = WA_BUFFER.
APPEND I_RECORD.
SHIFT WA_BUFFER LEFT BY 255 PLACES.
IF WA_BUFFER IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Attachment
REFRESH: I_RECLIST,
I_OBJTXT,
I_OBJBIN,
I_OBJPACK.
CLEAR WA_OBJHEAD.
I_OBJBIN[] = I_RECORD[].
Create Message Body Title and Description
I_OBJTXT = 'Maintenance Request'.
APPEND I_OBJTXT.
DESCRIBE TABLE I_OBJTXT LINES V_LINES_TXT.
READ TABLE I_OBJTXT INDEX V_LINES_TXT.
WA_DOC_CHNG-OBJ_NAME = 'ZPM_F_MAINTENANCE_REQUEST'.
*WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.
WA_DOC_CHNG-OBJ_DESCR = 'Maintenance Request'.
WA_DOC_CHNG-SENSITIVTY = 'F'.
WA_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255.
Main Text
CLEAR I_OBJPACK-TRANSF_BIN.
I_OBJPACK-HEAD_START = 1.
I_OBJPACK-HEAD_NUM = 0.
I_OBJPACK-BODY_START = 1.
I_OBJPACK-BODY_NUM = V_LINES_TXT.
I_OBJPACK-DOC_TYPE = 'RAW'.
APPEND I_OBJPACK.
Attachment (pdf-Attachment)
I_OBJPACK-TRANSF_BIN = 'X'.
I_OBJPACK-HEAD_START = 1.
I_OBJPACK-HEAD_NUM = 0.
I_OBJPACK-BODY_START = 1.
DESCRIBE TABLE I_OBJBIN LINES V_LINES_BIN.
READ TABLE I_OBJBIN INDEX V_LINES_BIN.
I_OBJPACK-DOC_SIZE = V_LINES_BIN * 255 .
I_OBJPACK-BODY_NUM = V_LINES_BIN.
I_OBJPACK-DOC_TYPE = 'PDF'.
I_OBJPACK-OBJ_NAME = 'ZPM_F_MAINTENANCE_REQUEST'.
I_OBJPACK-OBJ_DESCR = 'Maintenance Request'.
APPEND I_OBJPACK.
CLEAR I_RECLIST.
I_RECLIST-RECEIVER = '[email protected]'.
I_RECLIST-REC_TYPE = 'U'.
APPEND I_RECLIST.
ENDLOOP.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = WA_DOC_CHNG
PUT_IN_OUTBOX = 'X'
SENDER_ADDRESS = SY-UNAME
SENDER_ADDRESS_TYPE = 'B'
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL = w_sent_all
NEW_OBJECT_ID =
SENDER_ID =
tables
packing_list = I_OBJPACK
OBJECT_HEADER = WA_OBJHEAD
CONTENTS_BIN = I_OBJBIN
CONTENTS_TXT = I_OBJTXT
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
receivers = I_RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8
IF sy-subrc <> 0.
WRITE:/ 'Error When Sending the File', SY-SUBRC.
ELSE.
WRITE:/ 'Mail sent'.
ENDIF.
ENDIF.
ENDIF.
Please let me know what could be the problem.
Thanks in advance.
vs.sarvan.Hi Sarvan,
Post the code in code format.Check on the right side for example.
Sy-subrc = 0
Regards,
Madhu. -
In R/3 display smartform as pdf in a custom container
Hello,
I want to display smartform as pdf in a custom contianer . I was able to find all the right code from sdn.
but my problem is that when executed my sap gui is closed without any error.
I am unable to understand what is going wrong.
CALL METHOD G_HTML_CONTROL->SHOW_URL( URL = LV_URL
IN_PLACE = 'X' ). does not show the pdf.
Can any one help me to find out if we need to do some setting for MIME type application/pdf. Because I tried to display a bar chart in the custom container of MIME type text/html , and this is working fine.
Is any setting missing in our R/3 because of which the code is not getting executed.
below code is the exact copy from a post in sdn:
report ztest_pdf.
DATA: LT_PDF TYPE TABLE OF TLINE,
LS_PDF LIKE LINE OF LT_PDF,
LV_URL TYPE CHAR255,
PDF_FSIZE TYPE I,
LV_CONTENT TYPE XSTRING,
LT_DATA TYPE STANDARD TABLE OF X255.
DATA : L_JOB_OUTPUT_INFO TYPE SSFCRESCL.
DATA : LS_CONTROL_PARAM TYPE SSFCTRLOP.
DATA : G_HTML_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_HTML_CONTROL TYPE REF TO CL_GUI_HTML_VIEWER.
* pdf_control type ref to cl_gui_pdfviewer.
DATA : P_VBELN TYPE VBELN_VL.
DATA : i_html TYPE w3htmltabtype.
", g_url TYPE w3url
FIELD-SYMBOLS <FS_X> TYPE X.
INITIALIZATION.
LS_CONTROL_PARAM-GETOTF = 'X'.
LS_CONTROL_PARAM-NO_DIALOG = 'X'.
START-OF-SELECTION.
CALL FUNCTION '/1BCDWB/SF00000298'
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = LS_CONTROL_PARAM
* P_VBELN = P_VBELN
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS = 'X'
IMPORTING
* DOCUMENT_OUTPUT_INFO = L_DOCUMENT_OUTPUT_INFO
JOB_OUTPUT_INFO = L_JOB_OUTPUT_INFO
* JOB_OUTPUT_OPTIONS = L_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.
data pdfxstring type xstring.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
IMPORTING
BIN_FILESIZE = PDF_FSIZE
bin_file = pdfxstring
TABLES
OTF = L_JOB_OUTPUT_INFO-OTFDATA
LINES = LT_PDF
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4.
CALL SCREEN 100.
module STATUS_0100 output.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
CREATE OBJECT G_HTML_CONTAINER
EXPORTING
CONTAINER_NAME = 'PDF'.
CREATE OBJECT G_HTML_CONTROL
EXPORTING
PARENT = G_HTML_CONTAINER.
* Convert xstring to binary table to pass to the LOAD_DATA method
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = pdfxstring"LV_CONTENT
TABLES
BINARY_TAB = LT_DATA.
* PERFORM bar_chart .
* Load the HTML
CALL METHOD G_HTML_CONTROL->LOAD_DATA(
EXPORTING
TYPE = 'application' "'text' " 'application'
SUBTYPE = 'pdf' "'html' "'pdf'
IMPORTING
ASSIGNED_URL = lv_URL
CHANGING
DATA_TABLE = LT_DATA "i_html "LT_DATA
EXCEPTIONS
DP_INVALID_PARAMETER = 1
DP_ERROR_GENERAL = 2
CNTL_ERROR = 3
OTHERS = 4 ).
* Show it
CALL METHOD G_HTML_CONTROL->SHOW_URL( URL = LV_URL
IN_PLACE = 'X' ).
Thanks,
Jaya.
Edited by: kishan P on Jun 9, 2011 1:40 PMHello Sandra,
Thanks for your reply, but eventhen it fails to load the pdf. Is ADS required to be installed for this?
Can I just pass the pdf_fsize imported from CONVERT_OTF which is of type i.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
IMPORTING
BIN_FILESIZE = PDF_FSIZE
bin_file = pdfxstring
TABLES
OTF = L_JOB_OUTPUT_INFO-OTFDATA
LINES = LT_PDF
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4.
CALL METHOD G_HTML_CONTROL->LOAD_DATA(
EXPORTING
TYPE = 'application' "'text' " 'application'
SUBTYPE = 'pdf' "'html' "'pdf'
size = PDF_FSIZE
IMPORTING
ASSIGNED_URL = lv_URL
CHANGING
DATA_TABLE = LT_DATA "i_html "LT_DATA
EXCEPTIONS
DP_INVALID_PARAMETER = 1
DP_ERROR_GENERAL = 2
CNTL_ERROR = 3
OTHERS = 4 ).
Thanks,
Jaya. -
How to display smartform as PDF in web dynpro java
Hi,
Where can I find sample program to display smartform as PDF in web dynpro java.
Thanks.
Regards,
Henry1. Create a smart form in the R/3 side
2. Now create a function module with the corresponding export parameter:
3. Make sure that the function module is marked remote enabled.
4. In NWDS create an Adaptive RFC model which points to the FM created in R/3 under the webdynpro application
5. Now create an application and view inside it to display the PDF and Insert a frame inside the view
6. Create a value node and an attribute say url of type string inside that node and bind it to the source
7. In the doInit() method place the following code
> ZTest_Pdf_1_Input input = new ZTest_Pdf_Input();
> wdContext.nodeZTest_Pdf_Input().bind(input);
> try {
> wdContext.currentZTest_Pdf_InputElement().modelObject().execute();
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> wdContext.currentInternalElement().setUrl(convert(wdContext.currentOutputElement().getBin_File()));
Inside that view create a method to convert the string to url so that it can be passed as a string to the setUrl method of the currentContextElement() , say convet(byte[] doc_content) which return a string.
Inside that methos write the following code,
> String url = "";
> WDWebResourceType webResType = WDWebResourceType.PDF;
> IWDWebResource webResource = WDWebResource.getWebResource(doc_content, webResType);
> try {
> url = webResource.getURL();
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> return url;
Hope It will be helpful
Regards,
Sam Charles J. -
Display Smartform in PDF.
Hi All,
I have gone through the forum threads to convert a smartform into a pdf document. All of them say to use function module CONVERT_OTF. This function module converts the output of the smartform which is in OTF into the PDF format and we can download the information which opens up with Adobe Reader.
The question is whether we can display the output of the smartform in Adobe at runtime within the SAP GUI because if it is in the portal then we can set the attribute in SAP Connect, to display the output of SAP Script and Smartforms in PDF.
I tried this code
REPORT ZACOSTA_FETCH_DATA_COPY.
DATA : IT_ZACOSTA TYPE ZACOSTA_TAB_DET.
DATA : V_FORM_NAME TYPE TDSFNAME VALUE 'ZACOSTA_FORMS_COPY1',
V_FUNC_NAME TYPE RS38L_FNAM.
DATA: LS_CONTROL_PARAMETERS TYPE SSFCTRLOP,
LS_OUTPUT_OPTIONS TYPE SSFCOMPOP,
LS_JOB_OUTPUT_INFO TYPE SSFCRESCL,
LT_LINES TYPE TABLE OF TLINE,
L_DEVTYPE TYPE RSPOPTYPE,
L_SAM_HAWKINS TYPE INT4,
L_DOC TYPE DOCS OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
SELECT VBAKVBELN VBAKVKORG VBAK~VTWEG
VBAKSPART VBAKKUNNR VBAP~POSNR
VBAPMATNR VBAPARKTX VBAP~NETWR
VEDAVBEGDAT VEDAVENDDAT
INTO CORRESPONDING FIELDS OF TABLE IT_ZACOSTA
FROM VBAK INNER JOIN VBAP
ON VBAKVBELN = VBAPVBELN
INNER JOIN VEDA
ON VEDAVBELN = VBAPVBELN
WHERE VBAK~VBELN = '0040000264'. "Where Clause to be removed
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = V_FORM_NAME
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = V_FUNC_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.
Set language
LS_CONTROL_PARAMETERS-LANGU = SY-LANGU.
Set control parameters to get the output format (OTF) from Smart Forms
LS_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
LS_CONTROL_PARAMETERS-GETOTF = 'X'.
LS_OUTPUT_OPTIONS-TDNOPREV = 'X'.
CALL FUNCTION V_FUNC_NAME
EXPORTING
OUTPUT_OPTIONS = LS_OUTPUT_OPTIONS
CONTROL_PARAMETERS = LS_CONTROL_PARAMETERS
USER_SETTINGS = SPACE
IT_ZACOSTA = IT_ZACOSTA
IMPORTING
JOB_OUTPUT_INFO = LS_JOB_OUTPUT_INFO.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
ARCHIVE_INDEX = ' '
COPYNUMBER = 0
IMPORTING
BIN_FILESIZE = L_SAM_HAWKINS
bin_file = p_data " binary file
TABLES
OTF = LS_JOB_OUTPUT_INFO-OTFDATA
LINES = LT_LINES
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\Test.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'
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = LT_LINES
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.
The reson why I had to download is because this does not show the PDF at runtime. Am I missing some parameter here or is there some kind of configuration required to display the smartform in PDF at runtime within the SAP GUI.
Any hints on this would be greatly appreciated.
Best Regards,
SudhiHi,
Here is the sample code.This code will download the smartforms as PDF.Kindly reward points by clicking the star on the left of reply,if it helps.
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.
Tutorial on SMART FORMS
© 2005 SAP AG 7
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'
Tutorial on SMART FORMS
© 2005 SAP AG 8
max_linewidth = 132
ARCHIVE_INDEX = ' '
IMPORTING
bin_filesize = w_bin_filesize
TABLES
otf = t_otf
lines = t_pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
bin_filesize = w_bin_filesize
CODEPAGE = ' '
filename = 'd: est.PDF'
filetype = 'BIN'
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
filelength = w_filesize
TABLES
data_tab = t_pdf_tab
FIELDNAMES =
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
IF sy-subrc <> 0.
MESSAGE i003(z00) WITH 'File not downloaded succesfully'.
ELSE.
MESSAGE i003(z00) WITH 'File Test.pdf downloaded succesfully '
'under D drive'.
ENDIF.
ENDFORM. " F1000_DOWNLOAD_FORM -
Problem in converting smartform to PDF
Hi Experts,
I am facing the issue while converting the smartform to pdf form with the help of FM convert_otf_2_pdf .
Problem is that
CH3OH4OD7 3 , 4 and 7 are the subscipts in SMARTFORM like in a chemical formula ,but after conveting to PDF # is replacing the subscripts like CH#OH#OD# .
Kindly help in this issue.
Thanks
Sachin
Edited by: Rob Burbank on Feb 6, 2012 10:13 AMTry this example it will be help full
REPORT YSAMPLE5.
DATA:
w_form_name TYPE tdsfname VALUE 'YSAMPLE2',
w_fmodule TYPE rs38l_fnam,
w_cparam TYPE ssfctrlop,
w_outoptions TYPE ssfcompop,
W_bin_filesize TYPE i, " Binary File Size
w_FILE_NAME type string,
w_File_path type string,
w_FULL_PATH type string.
Internal tables declaration
Internal table to hold the OTF data
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.
This function module call is used to retrieve the name of the Function
module generated when the SMARTFORM is activated
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = w_form_name
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = w_fmodule
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.
Calling the SMARTFORM using the function module retrieved above
GET_OTF parameter in the CONTROL_PARAMETERS is set to get the OTF
format of the output
w_cparam-no_dialog = 'X'.
w_cparam-preview = space. " Suppressing the dialog box
" for print preview
w_cparam-getotf = 'X'.
Printer name to be used is provided in the export parameter
OUTPUT_OPTIONS
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[].
Function Module CONVERT_OTF is used to convert the OTF format to PDF
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
IMPORTING
BIN_FILESIZE = W_bin_filesize
BIN_FILE =
TABLES
otf = T_OTF
lines = T_pdf_tab
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.
To display File SAVE dialog window
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename = w_FILE_NAME
path = w_FILE_PATH
fullpath = w_FULL_PATH
USER_ACTION =
FILE_ENCODING =
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Use the FM GUI_DOWNLOAD to download the generated PDF file onto the
presentation server
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_bin_filesize
filename = w_FULL_PATH
FILETYPE = 'BIN'
tables
data_tab = T_pdf_tab
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
Problem In Displaying Smartform Text Field In Qual & Prd Server
Hi All,
I am working on a smartform in which i am checking the field which is displaying fine in quality server but when it is transported to PRD server it is displaying text field in the smartform having ms word document which is giving me problem in displaying in the PRD Server.
Please provide me guideline for it..Hi Sarvan,
Post the code in code format.Check on the right side for example.
Sy-subrc = 0
Regards,
Madhu. -
Problem when displaying smartform in chinese language
Hi ,
I have copied a standard smart form into Z smartform and added few fields in it as per the requirement .
When I display form in english or german it prints correctly .
when I print it in Chinese it prints the workarea name which I am using to print the values of the fileds .
it prints as below
&wa_vbak-budat&
please help , I tried changing the font type and size but it still shows the same.
Regards,
Gayatri HemnurHi Gouri,
The first step for translation is that u have to change the regional settings in your computer. Or You should logon with Chinese language.
If you have done that already, i think the problem may be that in the reoport the length of the field is smaller than the space required for the chinese characters.
Even if it is done i think you can try doing this, go to se63 translate the field once again and save it. I think this should solve your problem.
BR
Dep -
Action - Display smartform in PDF format
Hi All,
I have a requirement whereby on triggering of a print form action in crmd_order, the smartform should be displayed in PDF format and from there, user should be able to choose whether to save or to print the form. How can this be done?
Thanks!
CadyHi,
Here's the solutions.
1 .Show the PDF as pop-up upon trigger, very much the same how PDF attachment always pops up in the internet explorer. But this pops up in GUI.
Call the smartform FM with the GETOTF checked,
control_parameters-GETOTF = 'X'.
control_parameter-no_dialog = 'X'.
control_parameter-langu = <ur language>.
output_options-tddest = 'LOCL'.
output_option-tdimmed = 'X'.
output_option-tddelete = 'X'.
i_otf = job_output_info-OTFDATA.
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
i_otf = i_otf
EXCEPTIONS
CONVERT_OTF_TO_PDF_ERROR
CNTL_ERROR
OTHERS
2. Triggering action in ICWC and PDF pops up in new window.
Call function 'SSF_GET_DEVICE_TYPE'
EXPORTING
i_language = sy-langu
IMPORTING
e_devtype = devtype
EXCEPTIONS
no_language
language_not_installed
no_devtype_found
system_error
others
control_parameters-langu = sy-langu.
control_parameters-no_dialog = 'X'.
control_parameters-getotf = 'X'.
CALL FUNCTION '<your_form_FM>'
EXPORTING
CONTROL_PARAMETERS = control_parameters
OUTPUT_OPTIONS = output_options
IMPORTING
JOB_OUTPUT_INFO = output_data
TABLES
orderadm_h = <your tables>
EXCEPTIONS
FORMATTING_ERROR
INTERNAL_ERROR
SEND_ERROR
USER_CANCELED
OTHERS
call function 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = l_pdf_len
bin_file = l_pdf_xstring
TABLES
OTF = OUTPUT_DATA-OTFDATA
LINES = LT_LINES
EXCEPTIONS
err_max_linewidth
err_format
err_conv_not_possible
err_bad_otf
others
CREATE OBJECT cached_response TYPE CL_HTTP_RESPONSE EXPORTING add_c_msg = 1.
l_pdf_len = xstrlen( l_pdf_xstring ).
cached_response->set_data( data = l_pdf_xstring
length = l_pdf_len ).
cached_response->set_header_field( name = if_http_header_fields=>content_type
value = 'application/pdf' ).
cached_response->set_status( code = 200 reason = 'OK' ).
cached_response->server_cache_expire_rel( expires_rel = 180 ).
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_32 = guid.
CONCATENATE runtime->application_url '/' guid '.pdf' INTO display_url.
cl_http_server=>server_cache_upload( url = display_url
response = cached_response ).
url = display_url.
RETURN.
Declare display_url as an attribute in the implementation class as well as page attribute.
Push the display_url value to page attribute using the SET_MODELS method in the implementation class.
Clear display_url in DO_INIT_CONTEXT so that PDF only pops up when action is triggered.
Put this piece of code in the page htm.
I can't seem to be able to put the code here. It's a java script.
IF display_url IS NOT INITIAL.
* I can't show the script here for i kept getting error when i tried putting the java script here.
ENDIF.
3. To trigger a print action and send PDF attachment in background, a spool will still be created.
Call the smartform FM as usual.
lt_spoolid[] = es_job_output_info-spoolids[].
READ TABLE lt_spoolid INTO lw_spoolid INDEX 1.
CHECK lw_spoolid IS NOT INITIAL.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = lw_spoolid
no_dialog = 'X'
IMPORTING
pdf_bytecount = lw_bytecount
TABLES
pdf = lt_lines
EXCEPTIONS
err_no_otf_spooljob
err_no_spooljob
err_no_permission
err_conv_not_possible
err_bad_dstdevice
user_cancelled
err_spoolerror
err_temseerror
err_btcjob_open_failed
err_btcjob_submit_failed
err_btcjob_close_failed
OTHERS
IF sy-subrc NE 0.
*/ Set to incorrectly processed.
CALL METHOD cl_log_ppf=>add_message
EXPORTING
ip_problemclass = '2'
ip_handle = ip_application_log.
ENDIF.
CHECK sy-subrc = 0.
* Convert PDF from 132 to 255, combine everything into a single string.
LOOP AT lt_lines INTO lw_lines.
* Individually replace the space with a '~'.
TRANSLATE lw_lines USING ' ~'.
CONCATENATE lw_buffer lw_lines INTO lw_buffer.
ENDLOOP.
* Replace '~' by space.
TRANSLATE lw_buffer USING '~ '.
DO.
* Putting in the first 255 chars into the variable.
lw_record = lw_buffer.
* Append 255 chars as a record.
APPEND lw_record TO lt_record.
SHIFT lw_buffer LEFT BY 255 PLACES.
IF lw_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
* Object with PDF.
lt_objbin = lt_record.
DESCRIBE TABLE lt_objbin LINES lw_lines_bin.
* Object with main text for the mail.
lw_objtxt = <your text>
append lw_objtxt to lt_objtxt.
DESCRIBE TABLE lt_objtxt LINES lw_lines_txt.
* Document information.
lw_doc_chng-obj_name = 'Smartform'.
lw_doc_chng-expiry_dat = sy-datum + 20.
lw_doc_chng-obj_descr = <your text>.
lw_doc_chng-sensitivty = 'F'
lw_doc_chng-doc_size = lw_lines_txt * 255.
* Pack to main body as RAW
* Obj to be transported not in binary form
CLEAR lw_objpack-transf_bin.
* Start line of object header in transport packet.
lw_objpack-head_start = 1.
* Number of lines and object header in object packet.
lw_objpack-head_num = 0.
* Start line of object contents in an object packet.
lw_objpack-body_start = 1.
* Number of lines of the object contents in an object packet.
lw_objpack-body_num = lw_lines_txt.
* Code for document class.
lw_objpack-doc_type = 'RAW'.
APPEND lw_objpack TO lt_objpack.
* Packing as PDF.
lw_objpack-transf_bin = lc_x.
lw_objpack-head_start = 1.
lw_objpack-head_num = 0.
lw_objpack-body_start = 1.
lw_objpack-body_num = lw_lines_bin.
lw_objpack-doc_type = 'PDF'.
lw_objpack-obj_name = <your text>.
CONCATENATE '<your text>' '.pdf' INTO lw_objpack-obj_descr.
lw_objpack-doc_size = lw_lines_bin * 255.
APPEND lw_objpack TO lt_objpack.
* Document information.
CLEAR lw_reclist.
* Email receivers.
lw_reclist-receiver = <email address>
lw_reclist-express = 'X'.
lw_reclist-rec_type = 'U'. "Internet address.
lw_reclist-com_type ='INT'.
APPEND lw_reclist TO lt_reclist.
* Send mail.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lw_doc_chng
TABLES
packing_list = lt_objpack
object_header = lw_objhead
contents_txt = lt_objtxt
contents_bin = lt_objbin
receivers = lt_reclist
EXCEPTIONS
too_many_receivers
document_not_sent
document_type_not_exist
operation_no_authorization
parameter_error
x_error
enqueue_error
OTHERS
IF sy-subrc = 0.
COMMIT WORK.
ELSE.
*/ Set to incorrectly processed.
CALL METHOD cl_log_ppf=>add_message
EXPORTING
ip_problemclass = lc_2
ip_handle = ip_application_log.
ENDIF.
4. Trigger action and send PDF attacment as mail. No Spool.
control_parameters-GETOTF = 'X'.
control_parameter-no_dialog = 'X'.
control_parameter-langu = <ur language>.
output_options-tddest = 'LOCL'.
output_option-tdimmed = 'X'.
output_option-tddelete = 'X'.
CALL FUNCTION 'your smartform FM
EXPORTING
control_parameters = lw_ctrl_params
output_options = lw_output_options
user_settings = space "Has to be set to SPACE so it will get parameters from lw_output_options.
et_orderadm_h
et_orderadm_i
et_cancel
et_appointment
et_partner
es_but000
IMPORTING
job_output_info = lw_output "OTF format
EXCEPTIONS
formatting_error
internal_error
send_error
user_canceled
OTHERS
* Get the OTF data.
lt_otf = lw_output-otfdata[].
* Convert OTF format to PDF.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = lw_bin_filesize
TABLES
otf = lt_otf
lines = lt_lines
EXCEPTIONS
err_max_linewidth
err_format
err_conv_not_possible
err_bad_otf
OTHERS
The rest will the similiar to no.3, * Convert PDF from 132 to 255, combine everything into a single string. onwards.
Cheers,
ck. -
Trigger print action in ICWC, then display Smartform in PDF
Hi All,
We have the 'Print' action configured in CRM 5.0.
Upon triggering the 'Print' action in ICWC, I'd like the smartform be displayed in a new window in PDF format allowing user to print/save the PDF.
Any idea how can this be done? ThanksHi,
Have a look at this <a href="/people/sap.user72/blog/2004/11/10/bsphowto-generate-pdf-output-from-a-bsp
Regards,
Patrick. -
Problem in converting Smartform as PDF
Hi experts,
I am going to convert smartfrom as PDF.
when i am going to execute the smartfrom first it is displaying print priview window ,if yes press print preview,smartfrom is dispalying.if i press back then one pop window will come to confirm PDF..if press yes..again it is showing print preview.if again i press print preview option..then PDF will be genarted..
but req is the second Print preview window i have to avoid...so for this if deelete the code call function fmname after popup window( PDF conformation)..then PDF is not genaration...
can anybody tell me what to do? as of now my code is
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZQMIN_GC_SF'
IMPORTING
FM_NAME = GS_FMNAME.
CALL FUNCTION GS_FMNAME
EXPORTING
GV_INVNO = GV_INVNO.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
text_question = 'Do You Want to Create Guarantee Certificate as PDF'
IMPORTING
answer = lv_ucomm.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Check for PDF Conversion
IF lv_ucomm EQ '1'.
ls_control_param-getotf = 'X'.
CALL FUNCTION GS_FMNAME
EXPORTING
ARCHIVE_INDEX = toa_dara
ARCHIVE_PARAMETERS = arc_params
CONTROL_PARAMETERS = ls_control_param
GV_INVNO = GV_INVNO
IMPORTING
document_output_info = lt_ssfcrespd
job_output_info = lt_job_output_info
job_output_options = lt_ssfcresop.
lt_otf = lt_job_output_info-otfdata.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 0
text = 'Generating the PDF file'.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = lv_bin_filesize
TABLES
otf = lt_otf
lines = lt_pdf_tab
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
endif.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '*.pdf'
mode = 'O'
title = 'Down load file'
IMPORTING
filename = lv_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
lv_full_path = lv_file .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = lv_bin_filesize
filename = lv_full_path
filetype = 'BIN'
confirm_overwrite = 'X'
TABLES
data_tab = lt_pdf_tab
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 NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Else.
CALL FUNCTION GS_FMNAME
EXPORTING
GV_INVNO = GV_INVNO.
endif.Hi Veena,
Ur post is a little confusinng...From what i have gathered from your requirement, U want to supress the print preview of the samrtform.
This could be done thru the control parameter - PREVIEW field, and NO DIALOG = 'X'.
In case u dont want to issue a printout n just ahve the PDF downloadded, then -
*Setting for not issuing a printout and getting the OTF data
ls_control_param-getotf = 'X'.
ls_composer_param-tdnoprint = 'X'.
ls_composer_param-tdimmed = ' ' .
Let us know in case ur concerned issue is not pertaining to the above.
Cheers,
Varna -
Problem in downloading smartform as pdf file...
Hi SDNs.,
while downloading the invoice layout as .PDF file.. i am getting following error...
<b>OTF end command // missing in OTF data</b>
and the file is downloading as empty size... ( xyz.pdf with 0kb )
It is working fine in sandbox... i am getting this error in production...
what could be the probelm? when this type of error occurs?hi raghu.,
CALL FUNCTION LF_FM_NAME
EXPORTING
ARCHIVE_INDEX = TOA_DARA
ARCHIVE_PARAMETERS = ARC_PARAMS
CONTROL_PARAMETERS = W_CTRLOP
MAIL_RECIPIENT = LS_RECIPIENT
MAIL_SENDER = LS_SENDER
OUTPUT_OPTIONS = LS_COMPOSER_PARAM
USER_SETTINGS = 'X'
IS_BIL_INVOICE = LS_BIL_INVOICE
IS_NAST = NAST
IS_REPEAT = REPEAT
OUT_TYPE = V_OUTPUT
TEMP_LST = TEMP_LST
TEMP_CST = TEMP_CST
TEMP_TELF1 = TEMP_TELF1
TEMP_TELFX = TEMP_TELFX
TEMP_NAME1 = TEMP_NAME1
TEMP_STRAS = TEMP_STRAS
TEMP_ADRNR = TEMP_ADRNR
TMP_VAT = TMP_LST
TMP_CST = TMP_CST
TEMP_WERKS = TEMP_WERKS
VAT_DATE = VAT_DATE
CST_DATE = CST_DATE
VAT = VAT
I_ADDRESS = I_ADDRESS
FLAG_HDR = FLAG_HDR
I_ADDR = I_ADDR
TMP_CST_DATE = TMP_CST_DATE " mod-004
TMP_LST_DATE = TMP_LST_DATE " mod-004
IMPORTING
JOB_OUTPUT_INFO = W_RETURN
TABLES
IT_KONV = TEMP_KONV
IT_VBRP = IT_VBRP_FORM
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
error handling
CF_RETCODE = SY-SUBRC.
PERFORM PROTOCOL_UPDATE.
get SmartForm protocoll and store it in the NAST protocoll
PERFORM ADD_SMFRM_PROT.
ENDIF.
ENDDO.
LS_COMPOSER_PARAM-TDCOPIES = NAST_ANZAL.
IF NOT NAST_TDARMOD IS INITIAL.
NAST-TDARMOD = NAST_TDARMOD.
CLEAR NAST_TDARMOD.
ENDIF.
ENDIF.
************************add for pdf**********************************
I_OTF[] = W_RETURN-OTFDATA[].
DATA : ITAB2 LIKE DOCS OCCURS 0,
SIZE TYPE I.
BIL_NUM = LS_BIL_INVOICE-HD_GEN-BIL_NUMBER.
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
USE_OTF_MC_CMD = 'X'
ARCHIVE_INDEX =
IMPORTING
BIN_FILESIZE = SIZE
TABLES
OTF = I_OTF
DOCTAB_ARCHIVE = ITAB2
LINES = I_TLINE
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.
****************download************************
CONCATENATE 'C:\' BIL_NUM '.PDF' INTO FILENAME.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = FILENAME
FILETYPE = 'BIN'
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
IF SY-SUBRC = 0.
message i000.
ENDIF.
is this enough????
Thanking you.., -
SmartForms displayed as PDF in Portal
Hi,
We have implemented a new travel form using SmartForms and display it as PDF in Portal. Everything is fine except when you maximize the window, the PDF from is only half the screen. It does not expand to full screen. Does anyone know how to expand to Full Screen?
Thank you,
Robert Cvetashi Rajesh.....
Could you explain me how 2 display SMARTFORM as PDF in portal..... please.....
I have the requirement as follows.....
By pressing a button the smartform must be generated.....
SO what must be the RFC o/p from ABAP.... I am ABAPER basically
and what the portal guys must do.....
pleaseeee -
Make Smartform to PDF and send it by email
Hi,
I need to design a pdf file with smartforms and want to send it after that by email. I have made a function, that is using so_object_send to send html emails. Can I also use that one to send emails with attachment?
When I´m writing a report, that is calling the function of my smartform, how can I "print" this smartform as a pdf then? And where is the file stored, that I can send it by mail afterwards?
I hope, I described my problem clear enough.
Thank You for every answer!
ArneHi Arne,
check this link hope this solves your problem.
Re: Smartforms to PDF
regards,
venu. -
Displaying a Smartform as PDF in WDA
Dear All,
I am trying to display a smartform as PDf in the web dynpro application. I am getting the below error while trying to display the smartform.
Note
The following error text was processed in the system DE5 : Function module does not exist
The error occurred on the application server MTW02SDEC01_DE5_00 and in the work process 0 .
The termination type was: ERROR_MESSAGE_STATE
The ABAP call stack was:
Function: FUNCTION_IMPORT_INTERFACE of program SAPLSUNI
Method: DATASOURCE_2_FM_PARAMS of program CL_WD_ADOBE_SERVICES==========CP
Method: CREATE_PDF_DDIC of program CL_WD_ADOBE_SERVICES==========CP
Method: CREATE_PDF of program CL_WD_ADOBE_SERVICES==========CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L7STANDARD==============CP
Please let me know does any services needs to be activated in SICF or any other problem?
Thanks,
MugundhanHi Thomas,
Pleasure in receving the reply from you. I had created a node called pdf_data of cardinality 1..1, under which i had created a attribute called SOURCE of type XSTRING. i had used the below code to display the smart form.
DATA: node_pdf_data TYPE REF TO if_wd_context_node,
fm_name TYPE rs38l_fnam,
outop TYPE ssfcompop,
cparam TYPE ssfctrlop,
tab_otf_data TYPE ssfcrescl,
tab_otf_final TYPE TABLE OF itcoo,
bin_filesize TYPE i,
bin_file TYPE xstring,
pdf_tab TYPE TABLE OF tline.
" Get function module name for smart form
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMG_SF_TEST'
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
" Get Report Format With Data From Smart Form
outop-tdprinter = 'LP01'.
outop-tddest = 'LP01'.
cparam-no_dialog = 'X' .
cparam-preview = 'X'.
cparam-getotf = 'X'.
CALL FUNCTION fm_name
EXPORTING
control_parameters = cparam
output_options = outop
user_settings = space
IMPORTING
job_output_info = tab_otf_data
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
" Get all data of Smartform
tab_otf_final[] = tab_otf_data-otfdata[].
" Convert OTF data into PDF data
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = bin_filesize
bin_file = bin_file
TABLES
otf = tab_otf_final
lines = pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
" Set PDF Data to context attribute
node_pdf_data = wd_context->get_child_node( name = 'PDF_DATA' ).
CALL METHOD node_pdf_data->set_attribute
EXPORTING
value = bin_file
name = 'SOURCE'.
DATA lo_window_manager TYPE REF TO if_wd_window_manager.
DATA lo_api_component TYPE REF TO if_wd_component.
DATA lo_window TYPE REF TO if_wd_window.
lo_api_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
lo_window = lo_window_manager->create_window(
window_name = 'W_PDF'
* title =
* close_in_any_case = abap_true
message_display_mode = if_wd_window=>co_msg_display_mode_selected
* close_button = abap_true
button_kind = if_wd_window=>co_buttons_ok
message_type = if_wd_window=>co_msg_type_none
default_button = if_wd_window=>co_button_ok
lo_window->open( ).
The above code works fine. Finally in the bin_file i am getting the raw data. After that i am getting the below error.
The following error text was processed in the system DE5 : Function module does not exist
The error occurred on the application server MTW02SDEC01_DE5_00 and in the work process 0 .
The termination type was: ERROR_MESSAGE_STATE
The ABAP call stack was:
Function: FUNCTION_IMPORT_INTERFACE of program SAPLSUNI
Method: DATASOURCE_2_FM_PARAMS of program CL_WD_ADOBE_SERVICES==========CP
Method: CREATE_PDF_DDIC of program CL_WD_ADOBE_SERVICES==========CP
Method: CREATE_PDF of program CL_WD_ADOBE_SERVICES==========CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L7STANDARD==============CP
Maybe you are looking for
-
Using a NAS hardrive system to store finished work
Hello, I've just purchased a NAS hardrive system to basically transfer and store my 'finished' work from Lightroom and Photoshop. In reading the manual for LIghrroom, am I correct in thinking that the NAS server cannot be a 'catalog' ?? I basically j
-
Error during visual studio 2013 intallation on windows 8.1
After installing windows sdk 8.1, I've decided to install visual studio 2013,when it reached 70% of the installation process it stopped and told me that I have vGraphic data error(data redundancy) what is that??? and how can I fix it,this is the logs
-
Hi Experts, How to prepare sales details executive wise,state wise,district wise and product wise analysis Thanks priyanka
-
How do i transfer video files from my PC to iPad3?
I just purchased an iPad3. I need to transfer some video files (Windows 7) to the iPad3. Can't figure out how.
-
Hi, I have created a table having column datatype LONG RAW, I inserted data as a long paragraph in this table, now I want to display this data into oracle apex,how I'll do? kindly help me. Thanks in Advance. Baloch