Текущее время: Пт, июл 18 2025, 14:41

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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