hi guys,
in my workflow, i want to send attachment(PDF) with mail. i am using this function module in the workflow standrad task in a method.
but its not working , workflow status shows inprocess,
can u tell me any erroe in this code,
FUNCTION y_check01.
*"----
""Local interface:
*" IMPORTING
*" REFERENCE(V_FILE_PATH) TYPE STRING
*" REFERENCE(V_SUBJECT) TYPE SO_OBJ_DES
*" TABLES
*" IT_RECEIVERS STRUCTURE SOMLRECI1
*" IT_MESSAGE STRUCTURE SOLISTI1
*"----
DATA: gd_cnt TYPE i,
gd_sent_all(1) TYPE c,
gd_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc.
DATA objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE.
DATA : it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
Binary store for File
DATA : BEGIN OF it_file OCCURS 0,
row(255),
END OF it_file.
splitting of the filepath
DATA : BEGIN OF i_split OCCURS 0,
row(50),
END OF i_split.
DATA tab_lines LIKE sy-tabix.
REFRESH : it_file, objbin, it_packing_list, i_split.
CLEAR : it_file, objbin, it_packing_list, i_split.
DESCRIBE TABLE it_message LINES tab_lines.
READ TABLE it_message INDEX tab_lines.
gd_doc_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( it_message ).
gd_doc_data-obj_langu = sy-langu.
gd_doc_data-obj_name = 'SENDFILE'.
gd_doc_data-obj_descr = v_subject.
gd_doc_data-sensitivty = 'O'.
CLEAR it_packing_list.
it_packing_list-head_start = 1.
it_packing_list-head_num = 0.
it_packing_list-body_start = 1.
it_packing_list-doc_type = 'RAW'.
it_packing_list-body_num = tab_lines.
APPEND it_packing_list.
IF v_file_path IS NOT INITIAL.
DATA : v_len TYPE i,
v_index LIKE sy-index,
v_doc_type TYPE so_obj_tp,
v_filename TYPE so_obj_des .
v_len = STRLEN( v_file_path ) - 3.
v_doc_type = v_file_path+v_len(3) .
TRANSLATE v_doc_type TO UPPER CASE .
SPLIT v_file_path AT '\' INTO TABLE i_split .
DESCRIBE TABLE i_split LINES v_index .
READ TABLE i_split INDEX v_index .
v_filename = i_split-row .
v_len = STRLEN( v_filename ) - 4.
v_filename = v_filename(v_len) .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file_path
filetype = 'BIN'
TABLES
data_tab = it_file.
LOOP AT it_file.
MOVE it_file-row TO objbin-line.
APPEND objbin.
ENDLOOP.
*CLEAR it_packing_list.
DESCRIBE TABLE objbin LINES tab_lines.
it_packing_list-transf_bin = 'X'.
it_packing_list-head_start = 1.
it_packing_list-head_num = 1.
it_packing_list-body_start = 1.
it_packing_list-doc_type = v_doc_type.
it_packing_list-body_num = tab_lines.
it_packing_list-doc_size = tab_lines * 255.
it_packing_list-obj_descr = v_filename.
APPEND it_packing_list.
ENDIF.
it_receivers-receiver = 'suryasankar.tutika@tcs.com'.
it_receivers-rec_type = 'U'.
it_receivers-com_type = 'INT'.
APPEND it_receivers .
Call the FM to post the message to SAPMAIL
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = gd_doc_data
put_in_outbox = 'X'
commit_work = 'X'
IMPORTING
sent_to_all = gd_sent_all
TABLES
packing_list = it_packing_list
contents_txt = it_message
contents_bin = objbin
receivers = it_receivers
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.
ENDFUNCTION.
Thanks
Sankar.