Текущее время: Ср, июл 23 2025, 00:58

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Отправка на e-mail письма с несколькими вложениями
СообщениеДобавлено: Вт, сен 19 2006, 16:08 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
Никто не сталкивался, как лучше сделать отправку письма с несколькими вложениями? SO_OBJECT_SEND вроде не способна с этим справится, да?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отправка на e-mail письма с несколькими вложениями
СообщениеДобавлено: Вт, сен 19 2006, 16:44 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:50
Сообщения: 134
Откуда: UA->DE
Пол: Женский
holocron написал(а):
Никто не сталкивался, как лучше сделать отправку письма с несколькими вложениями? SO_OBJECT_SEND вроде не способна с этим справится, да?

Вполне даже справляется.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 19 2006, 16:49 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
http://sapboard.ru/forum/viewtopic.php?p=112248&highlight=#112248
http://sapboard.ru/forum/viewtopic.php?t=17391&highlight=


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 21 2006, 12:36 
Начинающий
Начинающий

Зарегистрирован:
Чт, мар 09 2006, 14:48
Сообщения: 7
Когда-то давно написал, отправляет все файлы из папки на сервере на указаный емайл. have fun.


REPORT ZSENDMAIL.


* defining some constants
DATA: attach_name(99) TYPE c VALUE 'default.csv',
attach_type(99) TYPE c VALUE 'txt',
email_subject(512) TYPE c VALUE 'R/3 Email: attached files',
email_body(1024) TYPE c VALUE
'This email have some attached files.',

file_list LIKE RSFILLST OCCURS 0 WITH HEADER LINE,
filecount TYPE i,
pattern LIKE RSMRGSTR-NAME VALUE '*.*'.

PARAMETERS: sendfile(40) TYPE c
DEFAULT '//serv/pub/some/' LOWER CASE,
email(99) TYPE c default 'nobody@nowhere.com'.

CALL FUNCTION 'SUBST_GET_FILE_LIST'
EXPORTING
DIRNAME = sendfile
FILENM = '*'
PATTERN = pattern
TABLES
FILE_LIST = file_list
EXCEPTIONS
ACCESS_ERROR = 1.

IF sy-subrc IS INITIAL.
DESCRIBE TABLE file_list LINES filecount.
IF filecount NE 0.
PERFORM sendfilesto
TABLES
file_list
CHANGING
filecount
sendfile
email
email_subject
email_body.
ELSE.
write: / sendfile, ': не найдено ни одного файла!'.
ENDIF.

ENDIF.


*********************************************************************
FORM sendfilesto
TABLES
files structure RSFILLST

CHANGING
filescount TYPE i
path LIKE sendfile
email LIKE email
email_subject LIKE email_subject
email_body LIKE email_body.


* define worker variables
DATA: objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
objhead LIKE solisti1 OCCURS 0 WITH HEADER LINE,
objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.

DATA: doc_chng LIKE sodocchgi1,
v_tab_lines1 LIKE sy-tabix ,
v_tab_lines LIKE sy-tabix .

DATA : v_up TYPE i,
v_nup TYPE i.

* Subject
doc_chng-obj_descr = email_subject.
objtxt = email_body.

* Appending the body of the Mail
APPEND objtxt.

DESCRIBE TABLE objtxt LINES v_tab_lines.

READ TABLE objtxt INDEX v_tab_lines.

doc_chng-doc_size = ( v_tab_lines - 1 ) * 255 + STRLEN( objtxt ).

DESCRIBE TABLE files LINES filescount.
DATA: sfile TYPE string,
scopyfile TYPE string.

** Creation of the entry for the Mail Contents
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = v_tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.

DATA shift TYPE i VALUE 1.
CLEAR objbin.

LOOP AT files.
if files-name = '.' OR files-name = '..'.
continue.
endif.

* clear some stuffs
CLEAR objpack.
CLEAR objhead.
CLEAR v_tab_lines.
CLEAR objbin.

* check if we can open file
CONCATENATE path files-name INTO sfile.

OPEN DATASET sfile FOR INPUT IN BINARY MODE.

if sy-subrc <> 0.
continue.
endif.

* Getting File Name and attach type
SPLIT files-name AT '.' INTO doc_chng-obj_name attach_type.

* opening attach files
* reading file from disk to objbin and forming attach body.

DATA s TYPE string.
READ DATASET sfile INTO s.

* now save copy of file to the /arc folder
CONCATENATE path 'arc/' files-name INTO scopyfile.
OPEN DATASET scopyfile FOR OUTPUT IN BINARY MODE.
IF sy-subrc = 0.
TRANSFER s TO scopyfile.
CLOSE DATASET scopyfile.
ENDIF.

* copy file content to the objbin table
DATA doc_size TYPE i.
doc_size = strlen( s ).
do.
objbin = s.
append objbin.
v_tab_lines = v_tab_lines + 1.
SHIFT s BY 255 PLACES.

if strlen( s ) < 255.
objbin = s.
append objbin.
v_tab_lines = v_tab_lines + 1.
exit.
endif.
enddo.

* closing file
CLOSE DATASET sfile.

* delete the faile that has been sent
DELETE DATASET sfile.

objhead = files-name. " Attachment Name
APPEND objhead.

* Creation of the entry for the attachment
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = shift.
objpack-body_num = v_tab_lines.
objpack-doc_type = attach_type.
objpack-obj_name = files-name. "attach_name.
objpack-obj_descr = files-name.
objpack-doc_size = doc_size.
APPEND objpack.

shift = shift + v_tab_lines.
ENDLOOP.


* Completing the recipient list
reclist-receiver = email.
reclist-rec_type = 'U'.
reclist-com_type = 'INT'.

APPEND reclist.

* Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
put_in_outbox = 'X'
TABLES
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
receivers = reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.

IF sy-subrc <> 0.
write 'Ошибка при отправке сообщения!'.
ELSE.
write 'Сообщение успешно поставлено в очередь на отправку!'.
ENDIF.

commit work.

ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB