Текущее время: Пн, июл 28 2025, 15:17

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: торг.документ: BAPI + USEREXIT
СообщениеДобавлено: Пн, апр 26 2010, 16:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Всем доброго дня!
Не могу понять, что не так и как с этим бороться )))

Схематично ситуация такая (обработка торг.документов перед сохранением):
Code:
FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
  CALL FUNCTION 'Z_CHECK'
    EXCEPTIONS
      error = 1.
  IF sy-subrc = 1.
    LEAVE TO SCREEN sy-dynnr.
  ENDIF.


Внутри Z_CHECK:
Code:
[...проверки и сохранение сообщений в лог]
  IF flag = 'X'.
    CALL FUNCTION 'MESSAGES_SHOW'.
    RAISE error.
  ENDIF.


В транзакционном режиме все нормально - если ФМ обнаружил ошибки, то выводится окно с их списком, и пользователь выкидывается обратно на экран (сохранение отменяется).

Но когда запускается отчет с BAPI_SALESDOCUMENT_CHANGE, то происходит следующее:
вылазит окно с ошибками, и по команде LEAVE TO SCREEN отчет вываливается в тр.SE38 (откуда и запускался).

Вопросов, собссно, 3:
1) почему выводится окно?
2) как определить, что его выводить не нужно (sy-binpt пустое)?
3) что делать с LEAVE TO SCREEN.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: торг.документ: BAPI + USEREXIT
СообщениеДобавлено: Пн, апр 26 2010, 16:54 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Как узнать, что программа запущена в update task

Добавил: А еще лучше завязать вывод сообщения об ошибке на флажок CALL_BAPI. Он по идее заполняется при BAPI вызове.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: торг.документ: BAPI + USEREXIT
СообщениеДобавлено: Вт, апр 27 2010, 16:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Неа, не помогло:
    CALL_BAPI(SAPMV45A) = ' '
    SY-ONCOM = 'S'
    SY-BATCH = ' '
    SY-BINPT = ' '
...очень странно. Есть еще идеи?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: торг.документ: BAPI + USEREXIT
СообщениеДобавлено: Вт, апр 27 2010, 16:52 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
При вызове BAPI_SALESORDER_CHANGE в момент выполнения USEREXIT_SAVE_DOCUMENT_PREPARE переменная CALL_BAPI имеет значение true. Естественно, при наличии изменений в заказе.
Попробуйте использовать этот ФМ вместо BAPI_SALESDOCUMENT_CHANGE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: торг.документ: BAPI + USEREXIT
СообщениеДобавлено: Вт, апр 27 2010, 18:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Как всегда, SAP без подлянок не может :evil:
Помогло следующее:
Code:
  CALL FUNCTION 'DIALOG_GET_STATUS'
    IMPORTING
      dialog_status = lv_no_dialog.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB