Текущее время: Ср, июн 25 2025, 21:43

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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