Текущее время: Ср, июл 23 2025, 10:16

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: проверка в заказе на поставку
СообщениеДобавлено: Ср, июл 04 2012, 15:50 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 02 2010, 12:17
Сообщения: 37
Откуда: МО
Пол: Мужской
Всем привет.

В заказе на поставку в позицию добавлена вкладка c возможностью заполнения z-полей. Мне нужно проверить заполнение поля при условии, что заполнено другое поле.
Добавил проверку в EXIT_SAPMM06E_017, но при выводе ошибки типа 'E', после вывода сообщение нет возможности внести исправление пользователю, так как все поля блокируются для ввода. ("зацикливается проверка"). Пробывал поставить проверку в реализацию BADI ME_PROCESS_PO_CUST метод PROCESS_ITEM, но она не сработала, так как выяснилось при отладке что программа не заходит в метод.

Нужно сделать чтобы при изменение данных в этой вкладке срабатывала проверка и при выводе ошибки с типом 'E' пользователь мог внести изменение.
Просьба помочь!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка в заказе на поставку
СообщениеДобавлено: Ср, июл 04 2012, 16:11 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
В экранную логику проверку можно перенести (chain)?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка в заказе на поставку  Тема решена
СообщениеДобавлено: Ср, июл 04 2012, 16:14 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Почему в EXIT_SAPMM06E_017, а не в EXIT_SAPMM06E_012?

На счет бади, может Вы не активировали свое внедрение?

И еще, при выставление ошибок юзайте лучше mmpur_* макросы из
TYPE-POOLS: mmpur,
mmmfd.
INCLUDE mm_messages_mac.

На форуме все это обсуждали.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка в заказе на поставку
СообщениеДобавлено: Пт, июл 06 2012, 15:15 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 02 2010, 12:17
Сообщения: 37
Откуда: МО
Пол: Мужской
CHAIN отбросил в связи с тем, что нужно было еще добавить одну проверку не связанную с этими полями.
EXIT_SAPMM06E_017 - хотел чтобы при изменение данных в позиции срабатывала проверка.
Решил проверку добавить при сохрании заказа.
1) В EXIT_SAPMM06E_012 добавил удаление моих сообщений. Пример удаление взял из поста IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM - удалить сообщение из списка
Code:
IF i_ekko-bstyp = 'F'.

  DATA: lo_msg_handler    TYPE REF TO cl_message_handler_mm,
        ls_conf           TYPE melog_s_handler_config,
        lt_event_list     TYPE mmpur_event_list.
  FIELD-SYMBOLS:
    <ls_event_list>   TYPE mmpur_event_entry.

  CALL METHOD cl_message_handler_mm=>get_handler
    IMPORTING
      ex_handler = lo_msg_handler.

  CALL METHOD lo_msg_handler->get_configuration
    RECEIVING
      re_configuration = ls_conf.

  ls_conf-keep_deleted_events = space.

  CALL METHOD lo_msg_handler->set_configuration
    EXPORTING
      im_configuration = ls_conf.

  " получаю список сообщений
  CALL METHOD lo_msg_handler->getlist
    IMPORTING
      ex_events = lt_event_list[].

  LOOP AT lt_event_list ASSIGNING <ls_event_list>.
    " чистим лог с сообщениями
    CASE <ls_event_list>-signature.
      WHEN 'ZMME200' OR 'ZMME201'.
        " удаляю
        CALL METHOD lo_msg_handler->remove
          EXPORTING
            im_event_obj = <ls_event_list>-event_obj.

    ENDCASE.
  ENDLOOP.

ENDIF.


2) В BADI ME_PROCESS_PO_CUST~CHECK добавлены проверки. Ошибки выставляются с помощью двух макросов
mmpur_business_obj_id ls_item-id.
mmpur_message_forced 'E' 'ZMM' '200' '' '' '' ''.
Если имеются ошибки, то проставляю ch_failed = 'X' - чтобы прервать сохранение заказа.

Спасибо BESA за подсказку.


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

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


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

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


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

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