Огромное спасибо Агавердыеву Максиму за помощь в написании данной статьи!

При работе программы в системе SAP ERP диалоговый процесс может длиться определенное время, установленное администратором. После превышения данного времени процесс останавливается, а пользователь любуется дампом. Данной ситуацией необходимо управлять. Сегодня мы поговорим о методах, которые позволяют это контролировать.

Сейчас мы не будем обсуждать темы типа: оптимизация выборки, ограничение выборки, запуск программы в фоновом режиме и т.д. Т.е. методы, которые к ситуации с тайм-аутом не приведут, мы обсудим ситуации, когда тайм-аут неизбежен или вероятен.

Первый метод — выводим во время работы программы индикатор выполнения при помощи функции sapgui_progress_indicator.

Синтаксис при этом примерно такой:

CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’
EXPORTING
PERCENTAGE = 20
TEXT = ‘Текст’.

Второй метод — commit обнуляет счетчик времени. Данный метод не всегда подходит — commit не самый заурядный оператор.

Третий метод (на мой взгляд самый удобный) — использование функции  TH_REDISPATCH

Примерный синтаксис:

data time_end type sy-uzeit.
data time_delta type sy-uzeit.
********************************
call ‘CLOCK’ id ‘TIME’ field time_end.
time_delta = time_end — P_TIME_BEGIN.if time_delta > 500.
CALL FUNCTION ‘TH_REDISPATCH’.
P_TIME_BEGIN = time_end.
endif.
   
© 2013 sap-blog.ru
Яндекс.Метрика