SAPфорум.RU
https://sapboard.ru/forum/

Как запретить повторный запуск программы в фоне из ABAP программы
https://sapboard.ru/forum/viewtopic.php?f=13&t=95874
Страница 1 из 1

Автор:  Danila [ Ср, дек 13 2017, 18:47 ]
Заголовок сообщения:  Как запретить повторный запуск программы в фоне из ABAP программы

Коллеги, добрый день.

Подскажите, пожалуйста, как программно выставить проверку, что текущая программа не работает в режиме фонового задания в данный момент?
То есть в ABAP коде выполнить проверку и в случае наличия работающего задания выполнить прерывание.

Заранее благодарен.
Данил.

Автор:  ghost [ Ср, дек 13 2017, 20:30 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы

объект блокировки обычно для таких целей используется.

Автор:  olegbash [ Ср, дек 13 2017, 23:55 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы

как вариант:
в таблице TBTCP (шаги фонового задания) есть поле STATUS, в котором могут быть значения

R: job step running.
Y: job step ready (eligible to run, waiting for a work process).
P: job step scheduled.
S: job step released (eligible to run when the start condition of the job is fulfilled).
A: job step aborted.
F: job step successfully finished.
Z: system upgrade in progress, only upgrade-related jobs are allowed to run. Jobs and job steps with this status are ignored by the scheduler.
X: unknown status detected.

с помощью sy-batch можно определить выполняется ли программа в фоновом задании, а с помощью ФМ GET_JOB_RUNTIME_INFO можно определить имя фонового задания.

Автор:  Danila [ Чт, дек 14 2017, 18:44 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы

ghost написал:
объект блокировки обычно для таких целей используется.


А объект блокировки можно навесить на программу целиком?

olegbash написал(а):
как вариант:
в таблице TBTCP (шаги фонового задания) есть поле STATUS, в котором могут быть значения

R: job step running.
Y: job step ready (eligible to run, waiting for a work process).
P: job step scheduled.
S: job step released (eligible to run when the start condition of the job is fulfilled).
A: job step aborted.
F: job step successfully finished.
Z: system upgrade in progress, only upgrade-related jobs are allowed to run. Jobs and job steps with this status are ignored by the scheduler.
X: unknown status detected.

с помощью sy-batch можно определить выполняется ли программа в фоновом задании, а с помощью ФМ GET_JOB_RUNTIME_INFO можно определить имя фонового задания.


Спасибо, попробую, по идее, в этой таблице можно отследить факт , что в данный момент программа уже работает в фоне...

Автор:  ghost [ Чт, дек 14 2017, 22:18 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы  Тема решена

Цитата:
А объект блокировки можно навесить на программу целиком?

Конечно же можно.
пример установки блокировки на имя программы

Автор:  Danila [ Пт, дек 15 2017, 02:39 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы

ghost написал:
Цитата:
А объект блокировки можно навесить на программу целиком?

Конечно же можно.
пример установки блокировки на имя программы


Спасибо, огромное.
То что надо :D

P.S. Никогда прежде не сталкивался с такой возможностью :roll:

Автор:  Danila [ Пт, дек 15 2017, 18:58 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы

А вот еще вопрос в тему.
Можно как-то блокировать параллельный запуск отчета с учетом параметров.
Например запретить запускать по той же БЕ?

ФМ ENQUEUE_E_DSVAS_TRDIR блокирует отчет как объект целиком.

Автор:  ghost [ Пт, дек 15 2017, 22:49 ]
Заголовок сообщения:  Re: Как запретить повторный запуск программы в фоне из ABAP программы

конечно можно.
создайте свой объект блокировки(необязательно на таблицу, можно обойтись структурой) с нужными параметрами
Creating Lock Objects in SAP

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/