2013 Feb 07 8:31 AM
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.
2013 Feb 07 8:51 AM
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
2013 Feb 07 9:10 AM
dear Former Member 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.
2013 Feb 07 10:06 AM
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
2013 Feb 07 10:19 AM
Hi ,
If your query has been resolved please mark it as correct answer and close the thread
Regards,
AKS
2013 Feb 07 11:13 AM
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