Skip to Content
author's profile photo Former Member
Former Member

attach PDF file in workflow

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.

Add comment
10|10000 characters needed characters exceeded

2 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Aug 01, 2006 at 12:44 PM

    Hi,

    did you test this FM functionality individually?

    I mean is that FM sending email?

    Regards,

    <i><b>Raja Sekhar</b></i>

    Add comment
    10|10000 characters needed characters exceeded

  • Posted on Aug 03, 2006 at 01:16 AM

    hi sankar,

    have you debug your function modul ? please check the return value after executing function module 'SO_NEW_DOCUMENT_ATT_SEND_API1', wheather the value = 0 ( success ) or not.

    if the return value is 0, check the authorization for for the user who execute your function module.

    in function module 'SO_NEW_DOCUMENT_ATT_SEND_API1', there is parameter SENDER_ADDRESS.

    the default value for parammeter 'SENDER_ADDRESS' is sy-uname.

    I usually fill the parameter with user 'WF-BATCH' because in our environtment user WF-BATCH have the authorization.

    if your user have the authorization to sending mail too, then check in your sap outbox, is there any document that you send ?

    if there is and you still don't receive the mail, check sap - mail connection using t-code 'SCOTT' wheather the document stuck in there.

    hopes it helps, please award point if it is helps

    regards

    Add comment
    10|10000 characters needed characters exceeded