Текущее время: Вт, июл 15 2025, 16:19

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Рассылка отчета избранным (в смысле - выбранным) пользователям
СообщениеДобавлено: Ср, авг 09 2006, 09:04 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Добрый день!
Есть ли возможность (стандартный ФМ, наконец, простой оператор АВАР) для использовани гибкого списка - кому послать отчет (то есть функционал использующий сформированный массив из имен пользователей, которым будет рассылаться по SAP-офису данный отчет)?
Буду весьма и очень признательна за подсказку!!!!


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Попробуйте ФМ SO_NEW_DOCUMENT_ATT_SEND_API1, там на входе вроде табличка receivers есть... Может поможет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 09:54 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июн 02 2006, 09:59
Сообщения: 67
Пол: Мужской
SAPoffice


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
To abap:
В смысле?
Мне нужен отчет в фоновом режиме, запускаемый каждые, скажем, полчаса. Он должен генерить не только отчетные данные, но и список пользователей - кому их слать (всем юзерам, в потенциале могущим его юзать, этот отчет слать невозможно - их слишком много, и слишком немногим он надобится в текущий запуск!). И как SApOffice решит мою проблему в этом случае?


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Наташа написала:
...Он должен генерить не только отчетные данные, но и список пользователей - кому их слать...

В этом вопросе ответа нет, если у Вас самих нет алгоритма выбора этих "избранных" пользователей.
Если алгоритм есть - заносите эти bname в табличку и подставляйте в ФМ...
И если не секрет - по какому принципу выбираете юзеров (по полномочиям и т.п.)? В каком виде отправляете данные - ALV или ...?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 10:15 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
John Doe написал:
Наташа написала:
...Он должен генерить не только отчетные данные, но и список пользователей - кому их слать...

В этом вопросе ответа нет, если у Вас самих нет алгоритма выбора этих "избранных" пользователей.
Если алгоритм есть - заносите эти bname в табличку и подставляйте в ФМ...
И если не секрет - по какому принципу выбираете юзеров (по полномочиям и т.п.)? В каком виде отправляете данные - ALV или ...?

Алгоритм есть - эту фразу я для прояснения ситуации написала 8)
Приницип, точнее, алгоритм такой: совершена некая операция в системе; заинтересованные (через спец отметку в системных документах) лица оповещаются о ней через посылку отчета.
То есть вроде бы не сложно, но вот не знала - куда воткнуть готовый список... теперь буду пробовать... еще не успела! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 10:44 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
John Doe написал:
Попробуйте ФМ SO_NEW_DOCUMENT_ATT_SEND_API1, там на входе вроде табличка receivers есть... Может поможет...

ГИГАНТСКОЕ СПАСИБО!Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ! ПОЛУЧИЛОСЬ ЧТО-ТО ВМЕНЯЕМОЕ (надеюсь довести до нужной кондиции) - по крайней мере, письмо пришло к адресату... Правда, пришлось обратиться к английской версии и документации к ФМ... ;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 11:40 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Наташа написала:
John Doe написал:
Попробуйте ФМ SO_NEW_DOCUMENT_ATT_SEND_API1, там на входе вроде табличка receivers есть... Может поможет...

ГИГАНТСКОЕ СПАСИБО!Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ! ПОЛУЧИЛОСЬ ЧТО-ТО ВМЕНЯЕМОЕ (надеюсь довести до нужной кондиции) - по крайней мере, письмо пришло к адресату... Правда, пришлось обратиться к английской версии и документации к ФМ... ;)

Ну вообще-то если это отчет, то значит его данные сформированы в спуле, есто ФМ, поищи я тут его уже приводил где-то, который просто отправляет сформированный спул по почте... списку пользователей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 11:51 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
СПАСИБО!
Поищем...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 13:23 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Наташа написала:
СПАСИБО!
Поищем...

Вот вспомнил RS_SEND_MAIL_FOR_SPOOLLIST


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 13:32 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Uukrul написал(а):
Вот вспомнил RS_SEND_MAIL_FOR_SPOOLLIST

:oops: что-то спул не посылается (номер указываю)... письмо приходит - а вот приложений к нему нет :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 14:16 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июн 02 2006, 09:59
Сообщения: 67
Пол: Мужской
function z_send_mail_with_attach.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(SAVE_IN_SAPOFFICE) TYPE CHAR1 DEFAULT SPACE
*" TABLES
*" DOC_HEADER STRUCTURE SOLISTI1 OPTIONAL
*" DOC_CONTENT STRUCTURE SOLISTI1 OPTIONAL
*" RECEIVERS STRUCTURE SOMLRECI1
*" ATTACHMENTS STRUCTURE SOLISTI1 OPTIONAL
*" EXCEPTIONS
*" NO_RECEIVERS
*" NO_AUTHORITY
*"----------------------------------------------------------------------
constants: so_format(11) type c value '&SO_FORMAT='.
data: document like sofolenti1,
user like soudnamei1,
user_data like soudatai1,
docdata like sodocchgi1,
hd_dat like sood1,
doc_id like soodk,
l_receivers like somlreci1 occurs 0 with header line,
l_objhead like soli occurs 0 with header line,
l_doc_header like solisti1 occurs 1 with header line,
l_doc_content like solisti1 occurs 1 with header line.
data: path_and_file like rlgrap-filename,
file_format like rlgrap-filetype,
bin_filesize like soxwd-doc_length,
object_type like soodk-objtp value 'EXT', " см.табл. TSOTD
l_objcont like soli occurs 0,
l_filename like rlgrap-filename,
l_nodialog like sonv-flag value 'X',
l_cancelled like sonv-flag,
put_to_kpro like sonv-flag,
lin type i.
* структуры для задания и срока запуска/период/повторения ФонЗадания
data: job like tbtco,
starttime like tbtcstrt,
status like tbtco-status,
released(1).
*
*
authority-check object 'S_OC_SEND'
id 'COM_MODE' field 'INT' " INT - SMTP
id 'NUMBER' dummy.
if sy-subrc ne 0.
message e094(zr) raising no_authority.
endif.
* получатель (получатели)
describe table receivers lines lin.
if lin < 1.
message e093(zr) raising no_receivers.
endif.
loop at receivers.
l_receivers-receiver = receivers-receiver.
l_receivers-rec_type = receivers-rec_type.
l_receivers-express = 'X'.
append l_receivers.
endloop.
* пользователь, от имени которого посылается письмо
user-sapname = sy-uname.
* Заголовок(тема) письма
loop at doc_header.
l_doc_header = doc_header.
append l_doc_header.
endloop.
* Содержание письма
loop at doc_content.
l_doc_content = doc_content.
append l_doc_content.
endloop.
* Атрибуты документа SAP_Office
clear docdata.
docdata-obj_name = 'Z_SEND_MAIL_WITH_ATTACH'.
read table l_doc_header index 1.
if sy-subrc = 0.
docdata-obj_descr = l_doc_header-line.
else.
docdata-obj_descr = 'без заголовка'.
endif.
docdata-obj_langu = sy-langu.
docdata-sensitivty = 'P'.
*
*
* path_and_file = 'd:\aba.xls'.

* читаем данные пользователя (в основном нам нужна его SAP-папка (ID))
call function 'SO_USER_READ_API1'
exporting
user = user
prepare_for_folder_access = 'X'
importing
user_data = 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.
* создаем SAP_Office-документ
call function 'SO_DOCUMENT_INSERT_API1'
exporting
folder_id = user_data-outboxfol
document_data = docdata
document_type = 'RAW'
importing
document_info = document
tables
object_header = l_doc_header
object_content = l_doc_content
exceptions
folder_not_exist = 1
document_type_not_exist = 2
operation_no_authorization = 3
parameter_error = 4
x_error = 5
enqueue_error = 6
others = 7.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
* вложения из внешних файлов
loop at attachments into path_and_file.
clear: hd_dat, l_objcont[].
* загрузка объекта для аттачмента
call function 'SO_OBJECT_UPLOAD'
exporting
path_and_file = path_and_file
no_dialog = l_nodialog
importing
f_cancelled = l_cancelled
filelength = bin_filesize
act_filetype = file_format
act_filename = path_and_file
act_objtype = object_type
file_put_to_kpro = put_to_kpro
tables
objcont = l_objcont
exceptions
invalid_type = 1
object_type_not_allowed = 2
kpro_insert_error = 3
others = 4.

case sy-subrc.
when 0.
if not l_cancelled is initial.
exit.
endif.
hd_dat-objlen = bin_filesize.
if not put_to_kpro is initial.
hd_dat-extct = 'K'. "reference_type_kpro.
endif.
call function 'SO_SPLIT_FILE_AND_PATH'
exporting
full_name = path_and_file
importing
stripped_name = l_filename.
clear: l_objhead, l_objhead[].
insert l_filename into l_objhead index 1.
l_objhead-line = so_format.
l_objhead-line+11(3) = file_format.
append l_objhead.

hd_dat-file_ext = object_type.
hd_dat-objnam = text-001.
if hd_dat-objdes is initial.
split l_filename at '.' into hd_dat-objdes l_filename.
endif.
move: document-obj_type to doc_id-objtp,
document-object_id+3(2) to doc_id-objyr,
document-object_id+5(12) to doc_id-objno.
when others.
exit.
endcase.
* присоединение аттачмента к созданному документу
call function 'SO_ATTACHMENT_INSERT'
exporting
object_id = doc_id
attach_type = 'EXT'
object_hd_change = hd_dat
owner = user-sapname
tables
objcont = l_objcont
objhead = l_objhead
exceptions
active_user_not_exist = 35
communication_failure = 71
object_type_not_exist = 17
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
x_error = 1000.
endloop.
* помещаем документ в исходящую очередь на отсылку
call function 'SO_OLD_DOCUMENT_SEND_API1'
exporting
document_id = document-doc_id
put_in_outbox = space
tables
receivers = l_receivers
exceptions
too_many_receiver = 1
document_not_sent = 2
document_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
others = 8.
if sy-subrc <> 0.
message s001(zr) with 'Error ' sy-subrc ' on send mail'.
exit.
endif.
*
job-jobname = 'Z_MAIL_SEND'.
call function 'JOB_OPEN'
exporting
delanfrep =
'X' " Delete Job After Successful Execution
jobname = job-jobname " Job name
importing
jobcount =
job-jobcount " ID number of background job !
exceptions
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.
if sy-subrc <> 0.
case sy-subrc.
when 1.message i001(38) with 'Job cannot be created, see SYSLOG'.
when 2.message i001(38) with 'Job cont.invalid job data,см.SYSLOG'.
when 3.message i001(38) with 'Job name not specified'.
endcase.
exit.
endif.
*
submit rsconn01 and return
with mode = 'INT'
via job job-jobname number job-jobcount.
*====== pass a background job to the background processing ===========
starttime-startdttyp = 'D'.
starttime-sdlstrtdt = sy-datum.
starttime-sdlstrttm = sy-uzeit + 3.
*
call function 'JOB_CLOSE'
exporting
jobcount = job-jobcount
jobname = job-jobname
sdlstrtdt = starttime-sdlstrtdt
sdlstrttm = starttime-sdlstrttm
importing
job_was_released = released
exceptions
cant_start_immediate = 1
invalid_startdate = 2.
if sy-subrc ne 0.
call function 'JOB_CLOSE'
exporting
jobcount = job-jobcount
jobname = job-jobname
strtimmed = 'X'
importing
job_was_released = released
exceptions
cant_start_immediate = 1
invalid_startdate = 2.
if released ne 'X'.
call function 'BP_JOB_DELETE'
exporting
forcedmode = 'X'
jobname = job-jobname
jobcount = job-jobcount
exceptions
others = 99.
submit rsconn01 with mode = 'INT' and return.
endif.
endif.

* удалить отправленный документ из SAP-Office ?
check save_in_sapoffice = space.
call function 'SO_DOCUMENT_DELETE_API1'
exporting
document_id = document-doc_id
unread_delete = 'X'
* PUT_IN_TRASH = 'X'
exceptions
document_not_exist = 1
operation_no_authorization = 2
parameter_error = 3
x_error = 4
enqueue_error = 5
others = 6
.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.





endfunction.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 09 2006, 14:20 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
УХ ТЫ!!!! ВОТ ЭТО ДА!!! Практически, готовый продукт на все случаи жизни (касающиеся темы)Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ!
ЗдОрово!! :!:


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

Зарегистрирован:
Чт, ноя 11 2004, 10:03
Сообщения: 127
Сделал по примеру и получилось, но не сразу. Пока явно COMMIT WORK не поставил после функции SO_OLD_DOCUMENT_SEND_API1, программа RFFOSCRP это сообщение в очереди не видела. Интересно почему?

_________________
В пору рабочую
пашут и ночью!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 14 2006, 18:11 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Yuriy написал(а):
Сделал по примеру и получилось, но не сразу. Пока явно COMMIT WORK не поставил после функции SO_OLD_DOCUMENT_SEND_API1, программа RFFOSCRP это сообщение в очереди не видела. Интересно почему?

Интересно а почему она его должна была видеть, ведь на самом деле оно не отправляет сообщение а фиксирует информацию в таблицах БД для последующей обработки? Кстати SO_OLD... на то и OLD, чтобы ее не использовать, может лучше сразу отказаться и перейти на SO_NEW_DOCUMENT_ATT_SEND_API1 ну чтобы потом не было обидно больно за использование старых ФМ...


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

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


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

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


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

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