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

program to send excell attachment in background by schedule

Former Member
0 Likes
1,065

hallu dear abapers am new to abap and am working on it...and i want to develop a program that uploads excel file and send it to email periodically in back ground example 2 amonth or 1 per month or every monday ...etc...so how can i make it like dat....here is ma sample pdogram

********************************************************************************

*&---------------------------------------------------------------------*
*& Report  YEMAIL12
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  YEMAIL12.
data method1 like sy-ucomm.
data g_user like soudnamei1.
data g_user_data like soudatai1.
data g_owner like soud-usrnam.
data g_receipients like soos1 occurs 0 with header line.
data g_document like sood4 .
data g_header like sood2.
data g_folmam like sofm2.
data g_objcnt like soli occurs 0 with header line.
data g_objhead like soli occurs 0 with header line.
data g_objpara  like selc occurs 0 with header line.
data g_objparb  like soop1 occurs 0 with header line.
data g_attachments like sood5 occurs 0 with header line.
data g_references like soxrl occurs 0 with header line.

data g_authority like sofa-usracc.
data g_ref_document like sood4.
data g_new_parent like soodk.
data: begin of g_files occurs 10 ,
   text(4096) type c,
    end of g_files.

data : fold_number(12) type c,
        fold_yr(2) type c,
        fold_type(3) type c.

parameters ws_file type rlgrap-filename  default 'd:\files\file1.xlsx'.
* Can me any file fromyour pc ....either xls or word or ppt etc ...
g_user-sapname = sy-uname.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ws_file.

CALL FUNCTION 'F4_FILENAME'
EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
field_name = 'ws_file'
IMPORTING
file_name = ws_file.

call function 'SO_USER_READ_API1'
exporting
    user                            = g_user
*    PREPARE_FOR_FOLDER_ACCESS       = ' '
importing
    user_data                       = g_user_data
*  EXCEPTIONS
*    USER_NOT_EXIST                  = 1
*    PARAMETER_ERROR                 = 2
*    X_ERROR                         = 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.

fold_type = g_user_data-outboxfol+0(3).
fold_yr = g_user_data-outboxfol+3(2).
fold_number =  g_user_data-outboxfol+5(12).
clear g_files.

refresh : g_objcnt,
   g_objhead,
   g_objpara,
   g_objparb,
   g_receipients,
   g_attachments,
   g_references,
   g_files.

method1 = 'SAVE'.
g_document-foltp  = fold_type.
g_document-folyr   = fold_yr.
g_document-folno   = fold_number.
g_document-objtp   = g_user_data-object_typ.
*g_document-OBJYR   = '27'.
*g_document-OBJNO   = '000000002365'.
*g_document-OBJNAM = 'MESSAGE'.
g_document-objdes   = 'hahu daily test this'.
g_document-folrg   = 'O'.
*g_document-okcode   = 'CHNG'.
g_document-objlen = '0'.
g_document-file_ext = 'TXT'.

g_header-objdes =  'hahu daily fishikta ameley'.
g_header-file_ext = 'TXT'.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
   exporting
     method             = method1
    office_user        = sy-uname
    ref_document       = g_ref_document
    new_parent         =  g_new_parent
importing
    authority          =  g_authority
tables
    objcont            = g_objcnt
    objhead            = g_objhead
    objpara            = g_objpara
    objparb            = g_objparb
    recipients         = g_receipients
    attachments        = g_attachments
    references         = g_references
    files              = g_files
   changing
     document           = g_document
    header_data        = g_header
*   FOLMEM_DATA        =
*   RECEIVE_DATA       =
           .

* File from the pc to send...
method1 = 'ATTCREATEFROMPC'.

g_files-text = ws_file.
append g_files.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
   exporting
     method             = method1
    office_user        = g_owner
    ref_document       = g_ref_document
    new_parent         =  g_new_parent
importing
    authority          =  g_authority
tables
    objcont            = g_objcnt
    objhead            = g_objhead
    objpara            = g_objpara
    objparb            = g_objparb
    recipients         = g_receipients
    attachments        = g_attachments
    references         = g_references
    files              = g_files
   changing
     document           = g_document
    header_data        = g_header
           .

method1 = 'SEND'.

g_receipients-recnam = 'MK085'.
g_receipients-recesc = 'B'.
g_receipients-sndex = 'X'.
append  g_receipients.


call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
   exporting
     method             = method1
    office_user        = g_owner
    ref_document       = g_ref_document
    new_parent         =  g_new_parent
importing
    authority          =  g_authority
tables
    objcont            = g_objcnt
    objhead            = g_objhead
    objpara            = g_objpara
    objparb            = g_objparb
    recipients         = g_receipients
    attachments        = g_attachments
    references         = g_references
    files              = g_files
   changing
     document           = g_document
    header_data        = g_header.

*-- End of Program

********************

regards,

hahu d.

hallu dear abapers am new to abap and am working on it...and i want to develop a program that uploads excel file and send it to email periodically in back ground example 2 amonth or 1 per month or every monday ...etc...so how can i make it like dat....here is ma sample pdogram

********************************************************************************

*&---------------------------------------------------------------------*
*& Report  YEMAIL12
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  YEMAIL12.
data method1 like sy-ucomm.
data g_user like soudnamei1.
data g_user_data like soudatai1.
data g_owner like soud-usrnam.
data g_receipients like soos1 occurs 0 with header line.
data g_document like sood4 .
data g_header like sood2.
data g_folmam like sofm2.
data g_objcnt like soli occurs 0 with header line.
data g_objhead like soli occurs 0 with header line.
data g_objpara  like selc occurs 0 with header line.
data g_objparb  like soop1 occurs 0 with header line.
data g_attachments like sood5 occurs 0 with header line.
data g_references like soxrl occurs 0 with header line.

data g_authority like sofa-usracc.
data g_ref_document like sood4.
data g_new_parent like soodk.
data: begin of g_files occurs 10 ,
   text(4096) type c,
    end of g_files.

data : fold_number(12) type c,
        fold_yr(2) type c,
        fold_type(3) type c.

parameters ws_file type rlgrap-filename  default 'd:\files\file1.xlsx'.
* Can me any file fromyour pc ....either xls or word or ppt etc ...
g_user-sapname = sy-uname.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ws_file.

CALL FUNCTION 'F4_FILENAME'
EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
field_name = 'ws_file'
IMPORTING
file_name = ws_file.

call function 'SO_USER_READ_API1'
exporting
    user                            = g_user
*    PREPARE_FOR_FOLDER_ACCESS       = ' '
importing
    user_data                       = g_user_data
*  EXCEPTIONS
*    USER_NOT_EXIST                  = 1
*    PARAMETER_ERROR                 = 2
*    X_ERROR                         = 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.

fold_type = g_user_data-outboxfol+0(3).
fold_yr = g_user_data-outboxfol+3(2).
fold_number =  g_user_data-outboxfol+5(12).
clear g_files.

refresh : g_objcnt,
   g_objhead,
   g_objpara,
   g_objparb,
   g_receipients,
   g_attachments,
   g_references,
   g_files.

method1 = 'SAVE'.
g_document-foltp  = fold_type.
g_document-folyr   = fold_yr.
g_document-folno   = fold_number.
g_document-objtp   = g_user_data-object_typ.
*g_document-OBJYR   = '27'.
*g_document-OBJNO   = '000000002365'.
*g_document-OBJNAM = 'MESSAGE'.
g_document-objdes   = 'hahu daily test this'.
g_document-folrg   = 'O'.
*g_document-okcode   = 'CHNG'.
g_document-objlen = '0'.
g_document-file_ext = 'TXT'.

g_header-objdes =  'hahu daily fishikta ameley'.
g_header-file_ext = 'TXT'.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
   exporting
     method             = method1
    office_user        = sy-uname
    ref_document       = g_ref_document
    new_parent         =  g_new_parent
importing
    authority          =  g_authority
tables
    objcont            = g_objcnt
    objhead            = g_objhead
    objpara            = g_objpara
    objparb            = g_objparb
    recipients         = g_receipients
    attachments        = g_attachments
    references         = g_references
    files              = g_files
   changing
     document           = g_document
    header_data        = g_header
*   FOLMEM_DATA        =
*   RECEIVE_DATA       =
           .

* File from the pc to send...
method1 = 'ATTCREATEFROMPC'.

g_files-text = ws_file.
append g_files.

call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
   exporting
     method             = method1
    office_user        = g_owner
    ref_document       = g_ref_document
    new_parent         =  g_new_parent
importing
    authority          =  g_authority
tables
    objcont            = g_objcnt
    objhead            = g_objhead
    objpara            = g_objpara
    objparb            = g_objparb
    recipients         = g_receipients
    attachments        = g_attachments
    references         = g_references
    files              = g_files
   changing
     document           = g_document
    header_data        = g_header
           .

method1 = 'SEND'.

g_receipients-recnam = 'MK085'.
g_receipients-recesc = 'B'.
g_receipients-sndex = 'X'.
append  g_receipients.


call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
   exporting
     method             = method1
    office_user        = g_owner
    ref_document       = g_ref_document
    new_parent         =  g_new_parent
importing
    authority          =  g_authority
tables
    objcont            = g_objcnt
    objhead            = g_objhead
    objpara            = g_objpara
    objparb            = g_objparb
    recipients         = g_receipients
    attachments        = g_attachments
    references         = g_references
    files              = g_files
   changing
     document           = g_document
    header_data        = g_header.

*-- End of Program

********************

regards,

hahu d.

5 REPLIES 5
Read only

Former Member
0 Likes
921

Hi ,

Use this function module (FM - SO_NEW_DOCUMENT_ATT_SEND_API1)

Also for e.g u can see the below link ....

http://scn.sap.com/thread/3304247

Regards,

AKS

Read only

0 Likes
921

dear thanku for ur fast response but ma question is sending attachment to email in back ground by giving date and time to send automatically.

regards,

hahu d.

Read only

0 Likes
921

Hi ,

you just need to write the code for email and it's excel attachment with using this (FM - SO_NEW_DOCUMENT_ATT_SEND_API1) .

And then you just need to schedule it in background for whichever date or time you want it for.

This functional module automatically triggers a mail to the respective user on the scheduled date and time.

you can also refer to this standard program as well.

RSWNSENDMAIL1


And there is no such program which automatically scheduled itself for background processing and send the mail.

Hope this will help

Regards,

AKS

Read only

0 Likes
921

Hi ,

If your query has been resolved please mark it as correct answer and close the thread

Regards,

AKS

Read only

0 Likes
921

Hi ,

To read DATA from desktop you can use FM ALSM_EXCEL_TO_INTERNAL_TABLE .

To send above file as an attachment use below code.

1)Create Mail request

lo_send_req = cl_bcs=>create_persistent()

2)Create mail body and subject

lo_document = cl_document_bcs=>create_document by passing file type , subject and text

3)Add mail body to the mail request

lo_send_req->set_document( lo_document ).

4)Add attachemt

lo_document->add_attachment by passing TYPE, SUBJECT & TEXT

5)Create sender object

lo_send = cl_cam_address_bcs=>create_internet_address by passing sender email

6)Add sender to the mail request

lo_send_req->set_sender ( i_sender = i_send )

7)similarly do for Recipient

8)Send the mail

lo_send_req->send( ).

9)COMMIT WORK.

Set the above prog in background mode by setting particular time and date.

Hope this may help.

Regards

Chetan