Удав написал(а):
Зачем обманывать?
В RW-интерфейсе перед выдачей своего окна ставишь проверку
Code:
IF SY-BINPT IS INITIAL AND SY-BATCH IS INITIAL.
CALL SCREEN ...
ENDIF.
И вызова диалога не будет производится ни в режиме пакетного ввода, ни в фоновом режиме

Это я понимаю. Только юзеру
НУЖНО увидеть этот диалог и отреагировать на него, а тут этот долбаный пакетный ввод

. Получается, что в момент вклинивания моего кода, программа находится в режиме пакетного ввода. Сам когда-то вызывал из своей проги отчет, используя пакетный ввод. Вот так:
Code:
perform bdc_dynpro using 'RFITEMGL' '1000'.
perform bdc_field using 'BDC_OKCODE' '=ONLI'.
perform bdc_field using 'SD_SAKNR-LOW' wa-hkont.
perform bdc_field using 'SD_BUKRS-LOW' wa-bukrs.
perform bdc_field using 'PA_STIDA' date_str.
CALL TRANSACTION 'FBL3N' using BDCDATA
MODE 'E'. " 'A N E P'
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
REFRESH BDCDATA.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
* ENDIF.
ENDFORM.
Думаю и там также. Вот еслиб, на время выполнения моего кода заставить систему думать что это не пакетный ввод. А после него пусть думает, что угодно.
Как альтернативный вариант рассматривалось выдать сообщение типа "W". Там, как я думал, нажатием ENTER пользователь соглашается с сообщением а по ESC - прерывание. Но и тут не все гладко: это сообщение выдается красным и однозначно приводит к прерыванию.
Неужели моя проблема никак не решается???