как отследить запуск/отмену ползователем BG JOBs

Автор klotrik, Січень 03, 2012, 08:53:38 ДП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

klotrik

Приветствую.

У меня проблема, сорван план производства. Человек, отвечающий за планирование фонового задания утверждает, что все запланировал и что его задания отменил другой ответственный человек. Этот другой, утверждает, что этого не делал. Как узнать кто прав, кто виноват? Право на корректировку заданий друг-друга у них есть. В логах фонового задания - задания нет. В секурити логе sm20 транзакцию sm37 выполняли оба примерно в одно и тоже время. Есть ли какая-нибудь таблица, в которую пишутся все планируемые и отменяемые задания? Спасибо.

№1

SM37 Выбрать задание. Дабл-клик по заданию и кнопка Job details
Там смотрим на Schedule job - кто создал задание и на Last change - кто последним менял.
Если различаются, то врет Last change, а если не различаются, то врет Schedule job.
Как-то так...
Мой блог

Uukrul

Цитата: №1 від Січень 03, 2012, 04:13:13 ПП
SM37 Выбрать задание. Дабл-клик по заданию и кнопка Job details
Это если задание есть.. а если его отменили а затем удалили, то там вроде как не так уже и просто найти логи от него.

klotrik

официальный ответ из САПа. Отследить кто удалил задание не возможно, если оно было удалено. Возможно только отслеживание кто запускал отчет по удалению фонового задания. Спасибо.

Uukrul

Ну они через SM37 обое работают? Подумаю что и как можно сделать... А то какой-то непорядочек выходит.

Uukrul

#5
Значит так, удаление задания выполняется по двум путям, первое это удаление заданий созданных через 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'.

так что можно начать наверное с этого, т.е. отобрать полномочия на удаление фоновых заданий, а если кто захочет удалить пусть пишет письмо с указанием что, почему и т.д. Что касается ведения собственного лога удаления заданий, то его делаем используя такую вещь как неявный энхансмент, что и как написано тут: http://sapforum.biz/index.php/topic,546.0.html так что сделать свою таблицу и вклинится в конце работы ФМ 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 высказанный в такой категорической манере, звучит странно и наводит на разные мысли.

№1

Цитата: Uukrul від Січень 10, 2012, 12:06:55 ПП
PS: Кстати после удаления задания, вызвается такой вот код, который таки что-то куда-то пишет. Поэтому может привлечь админов, которые скажут куда это пишется:
Ну надо юзать ФМ TH_GREP как писалось в http://sapforum.biz/index.php?blog=5;sa=topic;id=12
Собственно, это dev_xx файлы куда трасса пишется
Мой блог