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 a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

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 a 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 a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.