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

attach PDF file in workflow

Former Member
0 Likes
575

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 = '[email protected]'.

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.

Message was edited by: sankar surya

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 = '[email protected]'.

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.

Message was edited by: sankar surya

2 REPLIES 2
Read only

Former Member
0 Likes
534

hi guys,

its very urgent , please give me solution for this,

thanks

Sankar

Read only

Former Member
0 Likes
534

hi

good

go through the following link, i hope this wll help you to solve your problem

http://www.google.co.in/url?sa=U&start=1&q=http://searchsap.techtarget.com/expert/KnowledgebaseAnswe...

thanks

mrutyun