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

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


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

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


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

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