Текущее время: Пн, июн 23 2025, 14:51

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 10:41 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 13:31
Сообщения: 51
Доброго дня, коллеги.

В собственной разработке пользую ФМ BAPI_CONTRACT_CHANGE для изменния данных в позициях закупочного контракта,
При сохранении контракта существует проверка (см. CMOD, MM06E005, EXIT_SAPMM06E_012)
результатом которой является сообщение типа 'E', которое совсем некрасиво завершает работу z-ки, вместо "складирования"
себя в табличку t_return.
Code:
CALL FUNCTION 'BAPI_CONTRACT_CHANGE'
    EXPORTING
            purchasingdocument          = p_contrt
            testrun                     =  p_test
TABLES
      item                        = t_item
      itemx                       = t_itemx
      return                      = t_return.


Подозреваю, что копать нужно где-то в направлении "MESSAGE .... RAISING..." с последующим перехватом исключения и насильным заполнением t_return.

Копаю матчасть, но сделать нужно "бистро"(вчера, в прошлом месяце, году - на выбор),
посему прошу советов и подсказок (можно просто тыцнуть носом в раздел - help-a), по реализации сего сабжа.

Заранне спасибо.

_________________
Даже если тебя съели, у тебя есть два выхода...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 11:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Попробуйте в параметре TECHNICAL_DATA-MESSAGING_APPL = 'A'.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 12:38 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 13:31
Сообщения: 51
Besa, поставил
Code:
TECHNICAL_DATA-MESSAGING_APPL = 'A'.
, эффект тот-же - сообщение и выход из z-ки без возврата в оную.

Ищу дальше...

_________________
Даже если тебя съели, у тебя есть два выхода...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 13:01 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 16 2009, 21:36
Сообщения: 20
Пол: Мужской
SVT написал(а):
Besa, поставил
Code:
TECHNICAL_DATA-MESSAGING_APPL = 'A'.
, эффект тот-же - сообщение и выход из z-ки без возврата в оную.


может в EXIT_SAPMM06E_012 выводить сообщения с исп. макросов из инклюда MM_MESSAGES_MAC ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 13:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
siga2 написал:
SVT написал(а):
Besa, поставил
Code:
TECHNICAL_DATA-MESSAGING_APPL = 'A'.
, эффект тот-же - сообщение и выход из z-ки без возврата в оную.


может в EXIT_SAPMM06E_012 выводить сообщения с исп. макросов из инклюда MM_MESSAGES_MAC ?

Вариант...

to SVT
Как Вы выводите сообщение? На BAPI_CONTRACT_CHANGE нет возможности проверить, она только в новых версиях, использую BAPI_PO_CREATE1, аналогично процесс проходит через данный экзит, сообщение скидывается в return как надо...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 15:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
SVT написал(а):
Доброго дня, коллеги.

В собственной разработке пользую ФМ BAPI_CONTRACT_CHANGE для изменния данных в позициях закупочного контракта,
При сохранении контракта существует проверка (см. CMOD, MM06E005, EXIT_SAPMM06E_012)
результатом которой является сообщение типа 'E', которое совсем некрасиво завершает работу z-ки, вместо "складирования"
себя в табличку t_return.
Code:
CALL FUNCTION 'BAPI_CONTRACT_CHANGE'
    EXPORTING
            purchasingdocument          = p_contrt
            testrun                     =  p_test
TABLES
      item                        = t_item
      itemx                       = t_itemx
      return                      = t_return.


При вызове BAPI используйте дополнение
Code:
EXCEPTIONS
  error_message = 1.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 15:33 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 13:31
Сообщения: 51
siga2 написал:
SVT написал(а):
Besa, поставил
Code:
TECHNICAL_DATA-MESSAGING_APPL = 'A'.
, эффект тот-же - сообщение и выход из z-ки без возврата в оную.


может в EXIT_SAPMM06E_012 выводить сообщения с исп. макросов из инклюда MM_MESSAGES_MAC ?


Сасибо, посмотрю.

To Besa:
MESSAGE обычный
Code:
MESSAGE e003(ZMESS_ME32K)
      WITH wa_ekpo-ebeln wa_ekpo-ebelp. " Всё плохо - не сохранить!!!


Удав написал(а):
SVT написал(а):
При вызове BAPI используйте дополнение
Код:
EXCEPTIONS
error_message = 1.


Задействовал, но теперь визуализации мессаджа нет, - есть возврат в гл.прогу и пустая t_return.

Дальнейший анализ ошибок BAPI-шки
Code:
READ TABLE t_return WITH KEY type = 'E'.

становится не актуален. :(

_________________
Даже если тебя съели, у тебя есть два выхода...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Пн, май 30 2011, 17:05 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 13:31
Сообщения: 51
siga2 написал:
может в EXIT_SAPMM06E_012 выводить сообщения с исп. макросов из инклюда MM_MESSAGES_MAC ?


Можно, чуток поподробнее, какие из них лучше использовать, если можно пример использования.

Нашёл ноту Note 310154 - ME21N/ME51N: Customer-specific check, generating error log - пересекается с вашим советом.

_________________
Даже если тебя съели, у тебя есть два выхода...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения  Тема решена
СообщениеДобавлено: Пн, май 30 2011, 17:29 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 13:31
Сообщения: 51
siga2, спасибо, за наводку.
Вопрос решен вызовом макроса mmpur_message_forced в EXIT_SAPMM06E_012.

Всем ответчикам, спасибо за советы и участие в поиске решения.

_________________
Даже если тебя съели, у тебя есть два выхода...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Вт, май 31 2011, 08:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
SVT написал(а):
Задействовал, но теперь визуализации мессаджа нет, - есть возврат в гл.прогу и пустая t_return.

Дальнейший анализ ошибок BAPI-шки
Code:
READ TABLE t_return WITH KEY type = 'E'.

становится не актуален. :(

Зато заполнены поля структуры SYST, в которых содержится информация о сообщении с ошибкой ;)
SY-MSGID, SY-MSGNO, SY-MSGTY, SY-MSGV1 - 4

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CHANGE перехват сообщений из расширения
СообщениеДобавлено: Вт, май 31 2011, 09:31 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, апр 10 2006, 13:31
Сообщения: 51
Удав написал(а):
Зато заполнены поля структуры SYST, в которых содержится информация о сообщении с ошибкой ;)
SY-MSGID, SY-MSGNO, SY-MSGTY, SY-MSGV1 - 4


А их, то я и не посмотрел. :oops:

Ешшо один вариант решения (по Удаву):

Code:
CALL FUNCTION 'BAPI_CONTRACT_CHANGE'
    EXPORTING
            purchasingdocument          = p_contrt
            testrun                     =  p_test
TABLES
      item                        = t_item
      itemx                       = t_itemx
      return                      = t_return
EXCEPTIONS
error_message = 1.
case sy-subrc.

when 0.
* all is good

when 1.
* Use
* SY-MSGID, SY-MSGNO, SY-MSGTY, SY-MSGV1 etc.

when others.
* no good
endcase.


_________________
Даже если тебя съели, у тебя есть два выхода...


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

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


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

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


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

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