Smart forms PO number
Hi All
For Smart forms ,I created PO Number, it has ben saved but PO form can't be later recalled using transaction ME22N it's giving msg " PO Form does n't exist" is displayed.
any body give the solution for this
Regards
Chinna
hi
Just check whether PO created or not in EKPO or EKKO.
Then check Message setting .
Also check NACE and OMFE.
Regards
vinod
Similar Messages
-
Purchase order smart form - Version number and link to RFQ
Hi I am making enhancements to the purchase order smartform and wanted to print the version number (ekko-revno) on the print layout.
The structure for ekko which is being filled in at runtime from print program ZMMS_640FM06P has the field 'revno' blank. It is filling in the rest all fields. When I go into the ekko table I can see a value in this field. Does anyone know why this field is NOT being filled. I do not want to do a select on this field again in my smart form.
I would also like to know if there is a any way you can track back the RFQ number for a particular PO.
Thanks in advance..I hope It wil be there in table, check the entry & check teh work area entry.
Quotation will be available in PO item data. Keep a break point in Table and workarea.
Tx
Parthi
If helpful, reward points. -
Smart Forms : Total pages greater than 9 printing as *
Hi All,
I have one Smart form having 10 pages.
If the Total pages more than 9 pages its showing as page 9 of * .
but If total pages are less than 10 then its is coming properly as Page 1 of 9.
[Smart Forms Total number pages more than 9 print ing as *;
I have also check this thread and use &SFSY-FORMPAGES(3ZC)& But in this case it is coming page 1 of 01
Please help.
Thanks
GauravDefine the window containing this text as a "late processing window" (General attributes, Window type set to "L Final Window")
(For 46c/46d this option did not exist, there was a solution described in [Note 359009 - Postprocessing and query of the total number of pages|https://service.sap.com/sap/support/notes/359009] for older versions [Note 588352 - '*' when you output the total number of pages|https://service.sap.com/sap/support/notes/588352] suggested to "reserve sufficient space for the number of pages by specifying an explicit length in the formatting options")
Regards,
Raymond -
How to limit the number of rows in a smart form , sap script.
Can anyone tell me how to limit the number of rows in the output of a sap script/smart form. I have tried "protect/endprotect" in sap script but have no idea of how to do in smart form. In sap script the only way it has happened is by reducing the size of the main window.
Hi,
In Smartform also, why dont you try reducing the size of the window if you want to limit the rows in it. Also if you are printing Line Items in a LOOP, you can write
LOOP AT T_ITAB FROM 1 TO N in the LOOP Node if you know how many records exactly you want to display in 1 Page processing.
regards,
Mahesh -
How to get material number in smart form driver prog attached to MM01:NACE?
Hi,
I have attached driver program of smart form to MM01 usinfg nace.
On save smart form should get generated.
Can anybody guide me how to get material number from MM01 in driver program on saving MM01.
as of now am not getting values in smart form.
What additional lines to be coaded in driver program to get material number.
Thanks.hi,
use nast table in your import paramaters of smart forms.
In the Nast table you can find a field with object key which holds the Material Number.
Hope this helps.
Thanks,
subash -
Regarding Smart Forms(Number of copies)
Hi Experts,
I need to know the system field for holding the number of copies in smart forms, because i need to print the sequential number in the header window depends on the user's input(User will give the input no. of copies dynamically). Please advice meHi
The number of copies of an output is populated in the field NAST-ANZAL. The masterdata for the number of copies is maintained in NACH-ANZAL for any sales related transaction. The table NAST is however applicable irrespective of application.
You can pass on your data to this field (NASST-ANZAL) for your reqmt.
Reward if this helps.
Message was edited by:
Navaneetha Krishnan -
Text element not gettin refreshed in smart form
Hi
Text element does not get refreshed in the smart form preview.
I have a selection screen on which i have a few selection parameters and three application
toolbar buttons. "Save" , "Preview" and "Print". At the end of selection screen I have a
button "text" which when clicked takes me to the text element editor(FM 'TEXT_EDIT' )
I have to enter a project number on the selection screen, enter all other details and
then click on the "Text" button. I would then change /edit some text etc and come back
to sel screen. Now i click on preview , the smart form shows up and the text gets dispalyed
with the modified text.
I am passing the text name by appending "sometext" + project number to the TEXT_EDIT
and while eiditing and as a parameter to the smart form. In the smart form i have given the variable in the "include text".
Now Herez the problem.
I am still in selection screen and clik on the "text" button and it takes me to the
text editor. Now i add more lines, save and come back. Now i clik on preview
button and it displays the old text data.
When i come out of the transaction and renter , clik on the preview it displays data
correctly. Now if i repeat the steps
1.edit text button , add a few lines
2.preview button, shows data as entered in step 1.
3.edit text button, add few more lines
4.preview button .. the text displays is from step 1 and not 3.
I am not sure if this is lot of info for anybody to write an answer straight away but
if u need more info i can provide. I can do a read_text in the smart form but its toooooo
much of a pain for the data i need to display. million adjustments to be taken care of.
What could be the problem ? I have given all the basic settings like save parameter
in edit_text fm , checked all the print preview options in sdn.
Here are my questions
1. Why is the text element not getting refreshed.
2. After a form is displayed for preview , will it store anywhere in the buffer ? if yes
is there any method to clear it ?Hi,
The problem is not with text elements, it might be your size of window which you are using to display the text elements. Check your window size and modify that accordingly.
Cheers,
Bujji -
i have copied a driver programe of outbound delivery and modified in such a way the layout will convert to pdf and then download to pc, but the driver program is not executing online, so do i need to attache the driver program name and form name in nace t.code or how would i execute the program, when i am placing a break point in driver program and execute form its not stopping at break point, i am new to forms, help me out in this.
i have placed the code below plz verify it and say if any thing is wrong in the code, u will be shurely rewareded.
Print of a delivery note by SAPscript SMART FORMS *
REPORT Z_RLE_DELNOTE1.
declaration of data
INCLUDE Z_RLE_DELNOTE_DATA_DECLARE1.
*INCLUDE RLE_DELNOTE_DATA_DECLARE.
definition of forms
INCLUDE Z_RLE_DELNOTE_FORMS1.
*INCLUDE RLE_DELNOTE_FORMS.
INCLUDE Z_RLE_PRINT_FORMS1.
*INCLUDE RLE_PRINT_FORMS.
FORM ENTRY
FORM ENTRY USING RETURN_CODE US_SCREEN.
DATA: LF_RETCODE TYPE SY-SUBRC.
XSCREEN = US_SCREEN.
PERFORM PROCESSING USING US_SCREEN
CHANGING LF_RETCODE.
IF LF_RETCODE NE 0.
RETURN_CODE = 1.
ELSE.
RETURN_CODE = 0.
ENDIF.
ENDFORM.
FORM PROCESSING *
FORM PROCESSING USING PROC_SCREEN
CHANGING CF_RETCODE.
DATA: LS_PRINT_DATA_TO_READ TYPE LEDLV_PRINT_DATA_TO_READ.
DATA: LS_DLV_DELNOTE TYPE LEDLV_DELNOTE.
DATA: LF_FM_NAME TYPE RS38L_FNAM.
DATA: LS_CONTROL_PARAM TYPE SSFCTRLOP.
DATA: LS_COMPOSER_PARAM TYPE SSFCOMPOP.
DATA: LS_RECIPIENT TYPE SWOTOBJID.
DATA: LS_SENDER TYPE SWOTOBJID.
DATA: LF_FORMNAME TYPE TDSFNAME.
DATA: LS_ADDR_KEY LIKE ADDR_KEY.
*Begin of changes by 67.
DATA: ls_document_output_info TYPE ssfcrespd,
ls_job_output_options TYPE ssfcresop.
*End of changes by 67.
SmartForm from customizing table TNAPR
LF_FORMNAME = TNAPR-SFORM.
determine print data
PERFORM SET_PRINT_DATA_TO_READ USING LF_FORMNAME
CHANGING LS_PRINT_DATA_TO_READ
CF_RETCODE.
IF CF_RETCODE = 0.
select print data
PERFORM GET_DATA USING LS_PRINT_DATA_TO_READ
CHANGING LS_ADDR_KEY
LS_DLV_DELNOTE
CF_RETCODE.
ENDIF.
IF CF_RETCODE = 0.
PERFORM SET_PRINT_PARAM USING LS_ADDR_KEY
CHANGING LS_CONTROL_PARAM
LS_COMPOSER_PARAM
LS_RECIPIENT
LS_SENDER
CF_RETCODE.
ENDIF.
*Begin of changes by 67.
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'.
LS_CONTROL_PARAM-no_dialog = 'X'.
LS_CONTROL_PARAM-getotf = 'X'.
*End of changes by 67.
IF CF_RETCODE = 0.
determine smartform function module for delivery note
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = LF_FORMNAME
variant = ' '
direct_call = ' '
IMPORTING
FM_NAME = LF_FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
error handling
CF_RETCODE = SY-SUBRC.
PERFORM PROTOCOL_UPDATE.
ENDIF.
ENDIF.
IF CF_RETCODE = 0.
call smartform delivery note
CALL FUNCTION LF_FM_NAME
EXPORTING
ARCHIVE_INDEX = TOA_DARA
ARCHIVE_PARAMETERS = ARC_PARAMS
CONTROL_PARAMETERS = LS_CONTROL_PARAM
mail_appl_obj =
MAIL_RECIPIENT = LS_RECIPIENT
MAIL_SENDER = LS_SENDER
OUTPUT_OPTIONS = LS_COMPOSER_PARAM
USER_SETTINGS = ' '
IS_DLV_DELNOTE = LS_DLV_DELNOTE
IS_NAST = NAST
*Begin of changes by 67.
importing
document_output_info = ls_document_output_info "67
job_output_info = tab_otf_data
job_output_options = ls_job_output_options "67
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
*End of changes by 67.
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. "INS_HP_335958
ENDIF.
ENDIF.
get SmartForm protocoll and store it in the NAST protocoll
PERFORM ADD_SMFRM_PROT. DEL_HP_335958
--Function modules conversts from otf to pdf format.--
*Begin of chanes by 67.
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
USE_OTF_MC_CMD = 'X'
ARCHIVE_INDEX =
IMPORTING
BIN_FILESIZE = v_bin_filesize
TABLES
otf = v_tab_otf_final
doctab_archive = v_it_docs
lines = v_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.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = v_bin_filesize
filename = 'D:\67.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 = v_file_size
tables
data_tab = v_pdf_tab
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 i001(z00) WITH 'File not downloaded succesfully'.
else.
MESSAGE i002(z00) WITH 'File 67.PDF downloaded succesfully under D: drive'.
ENDIF.
*End of changes by 67.
ENDFORM.Hi,
Make sure that the output type you are using is configured for your custom-copied program name, form routine, and the form you are using. The output types can be found in transaction NACE.
Award points if found helpful.
Thanks,
Leo -
Is it possible to get direct print without preview of the Smart Form?
Hi,
I developed a custom report where line items are coming with a check-box in front of each item. User can select single/multiple line-items by checking those check-boxes. The report also has a PRINT button in application tool bar by clicking which a Smart Form will be printing for each item. Thats mean, for 10 selected line items, 10 forms will be printed.
But, after clicking the PRINT button, print preview of the form is coming and from there I can go for a print/printer. I do not need the print preview and want to have the direct print option while clicking the PRINT button. How can I have this functionality?
Thanks in Advance
RoyHi,
Initially I get the Form Name by calling FM: SSF_FUNCTION_MODULE_NAME and I store it in l_fm_name. now calling the FM: l_fm_name like below:
LOOP AT i_item INTO wa_item.
CALL FUNCTION l_fm_name
EXPORTING
wa_item = wa_item
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.
ENDLOOP.
As I have multiple form need to print, I am calling the smartform in loop. -
Error in opening the PDF file created from the smart form output.
Hi All,
i have a simple smart form which takes 3 values like customer no, name and no of times customer called and gives an out like
Customer 0001000000 with name Ravi called 5 times today.
I have to send this output to mail as an attachment.
for this i am coding as below.
******Call the SSF Function module
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = Form name
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = lv_fmname
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3
lv_partner_number = '0001000000'.
lv_name_org1 = 'Ravi'.
lv_z_no_calls_day = '5'.
lw_ctrlop-getotf = 'X'.
lw_ctrlop-no_dialog = 'X'.
lw_compop-tdnoprev = 'X'.
lw_compop-tddest = 'LP01'.
*******Call the Form Function module and get the OTF of form output
CALL FUNCTION lv_fmname
EXPORTING
name_org1 = lv_name_org1
partner_number = lv_partner_number
z_no_calls_day = lv_z_no_calls_day
control_parameters = lw_ctrlop
output_options = lw_compop
user_settings = ' '
IMPORTING
job_output_info = w_return
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
i_otf] = w_return-otfdata[.
*********Now here if i look in to the OTF data i got in debug it has the data i aniticipated along with some other data.
the output is in the format
TDPRINTCOM(2) TDPRINTPAR(70)
ST XXXX.. customer 0001000000 with
name.....
i have my data in the above format spread in three lines of the output otf table where XXXX... is some number.
***********To convert to PDF Format
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = lv_len_in
BIN_FILE =
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5
*********For testing purpose i created a file on the desktop with the the data in i_tline. it created PDF file but when i tried to open it it's giving an error.
i_objtxt = 'test with pdf-Attachment!'.
APPEND i_objtxt.
DESCRIBE TABLE i_objtxt LINES v_lines_txt.
READ TABLE i_objtxt INDEX v_lines_txt.
wa_doc_chng-obj_name = 'Smart Form'.
wa_doc_chng-obj_descr = 'Frequent Caller Alert_Day'.
wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + STRLEN( i_objtxt ).
*********Creating the Entry for the document
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.
i_objbin] = i_tline[.
DESCRIBE TABLE i_objbin LINES v_lines_bin.
READ TABLE i_objbin INDEX v_lines_bin.
i_objhead = 'Frequentcaller list_Day.pdf'.
APPEND i_objhead.
************Creating the entry for the attachment.
CLEAR : i_objpack.
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 1.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'ATTACHMENT'.
i_objpack-obj_descr = 'FCA'.
i_objpack-doc_size = v_lines_bin * 255 .
APPEND i_objpack.
CLEAR i_reclist.
i_reclist-receiver = 'mail id'.
i_reclist-rec_type = 'U'.
APPEND i_reclist.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = i_objpack
object_header = i_objhead
contents_bin = i_objbin
contents_txt = i_objtxt
receivers = i_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
This is all i am doing.
It is sending a mail with the attachment but we are not able to open the attachment. it's giving an error like file is damaged and couldn't be repaired.
I serched in the forum but i couldn't get the answer.
I suspect there is a problem in getting the OTF data..
Please help me in resolving this issue....
Thanks in advance.
RKCheck the sample , and see where you made the mistake.
REPORT ZPDF_MAIl.
DATA:
w_fm_name TYPE rs38l_fnam,
w_bin_filesize TYPE i,
w_filesize TYPE i,
w_lines_txt TYPE i,
w_lines_bin TYPE i.
DATA:
wa_ctrlop TYPE ssfctrlop,
wa_outopt TYPE ssfcompop,
wa_objhead TYPE soli_tab,
wa_buffer TYPE string,
wa_doc_chng TYPE sodocchgi1.
DATA:
BEGIN OF t_mail_ids OCCURS 0,
mailid TYPE ad_smtpadr,
END OF t_mail_ids,
t_otfdata TYPE ssfcrescl,
t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
t_pdf_tab TYPE tline OCCURS 0 WITH HEADER LINE,
t_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'Z195_TEST'
IMPORTING
fm_name = w_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc EQ 0.
ENDIF. " IF sy-subrc EQ 0.
wa_ctrlop-getotf = 'X'.
wa_ctrlop-no_dialog = 'X'.
wa_outopt-tdnoprev = 'X'.
CALL FUNCTION w_fm_name
EXPORTING
control_parameters = wa_ctrlop
output_options = wa_outopt
user_settings = 'X'
IMPORTING
job_output_info = t_otfdata
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc EQ 0.
ENDIF. " IF sy-subrc EQ 0.
t_otf[] = t_otfdata-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
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
err_bad_otf = 4
OTHERS = 5.
IF sy-subrc EQ 0.
ENDIF. " IF sy-subrc EQ 0.
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.
t_record = wa_buffer.
APPEND t_record.
SHIFT wa_buffer LEFT BY 255 PLACES.
IF wa_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
t_objtxt = ' To Change the COR, Use the Transaction ZCOR_CHANGE'.
APPEND t_objtxt.
t_objtxt = ' Check the Attached PDF file for COR'.
APPEND t_objtxt.
DESCRIBE TABLE t_objtxt LINES w_lines_txt.
READ TABLE t_objtxt INDEX w_lines_txt.
READ TABLE t_objtxt INDEX w_lines_txt.
wa_doc_chng-obj_name = 'COR Display'.
wa_doc_chng-expiry_dat = sy-datum + 10.
CONCATENATE 'COR' "w_cornr
'-' "w_stat_descr w_action_desc
INTO wa_doc_chng-obj_descr SEPARATED BY space.
wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size = w_lines_txt * 255.
CLEAR t_objpack-transf_bin.
t_objpack-head_start = 1.
t_objpack-head_num = 0.
t_objpack-body_start = 1.
t_objpack-body_num = w_lines_txt.
t_objpack-doc_type = 'RAW'.
APPEND t_objpack.
t_objpack-transf_bin = 'X'.
t_objpack-head_start = 1.
t_objpack-head_start = 1.
t_objpack-head_num = 0.
t_objpack-body_start = 1.
DESCRIBE TABLE t_objbin LINES w_lines_bin.
READ TABLE t_objbin INDEX w_lines_bin.
t_objpack-doc_size = w_lines_bin * 255 .
t_objpack-body_num = w_lines_bin.
t_objpack-doc_type = 'PDF'.
t_objpack-obj_name = 'COR'.
t_objpack-obj_descr = 'COR Test'.
* concatenate 'COR' w_cornr into t_objpack-obj_descr
* separated by space.
APPEND t_objpack.
*LOOP AT t_mail_ids.
CLEAR t_reclist.
t_reclist-receiver = 'INTENATEMAIL'.
t_reclist-rec_type = 'U'.
APPEND t_reclist.
*ENDLOOP.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = t_objpack
object_header = wa_objhead
contents_bin = t_objbin
contents_txt = t_objtxt
receivers = t_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 EQ 0.
ENDIF. -
Hello All ,
I have created one smart form and provided option to download the same in PDF. My Problem is that is downloaded in PDF but at the same time my end user want to see the print preview and take the print from there itself also.
I am using the following code can some one suggest me the what need to do the change after both option will work at the same time.
Please Note I have also made the use of property
SSFCOMPOP-TDNOPREV
But after this also issue not resolve. Some one Please suggest me the how to resolve the issue.
DATA :
WA_FMNM TYPE TDSFNAME, " Smart Forms: Form Name
WA_CNTL TYPE SSFCTRLOP, " FOR PDF PRINT
WA_POP TYPE SSFCOMPOP, " printer name
T_OTF_FROM_FM TYPE SSFCRESCL,
T_PDF_TAB LIKE TLINE OCCURS 0 WITH HEADER LINE,
T_OTF TYPE SSFCRESCL-OTFDATA,
W_BIN_FILESIZE TYPE I, " BINARY FILE SIZE
W_FILE_NAME TYPE STRING,
WA_FNMD TYPE RS38L_FNAM. " Name of Function Module
DATA:
W_FORM_NAME TYPE TDSFNAME,
W_FMODULE TYPE RS38L_FNAM,
W_CPARAM TYPE SSFCTRLOP,
W_OUTOPTIONS TYPE SSFCOMPOP,
W_FILE_PATH TYPE STRING,
W_FULL_PATH TYPE STRING.
SMART FORM FUNCTION MODULE
WA_FMNM = TEXT-113.
W_FORM_NAME = TEXT-113.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = WA_FMNM
IMPORTING
FM_NAME = WA_FNMD
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.
END FORM
WA_CNTL-GETOTF = 'X'.
WA_CNTL-NO_DIALOG = 'X'.
WA_CNTL-PREVIEW = SPACE .
WA_POP-TDDEST = 'LP01'.
CALL FUNCTION WA_FNMD
EXPORTING
CONTROL_PARAMETERS = WA_CNTL
OUTPUT_OPTIONS = WA_POP
V_APPLN_OB = V_APPLN_OB
V_KUNNR_OB = V_KUNNR_OB
V_EBELN = V_EBELN
V_CAT_NAME = V_CAT_NAME
V_VAR_NAME = V_VAR_NAME
IMPORTING
JOB_OUTPUT_INFO = T_OTF_FROM_FM
TABLES
T_ZCNC18 = T_ZCNC18
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[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
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
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.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
PROMPT_ON_OVERWRITE = 'X'
CHANGING
FILENAME = W_FILE_NAME
PATH = W_FILE_PATH
FULLPATH = W_FULL_PATH
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.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_BIN_FILESIZE
FILENAME = W_FULL_PATH
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'
TABLES
DATA_TAB = T_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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Regards
Swati NamdevHi Swati,
Pls refer the below code:
TABLES: ekko.
DATA: int_itab TYPE TABLE OF ekko WITH HEADER LINE.
DATA: wf_name TYPE rs38l_fnam.
DATA: wf_so1.
*For PDf Conversions
DATA: int_tab_otf_data TYPE ssfcrescl,
int_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE,
int_tab_otf_final TYPE itcoo OCCURS 0 WITH HEADER LINE,
file_size TYPE i,
bin_filesize TYPE i,
file_name TYPE string,
file_path TYPE string,
full_path TYPE string,
cparam TYPE ssfctrlop,
outop TYPE ssfcompop.
**Preview not allowed.
outop-tddest = 'LP01'.
cparam-no_dialog = 'X'.
cparam-preview = ' '.
cparam-getotf = 'X'.
GET PARAMETER ID 'EBLEN' FIELD wf_so1.
SELECT mandt ebeln bukrs bsart ernam ekorg bedat FROM ekko INTO TABLE
int_itab WHERE ebeln = wf_so1.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'Z_SMARTFORM_FINAL2'
IMPORTING
fm_name = wf_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.
CALL FUNCTION wf_name
EXPORTING
control_parameters = cparam
output_options = outop
user_settings = space
IMPORTING
job_output_info = int_tab_otf_data
TABLES
int_itab = int_itab.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
int_tab_otf_final[] = int_tab_otf_data-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = bin_filesize
TABLES
otf = int_tab_otf_final
lines = int_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.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename = file_name
path = file_path
fullpath = full_path.
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 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = bin_filesize
filename = full_path
filetype = 'BIN'
IMPORTING
filelength = file_size
TABLES
data_tab = int_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.
Regards,
Ramneet Ahuja -
How to get the PO no in the smart form and in the print program from ME23N
hello all,
I am new to smart form printing.I want to make a smartform along with print program that will show PO Details.It has to be created as an o/p type in ME23N. I have created an o/p type ZPO using NACE ..Can some one tell me how to get the PO number in the smart form and in the print program from ME23N ,so that I can then program the necessary calculations?plz help me with the code.Thanks in advance.
Subhabrata.Hello Everyone,
I am new to the forum and also to abap.
Excuse me if it is a basic question.
I am taking care of the output types.
This is 1st time SAP will be implemented .
For purchase order , I go to NACE ---EF----NEU---Processing routines
print output---SAPFM06P---ENTRY_NEU----MEDRUCK
FAX-----------SAPFM06P---ENTRY_NEU----MEDRUCK
EDI------------RANASTED--EDI_PROCESSING
DISTRIBUTION(ALE)---RANASTED---ALE_PROCESSING
Are the above settings fine ?
What are the standard programs for the PO outputs . I am looking for the smartforms and the driver program .
I searched and found that IN ECC 6 , we have to install OSS notes .
Gurus, please help me . Let me know what all oss notes be implemented and how to proceed from here .
Any help will be greatly appreciated ,
Monalisa -
Function module of smart form delivered an error
Hi All,
I am getting an error like this
"Function module /1BCDWB/SF00000007 of smart form delivered an error"
FUNCTION /1BCDWB/SF00000007.
""Global interface:
*" IMPORTING
*" VALUE(ARCHIVE_INDEX) TYPE TOA_DARA OPTIONAL
*" VALUE(ARCHIVE_PARAMETERS) TYPE ARC_PARAMS OPTIONAL
*" VALUE(CONTROL_PARAMETERS) TYPE SSFCTRLOP OPTIONAL
*" VALUE(MAIL_APPL_OBJ) TYPE SWOTOBJID OPTIONAL
*" VALUE(MAIL_RECIPIENT) TYPE SWOTOBJID OPTIONAL
*" VALUE(MAIL_SENDER) TYPE SWOTOBJID OPTIONAL
*" VALUE(OUTPUT_OPTIONS) TYPE SSFCOMPOP OPTIONAL
*" VALUE(USER_SETTINGS) TYPE TDBOOL DEFAULT 'X'
*" VALUE(ARCHIVE_INDEX_TAB) TYPE TSFDARA OPTIONAL
*" REFERENCE(ORDERADM_H) TYPE CRMT_OUTPUT_ORDERADM_H_COM
*" REFERENCE(ACTIVITY_H) TYPE CRMT_OUTPUT_ACTIVITY_H_COM
*" REFERENCE(OPPORT_H) TYPE CRMT_OUTPUT_OPPORT_H_COM
*" REFERENCE(ORGMAN_H) TYPE CRMT_OUTPUT_ORGMAN_H_COM
*" REFERENCE(PARTNER_H) TYPE CRMT_OUTPUT_PARTNER_H_COMT
*" REFERENCE(PRICINGDATA_H) TYPE
*" CRMT_OUTPUT_PRICINGDATA_H_COM
*" REFERENCE(SALES_H) TYPE CRMT_OUTPUT_SALES_H_COM
*" REFERENCE(SHIPPING_H) TYPE CRMT_OUTPUT_SHIPPING_H_COM
*" REFERENCE(PAYPLAN_D_H) TYPE
*" CRMT_OUTPUT_PAYPLAN_D_H_COMT
*" REFERENCE(CUMULAT_H) TYPE CRMT_OUTPUT_CUMULAT_H_COM
*" REFERENCE(CUSTOMER_H) TYPE CRMT_OUTPUT_CUSTOMER_H_COM
*" REFERENCE(ACS_H) TYPE CRMT_ACS_H_COM
*" REFERENCE(BILLING_H) TYPE CRMT_OUTPUT_BILLING_H_COMT
*" REFERENCE(CANCEL_H) TYPE CRMT_OUTPUT_CANCEL_H_COMT
*" REFERENCE(APPOINTMENT_H) TYPE
*" CRMT_OUTPUT_APPOINTMENT_H_COMT
*" REFERENCE(BILLPLAN_D_H) TYPE
*" CRMT_OUTPUT_BILLPLAN_D_H_COMT
*" REFERENCE(BILLPLAN_H) TYPE CRMT_OUTPUT_BILLPLAN_H_COMT
*" REFERENCE(STATUS_D_H) TYPE CRMT_OUTPUT_STATUS_D_H_COMT
*" REFERENCE(STATUS_H) TYPE CRMT_OUTPUT_STATUS_H_COMT
*" REFERENCE(SRV_SUBJECT_H) TYPE
*" CRMT_OUTPUT_SRV_SUBJECT_H_COMT
*" REFERENCE(SRV_SUBJECT_I) TYPE
*" CRMT_OUTPUT_SRV_SUBJECT_H_COMT
*" REFERENCE(SRV_REASON_H) TYPE
*" CRMT_OUTPUT_SRV_REASON_H_COMT
*" REFERENCE(SRV_RESULT_H) TYPE
*" CRMT_OUTPUT_SRV_RESULT_H_COMT
*" REFERENCE(SRV_REFOBJ_H) TYPE
*" CRMT_OUTPUT_SRV_REFOBJ_H_COMT
*" REFERENCE(SRV_REFOBJ_I) TYPE
*" CRMT_OUTPUT_SRV_REFOBJ_H_COMT
*" REFERENCE(ORDERADM_I) TYPE CRMT_OUTPUT_ORDERADM_I_COMT
*" REFERENCE(ORDERADM_I_IN) TYPE
*" CRMT_OUTPUT_ORDERADM_I_IN_COMT
*" REFERENCE(ORDERADM_I_QT) TYPE
*" CRMT_OUTPUT_ORDERADM_I_QT_COMT
*" REFERENCE(ORGMAN_I) TYPE CRMT_OUTPUT_ORGMAN_I_COMT
*" REFERENCE(PRICINGDATA_I) TYPE
*" CRMT_OUTPUT_PRICINGDATA_I_COMT
*" REFERENCE(PRICING_I) TYPE CRMT_OUTPUT_PRICING_I_COMT
*" REFERENCE(PRODUCT_I) TYPE CRMT_OUTPUT_PRODUCT_I_COMT
*" REFERENCE(SALES_I) TYPE CRMT_OUTPUT_SALES_I_COMT
*" REFERENCE(SERVICE_I) TYPE CRMT_OUTPUT_SERVICE_I_COMT
*" REFERENCE(SCHEDLIN_I) TYPE CRMT_OUTPUT_SCHEDLIN_I_COMT
*" REFERENCE(SCHEDLIN_I_CF) TYPE
*" CRMT_OUTPUT_SCHEDLIN_I_CF_COMT
*" REFERENCE(SHIPPING_I) TYPE CRMT_OUTPUT_SHIPPING_I_COMT
*" REFERENCE(PARTNER_I) TYPE CRMT_OUTPUT_PARTNER_I_COMT
*" REFERENCE(ITEM_CSTICS_I) TYPE CRMT_ITEM_CSTICS_TAB
*" REFERENCE(CUSTOMER_I) TYPE CRMT_OUTPUT_CUSTOMER_I_COMT
*" REFERENCE(BILLING_I) TYPE CRMT_OUTPUT_BILLING_I_COMT
*" REFERENCE(CANCEL_I) TYPE CRMT_OUTPUT_CANCEL_I_COMT
*" REFERENCE(FINPROD_I) TYPE CRMT_OUTPUT_FINPROD_I_COMT
*" REFERENCE(ORDPRP_I) TYPE CRMT_OUTPUT_ORDPRP_I_COMT
*" REFERENCE(APPOINTMENT_I) TYPE
*" CRMT_OUTPUT_APPOINTMENT_I_COMT
*" REFERENCE(BILLPLAN_D_I) TYPE
*" CRMT_OUTPUT_BILLPLAN_D_I_COMT
*" REFERENCE(BILLPLAN_I) TYPE CRMT_OUTPUT_BILLPLAN_I_COMT
*" REFERENCE(STATUS_I) TYPE CRMT_OUTPUT_STATUS_I_COMT
*" REFERENCE(WORKING_SET_E_S_BBP) TYPE
*" /1CN/WORKING_SET_E_S_BBP_T
*" REFERENCE(LANGUAGE) TYPE SY-LANGU
*" REFERENCE(SERVICE_I_ASSI) TYPE
*" CRMT_OUTPUT_SERVICE_I_***_COMT
*" VALUE(FORM_TYPE) TYPE C OPTIONAL
*" REFERENCE(Y_V_PARTNER_FLAG) TYPE C OPTIONAL
*" EXPORTING
*" VALUE(DOCUMENT_OUTPUT_INFO) TYPE SSFCRESPD
*" VALUE(JOB_OUTPUT_INFO) TYPE SSFCRESCL
*" VALUE(JOB_OUTPUT_OPTIONS) TYPE SSFCRESOP
*" EXCEPTIONS
*" FORMATTING_ERROR
*" INTERNAL_ERROR
*" SEND_ERROR
*" USER_CANCELED
DATA: %INPUT TYPE SSFCOMPIN,
%RESULT_OP TYPE SSFCRESOP,
%RESULT_PD TYPE SSFCRESPD,
%RESULT_CL TYPE SSFCRESCL,
%TABDEF LIKE LINE OF %TABDEFS,
%ARCTAB TYPE TSFDARA,
BEGIN OF %FULLNAME,
FORM TYPE TDSFNAME VALUE 'YCRM_ORDER_SERVICE_RMA',
VARI TYPE TDVARIANT,
ACTV TYPE TDBOOL VALUE 'X',
END OF %FULLNAME.
TYPES: T_XDF_ELEM(255) TYPE C,
T_XDF_ATTR(255) TYPE C.
DATA: IMPORT_PARAMETER TYPE TABLE OF RSIMP WITH HEADER LINE,
CHANGING_PARAMETER TYPE TABLE OF RSCHA WITH HEADER LINE,
TABLES_PARAMETER TYPE TABLE OF RSTBL WITH HEADER LINE,
EXPORT_PARAMETER TYPE TABLE OF RSEXP WITH HEADER LINE,
EXCEPTION_LIST TYPE TABLE OF RSEXC WITH HEADER LINE.
DATA: XDF_TABLE TYPE TSFIXML,
XDF_LENGTH TYPE I.
DATA: XDF_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT,
XDF_PARAMETER TYPE REF TO IF_IXML_ELEMENT,
L_NAME TYPE STRING,
L_VALUE TYPE STRING,
L_OBJECT TYPE STRING,
L_DATE TYPE STRING,
L_TIME TYPE STRING,
RC TYPE SY-SUBRC.
FIELD-SYMBOLS: <DATA_OBJECT> TYPE ANY.
CLASS CL_IXML DEFINITION LOAD.
CONSTANTS: C_XDF_ROOT_ELEMENT TYPE T_XDF_ELEM VALUE 'XDF',
C_XDF_ATTR_TYPE TYPE T_XDF_ATTR VALUE 'TYPE',
C_XDF_ATTR_TIMESTAMP TYPE T_XDF_ATTR VALUE 'TIMESTAMP',
C_XDF_ATTR_OBJ TYPE T_XDF_ATTR VALUE 'OBJECT'.
DATA: XDF_FACTORY TYPE REF TO IF_IXML,
XDF_ROOT_ELEMENT TYPE REF TO IF_IXML_ELEMENT.
DATA: L_GETSTATE TYPE DDTYPEGET,
L_TYPE TYPE DDTYPEKIND,
L_TYPE_NAME TYPE TYPENAME,
L_DDIC_OBJ TYPE DDTYPES OCCURS 0 WITH HEADER LINE,
L_DD02L_STATE TYPE DD02L OCCURS 0 WITH HEADER LINE,
L_DD04L_STATE TYPE DD04L OCCURS 0 WITH HEADER LINE,
L_DD40L_STATE TYPE DD40L OCCURS 0 WITH HEADER LINE,
L_XMLOUTPUT TYPE SSFXMLOUT,
L_SFSY TYPE SFSY.
TYPE-POOLS: ABAP.
DATA: XDF2_IXML TYPE REF TO IF_IXML,
XDF2_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT,
XDF2_SRC_OBJECTS TYPE ABAP_TRANS_SRCBIND_TAB,
XDF2_SRC_OBJECT LIKE LINE OF XDF2_SRC_OBJECTS.
DEFINE XDF2_APPEND_SRC_OBJECT.
XDF2_SRC_OBJECT-NAME = '&1'.
TRANSLATE XDF2_SRC_OBJECT-NAME TO UPPER CASE.
GET REFERENCE OF &2 INTO XDF2_SRC_OBJECT-VALUE.
APPEND XDF2_SRC_OBJECT TO XDF2_SRC_OBJECTS.
END-OF-DEFINITION.
DEFINE XDF_GET_DDIC_INFO.
CLEAR L_DDIC_OBJ.
IF NOT &2 IS INITIAL.
L_TYPE_NAME = &2.
ELSEIF NOT &1-TYP IS INITIAL.
L_TYPE_NAME = &1-TYP.
ELSEIF NOT &1-LINE_OF IS INITIAL.
L_TYPE_NAME = &1-LINE_OF.
ELSEIF NOT &1-TABLE_OF IS INITIAL.
L_TYPE_NAME = &1-TABLE_OF.
ELSE.
CLEAR L_TYPE_NAME.
ENDIF.
CALL FUNCTION 'DDIF_TYPEINFO_GET'
EXPORTING TYPENAME = L_TYPE_NAME
IMPORTING TYPEKIND = L_TYPE.
L_DDIC_OBJ-TYPENAME = L_TYPE_NAME.
L_DDIC_OBJ-TYPEKIND = L_TYPE.
IF NOT L_DDIC_OBJ IS INITIAL.
COLLECT L_DDIC_OBJ.
ENDIF.
END-OF-DEFINITION.
DEFINE XDF_CREATE_DATA_STREAM.
CLEAR: L_OBJECT, L_DATE, L_TIME, L_NAME, L_TYPE_NAME, L_VALUE.
IF &3 = 'T'.
CONCATENATE &1-PARAMETER '[]' INTO L_NAME.
ELSE.
L_NAME = &1-PARAMETER.
ENDIF.
IF NOT &2 IS INITIAL.
ASSIGN (L_NAME) TO <DATA_OBJECT>
CASTING TYPE (&2).
L_TYPE_NAME = &2.
ELSEIF NOT &1-TYP IS INITIAL.
ASSIGN (L_NAME) TO <DATA_OBJECT>
CASTING TYPE (&1-TYP).
L_TYPE_NAME = &1-TYP.
ELSEIF NOT &1-LINE_OF IS INITIAL.
ASSIGN (L_NAME) TO <DATA_OBJECT>.
L_TYPE_NAME = &1-LINE_OF.
ELSEIF NOT &1-TABLE_OF IS INITIAL.
ASSIGN (L_NAME) TO <DATA_OBJECT>.
L_TYPE_NAME = &1-TABLE_OF.
ELSE.
ASSIGN (L_NAME) TO <DATA_OBJECT>.
CLEAR L_TYPE_NAME.
ENDIF.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = L_NAME
DATAOBJECT = <DATA_OBJECT>
IMPORTING
DATA_AS_DOM = XDF_PARAMETER
CHANGING
DOCUMENT = XDF_DOCUMENT
EXCEPTIONS
OTHERS = 1.
L_NAME = C_XDF_ATTR_TYPE.
L_VALUE = L_TYPE_NAME.
CALL METHOD XDF_PARAMETER->SET_ATTRIBUTE
EXPORTING NAME = L_NAME
VALUE = L_VALUE
RECEIVING RVAL = RC.
CLEAR L_DDIC_OBJ.
READ TABLE L_DDIC_OBJ WITH KEY TYPENAME = L_TYPE_NAME.
CASE L_DDIC_OBJ-TYPEKIND.
WHEN 'S'.
READ TABLE L_DD02L_STATE WITH KEY TABNAME = &1-TYP.
L_DATE = L_DD02L_STATE-AS4DATE.
L_TIME = L_DD02L_STATE-AS4TIME.
L_OBJECT = 'TABL'.
WHEN 'E'. " data elements
READ TABLE L_DD04L_STATE WITH KEY ROLLNAME = &1-TYP.
L_DATE = L_DD04L_STATE-AS4DATE.
L_TIME = L_DD04L_STATE-AS4TIME.
L_OBJECT = 'DTEL'.
WHEN 'L'. " table types
READ TABLE L_DD40L_STATE WITH KEY TYPENAME = &1-TYP.
L_DATE = L_DD40L_STATE-AS4DATE.
L_TIME = L_DD40L_STATE-AS4TIME.
L_OBJECT = 'TTYP'.
WHEN OTHERS.
CLEAR: L_DATE, L_TIME, L_OBJECT.
ENDCASE.
L_NAME = C_XDF_ATTR_OBJ.
CALL METHOD XDF_PARAMETER->SET_ATTRIBUTE
EXPORTING NAME = L_NAME
VALUE = L_OBJECT
RECEIVING RVAL = RC.
L_NAME = C_XDF_ATTR_TIMESTAMP.
CONCATENATE L_DATE L_TIME INTO L_VALUE.
CALL METHOD XDF_PARAMETER->SET_ATTRIBUTE
EXPORTING NAME = L_NAME
VALUE = L_VALUE
RECEIVING RVAL = RC.
CALL METHOD XDF_ROOT_ELEMENT->APPEND_CHILD
EXPORTING NEW_CHILD = XDF_PARAMETER
RECEIVING RVAL = RC.
CHECK RC = 0.
END-OF-DEFINITION.
CLEAR DOCUMENT_OUTPUT_INFO.
CLEAR JOB_OUTPUT_INFO.
CLEAR JOB_OUTPUT_OPTIONS.
L_SFSY = SFSY.
CLEAR SFSY.
SFSY-PAGE = L_SFSY-PAGE.
SFSY-FORMPAGES = L_SFSY-FORMPAGES.
SFSY-JOBPAGES = L_SFSY-JOBPAGES.
SFSY-XDF = L_SFSY-XDF.
SFSY-XDF2 = L_SFSY-XDF2.
CLEAR INTSFSY.
IF CONTROL_PARAMETERS-NO_OPEN = SPACE.
CALL FUNCTION 'SSF_CREATE_COMPOSER_INPUT'
EXPORTING
ARCHIVE_PARAMETERS = ARCHIVE_PARAMETERS
USER_SETTINGS = USER_SETTINGS
MAIL_SENDER = MAIL_SENDER
MAIL_RECIPIENT = MAIL_RECIPIENT
MAIL_APPL_OBJ = MAIL_APPL_OBJ
OUTPUT_OPTIONS = OUTPUT_OPTIONS
CONTROL_PARAMETERS = CONTROL_PARAMETERS
IMPORTING
INPUT = %INPUT.
IF OUTPUT_OPTIONS-XSFCMODE = SPACE.
%INPUT-XSF = ' '.
%INPUT-XSFOUTMODE = ' '.
%INPUT-XSFOUTDEV = ' '.
%INPUT-XSFACTION = ' '.
%INPUT-XSFFORMAT = ' '.
ENDIF.
CALL FUNCTION 'SSFCOMP_OPEN'
EXPORTING INPUT = %INPUT
IMPORTING RESULT = %RESULT_OP
EXCEPTIONS OTHERS = 1.
IF SY-SUBRC <> 0.
%VARIANT = SPACE.
PERFORM %RAISE.
ENDIF.
JOB_OUTPUT_OPTIONS = %RESULT_OP.
ENDIF.
IF SFSY-XDF = 'X'.
CALL FUNCTION 'FUNCTION_IMPORT_INTERFACE'
EXPORTING
FUNCNAME = '/1BCDWB/SF00000007'
INACTIVE_VERSION = SPACE
TABLES
IMPORT_PARAMETER = IMPORT_PARAMETER
CHANGING_PARAMETER = CHANGING_PARAMETER
TABLES_PARAMETER = TABLES_PARAMETER
EXPORT_PARAMETER = EXPORT_PARAMETER
EXCEPTION_LIST = EXCEPTION_LIST
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_GETSTATE-TBHD = L_GETSTATE-TBFD = L_GETSTATE-DTEL = 'X'.
L_GETSTATE-TTHD = L_GETSTATE-TTFD = 'X'.
LOOP AT IMPORT_PARAMETER.
XDF_GET_DDIC_INFO IMPORT_PARAMETER IMPORT_PARAMETER-DBFIELD.
ENDLOOP.
LOOP AT CHANGING_PARAMETER.
XDF_GET_DDIC_INFO CHANGING_PARAMETER
CHANGING_PARAMETER-DBFIELD.
ENDLOOP.
LOOP AT TABLES_PARAMETER.
XDF_GET_DDIC_INFO TABLES_PARAMETER TABLES_PARAMETER-DBSTRUCT.
ENDLOOP.
CALL FUNCTION 'DD_TYPEINFO_GET'
EXPORTING GETSTATE = L_GETSTATE
TABLES DDTYPES_TAB = L_DDIC_OBJ[]
DD02L_TAB = L_DD02L_STATE[]
DD04L_TAB = L_DD04L_STATE[]
DD40L_TAB = L_DD40L_STATE[].
XDF_FACTORY = CL_IXML=>CREATE( ).
XDF_DOCUMENT = XDF_FACTORY->CREATE_DOCUMENT( ).
L_NAME = C_XDF_ROOT_ELEMENT.
XDF_ROOT_ELEMENT
= XDF_DOCUMENT->CREATE_ELEMENT( NAME = L_NAME ).
CALL METHOD XDF_DOCUMENT->APPEND_CHILD
EXPORTING NEW_CHILD = XDF_ROOT_ELEMENT
RECEIVING RVAL = RC.
CHECK RC = 0.
LOOP AT IMPORT_PARAMETER.
XDF_CREATE_DATA_STREAM IMPORT_PARAMETER
IMPORT_PARAMETER-DBFIELD 'I'.
ENDLOOP.
LOOP AT CHANGING_PARAMETER.
XDF_CREATE_DATA_STREAM CHANGING_PARAMETER
CHANGING_PARAMETER-DBFIELD 'C'.
ENDLOOP.
LOOP AT TABLES_PARAMETER.
XDF_CREATE_DATA_STREAM TABLES_PARAMETER
TABLES_PARAMETER-DBSTRUCT 'T'.
ENDLOOP.
CALL FUNCTION 'SSFCOMP_XDF_OUTPUT'
EXPORTING DOCUMENT = XDF_DOCUMENT
EXCEPTIONS OTHERS = 1.
ELSEIF SFSY-XDF2 = 'X'.
XDF2_IXML = CL_IXML=>CREATE( ).
XDF2_DOCUMENT = XDF2_IXML->CREATE_DOCUMENT( ).
XDF2_APPEND_SRC_OBJECT ARCHIVE_INDEX ARCHIVE_INDEX.
XDF2_APPEND_SRC_OBJECT ARCHIVE_PARAMETERS ARCHIVE_PARAMETERS.
XDF2_APPEND_SRC_OBJECT CONTROL_PARAMETERS CONTROL_PARAMETERS.
XDF2_APPEND_SRC_OBJECT MAIL_APPL_OBJ MAIL_APPL_OBJ.
XDF2_APPEND_SRC_OBJECT MAIL_RECIPIENT MAIL_RECIPIENT.
XDF2_APPEND_SRC_OBJECT MAIL_SENDER MAIL_SENDER.
XDF2_APPEND_SRC_OBJECT OUTPUT_OPTIONS OUTPUT_OPTIONS.
XDF2_APPEND_SRC_OBJECT USER_SETTINGS USER_SETTINGS.
XDF2_APPEND_SRC_OBJECT ARCHIVE_INDEX_TAB ARCHIVE_INDEX_TAB.
XDF2_APPEND_SRC_OBJECT ORDERADM_H ORDERADM_H.
XDF2_APPEND_SRC_OBJECT ACTIVITY_H ACTIVITY_H.
XDF2_APPEND_SRC_OBJECT OPPORT_H OPPORT_H.
XDF2_APPEND_SRC_OBJECT ORGMAN_H ORGMAN_H.
XDF2_APPEND_SRC_OBJECT PARTNER_H PARTNER_H.
XDF2_APPEND_SRC_OBJECT PRICINGDATA_H PRICINGDATA_H.
XDF2_APPEND_SRC_OBJECT SALES_H SALES_H.
XDF2_APPEND_SRC_OBJECT SHIPPING_H SHIPPING_H.
XDF2_APPEND_SRC_OBJECT PAYPLAN_D_H PAYPLAN_D_H.
XDF2_APPEND_SRC_OBJECT CUMULAT_H CUMULAT_H.
XDF2_APPEND_SRC_OBJECT CUSTOMER_H CUSTOMER_H.
XDF2_APPEND_SRC_OBJECT ACS_H ACS_H.
XDF2_APPEND_SRC_OBJECT BILLING_H BILLING_H.
XDF2_APPEND_SRC_OBJECT CANCEL_H CANCEL_H.
XDF2_APPEND_SRC_OBJECT APPOINTMENT_H APPOINTMENT_H.
XDF2_APPEND_SRC_OBJECT BILLPLAN_D_H BILLPLAN_D_H.
XDF2_APPEND_SRC_OBJECT BILLPLAN_H BILLPLAN_H.
XDF2_APPEND_SRC_OBJECT STATUS_D_H STATUS_D_H.
XDF2_APPEND_SRC_OBJECT STATUS_H STATUS_H.
XDF2_APPEND_SRC_OBJECT SRV_SUBJECT_H SRV_SUBJECT_H.
XDF2_APPEND_SRC_OBJECT SRV_SUBJECT_I SRV_SUBJECT_I.
XDF2_APPEND_SRC_OBJECT SRV_REASON_H SRV_REASON_H.
XDF2_APPEND_SRC_OBJECT SRV_RESULT_H SRV_RESULT_H.
XDF2_APPEND_SRC_OBJECT SRV_REFOBJ_H SRV_REFOBJ_H.
XDF2_APPEND_SRC_OBJECT SRV_REFOBJ_I SRV_REFOBJ_I.
XDF2_APPEND_SRC_OBJECT ORDERADM_I ORDERADM_I.
XDF2_APPEND_SRC_OBJECT ORDERADM_I_IN ORDERADM_I_IN.
XDF2_APPEND_SRC_OBJECT ORDERADM_I_QT ORDERADM_I_QT.
XDF2_APPEND_SRC_OBJECT ORGMAN_I ORGMAN_I.
XDF2_APPEND_SRC_OBJECT PRICINGDATA_I PRICINGDATA_I.
XDF2_APPEND_SRC_OBJECT PRICING_I PRICING_I.
XDF2_APPEND_SRC_OBJECT PRODUCT_I PRODUCT_I.
XDF2_APPEND_SRC_OBJECT SALES_I SALES_I.
XDF2_APPEND_SRC_OBJECT SERVICE_I SERVICE_I.
XDF2_APPEND_SRC_OBJECT SCHEDLIN_I SCHEDLIN_I.
XDF2_APPEND_SRC_OBJECT SCHEDLIN_I_CF SCHEDLIN_I_CF.
XDF2_APPEND_SRC_OBJECT SHIPPING_I SHIPPING_I.
XDF2_APPEND_SRC_OBJECT PARTNER_I PARTNER_I.
XDF2_APPEND_SRC_OBJECT ITEM_CSTICS_I ITEM_CSTICS_I.
XDF2_APPEND_SRC_OBJECT CUSTOMER_I CUSTOMER_I.
XDF2_APPEND_SRC_OBJECT BILLING_I BILLING_I.
XDF2_APPEND_SRC_OBJECT CANCEL_I CANCEL_I.
XDF2_APPEND_SRC_OBJECT FINPROD_I FINPROD_I.
XDF2_APPEND_SRC_OBJECT ORDPRP_I ORDPRP_I.
XDF2_APPEND_SRC_OBJECT APPOINTMENT_I APPOINTMENT_I.
XDF2_APPEND_SRC_OBJECT BILLPLAN_D_I BILLPLAN_D_I.
XDF2_APPEND_SRC_OBJECT BILLPLAN_I BILLPLAN_I.
XDF2_APPEND_SRC_OBJECT STATUS_I STATUS_I.
XDF2_APPEND_SRC_OBJECT WORKING_SET_E_S_BBP WORKING_SET_E_S_BBP.
XDF2_APPEND_SRC_OBJECT LANGUAGE LANGUAGE.
XDF2_APPEND_SRC_OBJECT SERVICE_I_ASSI SERVICE_I_ASSI.
XDF2_APPEND_SRC_OBJECT FORM_TYPE FORM_TYPE.
XDF2_APPEND_SRC_OBJECT Y_V_PARTNER_FLAG Y_V_PARTNER_FLAG.
XDF2_APPEND_SRC_OBJECT JOB_OUTPUT_INFO JOB_OUTPUT_INFO.
CALL TRANSFORMATION ID
SOURCE (XDF2_SRC_OBJECTS)
RESULT XML XDF2_DOCUMENT.
CALL FUNCTION 'SSFCOMP_XDF2_OUTPUT'
EXPORTING
DOCUMENT = XDF2_DOCUMENT
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC <> 0. RAISE ERROR. ENDIF.
ELSE.
%FULLNAME-VARI = %VARIANT.
%VARIANT = SPACE.
IF %HEADER IS INITIAL.
IMPORT HEADER TO %HEADER
REFTAB TO %REFTAB
DOCSTRUC TO %DOCSTRUC
TABDEF TO %TABDEFS
FROM DATABASE STXFCONTR(SF) ID %FULLNAME.
IF SY-SUBRC <> 0.
CALL FUNCTION 'SSFRT_SET_ERROR_PARAMETERS'
EXPORTING I_FORM = 'YCRM_ORDER_SERVICE_RMA'.
CALL FUNCTION 'SSFRT_WRITE_ERROR'
EXPORTING I_ERRNUMBER = SSF_ERR_NO_RUNTIME_OBJECT
I_MSGID = 'SSFCOMPOSER'
I_MSGNO = '002'
I_MSGV1 = 'YCRM_ORDER_SERVICE_RMA'.
PERFORM %RAISE.
ENDIF.
SELECT SINGLE SDATE STIME FROM D010SINF
INTO (%HEADER-SDATE, %HEADER-STIME)
WHERE PROG = '/1BCDWB/SAPLSF00000007'
AND R3STATE = 'A'.
IF SY-SUBRC <> 0.
CLEAR: %HEADER-SDATE,
%HEADER-STIME.
ENDIF.
ENDIF.
LOOP AT %TABDEFS INTO %TABDEF.
CALL FUNCTION 'SSFCOMP_TABLE_DEFINITION'
EXPORTING CPI = %HEADER-CPI
LPI = %HEADER-LPI
CHANGING TABDEF = %TABDEF
EXCEPTIONS OTHERS = 1.
IF SY-SUBRC <> 0. PERFORM %RAISE. ENDIF.
ENDLOOP.
CALL FUNCTION 'SSFRT_SET_REFERENCES'
EXPORTING I_REFTAB = %REFTAB .
CALL FUNCTION 'SSFRT_SET_LANGUAGES'
EXPORTING I_CONTROL_PARAMETERS = CONTROL_PARAMETERS
I_MASTERLANGUAGE = 'E'
I_THRULANG = ' '
I_INSTALL_LANG = ' '
IMPORTING O_LANGUAGES = %LANGUAGES.
%HEADER-LANGU = %LANGUAGES-LANGU1.
%WEXIT = SPACE.
PERFORM %GLOBAL_CLEAR.
PERFORM %GLOBAL_INIT.
CLEAR %ARCTAB.
IF ARCHIVE_INDEX_TAB[] IS INITIAL.
APPEND ARCHIVE_INDEX TO %ARCTAB.
ELSE.
%ARCTAB = ARCHIVE_INDEX_TAB.
ENDIF.
> CALL FUNCTION 'SSFCOMP_PROCESS_DOCUMENT'
EXPORTING HEADER = %HEADER
DOCSTRUC = %DOCSTRUC
STARTPAGE = CONTROL_PARAMETERS-STARTPAGE
ARCHIV_INDEX_TAB = %ARCTAB
MAIL_APPL_OBJECT = MAIL_APPL_OBJ
IMPORTING RESULT = %RESULT_PD
EXCEPTIONS OTHERS = 1.
IF SY-SUBRC <> 0. PERFORM %RAISE. ENDIF.
DOCUMENT_OUTPUT_INFO = %RESULT_PD.
ENDIF.
The function module 'SSFCOMP_PROCESS_DOCUMENT' is returning sy-subrc value 1.
Could you please tell me how to rectify this error
Thanks and Regards,
Soumya.The error I am getting is a formatting error as shown below:
L_ERROR-MSGTY E
L_ERROR-MSGID SSFCOMPOSER
L_ERROR-MSGV1 YTI_FCR004_RETREP_TYPE -
How to print BAR CODE in SAP SMART FORMS
Hi,
I want to print inspection lot's BAR CODE in the smart form, but i dont know the way how to print this into the smartform.
if anyone have any idea, please suggest me how to print this as it is urgent for me to complete the object.
Thanks in advance.
Best Regards,
Abnish JainHello Abnish,
Welcome to SDN.
We are able to print barcodes from smartforms. Doing this way, we print barcodes on laser printers.
We are also printing from sap to zebra printers using two ways:
1. Download the data to an excel sheet, then creating a macro that opens the printer port and sending the commands to the printer through this "file". All this is done via vb script provided with excel)..
2. The second way is creating a vbscript (an ascii file from sap) with the printer commands and then runing it using ws_execute.
You need a barcode reader to read the barcodes, and this scanner acts like a keyboard, it sends the data scanned to the active field on screen. (which might be a notepad, word, excel or an input field or ... ).
From 4.6c on, you can use smartforms to print barcodes without buying any barcode.dll software nor hardware extention like Bardimm on any laser/inkjet printer (Please Note that I haven't mentioned Zebra printers here!). To do this, you have to create a smartstyle -> character format with the desired barcode font (defined within sap). Then in the smartform, create a window, put the field and associate it the character format. That's all (I mean, that's all we do at least :-). I think, you have to consider the barcode specifications before sending the barcode value to the smartform (Just an example, if you're using 3 of 9, the code should start and end with an asterisk - '*' -) We're printing an interleaved 2 out of 5 barcode in our invoices due to a legal requirement, and we did it this way.
3. If you have a barcode scanner, then you should not need reading the barcode into an ascii file to get the data read in an standard or custom screen field. You can read it directly to the field you want. (unless... you have complex data coded in the barcode - for example if you're using an ean-ucc 128 compliant code and you're sending several fields in a single code ... In this case, an interface is almost mandatory because you must interpret the data fields according to the ucc standard, split the code into several fields .... and .... pure programming logic ).
To put it clear: if you have to read, for example, a barcode that holds the legal number of an invoice using a barcode scanner and this number should be sent to migo-> bktxt then you don't need an interface. The scanner itself acts like a fast operator entering the characters using a keyboard and filling in the field.
We're reading barcodes in several places (when we finish each pallet, when we receive an invoice, and so on. Each case is a different screen. We arent using an ascii file to read these barcodes. Furthermore, we read the invoice legal number into migo bktxt field (Head Text).
http://www.sap-img.com/abap/questions-about-bar-code-printing-in-sap.htm
Regards
Naren -
How to Print form using SAP Smart Forms which is migrated from SAP Script?
Hello every one,
i have a problem in printing form using smart form which is migrate from the SAP Script...so what method i have to use...if any one know the solution for this than plz reply me as soon as possible...hi
when ever u want to migrate the script to smartform u have to chage the driver program also..
refere this link to convert script to smartform
convert sapscript to smartform
c_formname = u r smartform name...
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = c_formname
IMPORTING
fm_name = v_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.
...........................CALL SMARTFORM............................
CALL FUNCTION v_fm_name
EXPORTING
control_parameters = st_control_parameters
output_options = st_output_options
IMPORTING
document_output_info = st_document_output_info
job_output_info = st_job_output_info
job_output_options = st_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.
Maybe you are looking for
-
Blackberry Desktop Manager for Mac does not recognize any Calendars for syncing
ive installed the blackberry desktop manager for my Macbook and hooked my phone up through the USB port when I started the program and when I go to the calendar section it says "There are no calendars available on this computer for syncing. Please l
-
FB4: Release build fails with RSLs using FlexSDK 3.5
Flash Builder 4 (v 4.0.1.277662) fails, when trying to do a release build with the following simple project setup: - Flash library project with a simple test class (using the 3.5 Flex SDK which ships with FB4) - Flex project with simple mxml-applicat
-
Hey, I have a few questions regarding how to make a background for my game. Since this is the first time ive tried to do this, I dont have much of an idea on what is good and what is bad to do. What I want to do is create a scrollable, tiled backgrou
-
The following error message came when I tried to open Firefox and install Firefox Home. "can't create mcafee plug-in object: TypeError: Components.classes[cid] is undefined"
-
AVI files showing up Black in QT
I hoped to use QuickTime Pro to convert some AVIs over from 720 x 544 Xvid compressed files over to AVI DV PAL files, as I see those specifications listed under Quick Time Pro's file and codecs supported. However, I can't seem to play these AVIs in Q