Текущее время: Пт, июл 04 2025, 09:00

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


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

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


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

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