Значит так, удаление задания выполняется по двум путям, первое это удаление заданий созданных через SOLMAN, второе удаление заданий созданных без SOLMAN. При этом вызываются разные функции:
- SOLMAN: ФМ BP_SOLMAN_JOBDEFINITON, где параметр IV_JOB_REQ_TYPE = 'DEL'
- ERP : ФМ BP_JOB_DELETE
Далее в обоих случаях передается номер и имя задания которое удаляется. Так что написать простое включение через энхансменты с логированием кто и что удаляет не является сложным. Кстати, при работе ФМ
BP_JOB_DELETE, выполняется проверка полномочий:
authority-check object 'S_BTCH_JOB'
id 'JOBGROUP' field '*'
id 'JOBACTION' field 'DELE'.
и еще так называемая проверка
"Ид. для администратора фоновой обработки":
authority-check
object 'S_BTCH_ADM'
id 'BTCADMIN' field 'Y'.
так что можно начать наверное с этого, т.е. отобрать полномочия на удаление фоновых заданий, а если кто захочет удалить пусть пишет письмо с указанием что, почему и т.д. Что касается ведения собственного лога удаления заданий, то его делаем используя такую вещь как неявный энхансмент, что и как написано тут: You are not allowed to view links.
Register or
Login так что сделать свою таблицу и вклинится в конце работы ФМ
BP_JOB_DELETE, не будет проблемой.
PS: Кстати после удаления задания, вызвается такой вот код, который таки что-то куда-то пишет. Поэтому может привлечь админов, которые скажут куда это пишется: call 'WriteTrace'
id 'CALL' field 'BP_JOB_DELETE' "#EC NOTEXT
id 'PAR1' field uname
id 'PAR2' field tcode
id 'PAR3' field callstack_line-mainprogram
id 'PAR4' field callstack_line-include
id 'PAR5' field blockname
id 'PAR6' field t_jobname
id 'PAR7' field p_jobcount.
PSS: Кстати, исходя из call 'WriteTrace' все таки ответ SAP высказанный в такой категорической манере, звучит странно и наводит на разные мысли.