Текущее время: Чт, мар 28 2024, 17:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Чт, ноя 23 2017, 13:09 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 10 2005, 14:14
Сообщения: 216
Откуда: Україна -> Москва
Здравствуйте, коллеги!

Возник еще такой вопрос по расширенным полям в тр.ME2*N.
Когда создается новый заказ (тр. ME21N), то, скажем, после ввода в поле Поставщик, нас кидает по закладкам заголовка с обязательными полями для ввода данных. При этом соответственное сообщение об ошибке (об обязательном заполнении поля) появляется в табличке с сообщениями (красный светофорчик).
Возможно ли сделать так, чтобы наша закладка Данные клиента с добавленным полем также попадала в этот алгоритм ??

Такую проверку перед сохранением или для проверки документа реализовал в экзите EXIT_SAPMM06E_012. Но получается, что пользователь может узнать об обязательном вводе в наше поле только после ввода всех позиций и попытке сохранения или проверки. А это неудобно.
Очень важно, чтобы проверка срабатывала раньше. До того как пользователь начнет вводить позиции.

И еще (на всякий). Поле является обязательным только для отдельных видов заказа.

Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Чт, ноя 23 2017, 14:19 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Kahaber написал(а):
Здравствуйте, коллеги!

Возник еще такой вопрос по расширенным полям в тр.ME2*N.
Когда создается новый заказ (тр. ME21N), то, скажем, после ввода в поле Поставщик, нас кидает по закладкам заголовка с обязательными полями для ввода данных. При этом соответственное сообщение об ошибке (об обязательном заполнении поля) появляется в табличке с сообщениями (красный светофорчик).
Возможно ли сделать так, чтобы наша закладка Данные клиента с добавленным полем также попадала в этот алгоритм ??

Такую проверку перед сохранением или для проверки документа реализовал в экзите EXIT_SAPMM06E_012. Но получается, что пользователь может узнать об обязательном вводе в наше поле только после ввода всех позиций и попытке сохранения или проверки. А это неудобно.
Очень важно, чтобы проверка срабатывала раньше. До того как пользователь начнет вводить позиции.

И еще (на всякий). Поле является обязательным только для отдельных видов заказа.

Спасибо.

Честно скажу я деталей уже не помню, давно разбирался.

Почитайте это, поэксперементируйте.

http://www.sapboard.ru/forum/viewtopic.php?p=370413
http://sapboard.ru/forum/viewtopic.php?f=13&t=77418
http://sapboard.ru/forum/viewtopic.php?f=13&t=67965


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Пт, ноя 24 2017, 16:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 10 2005, 14:14
Сообщения: 216
Откуда: Україна -> Москва
Спасибо за ссылки. Почитал, продвинулся.

Наткнулся и не могу забороть такую ошибку:
По ходу заполнения Заголовка заказа срабатывает проверка на заполнение Добавленного поля в экзите EXIT_SAPMM06E_008 - появляется красный сфетофор.
Заполняю поле, энтер - удаляю нужное сообщение, сфетофор пропадает, но когда ОПЯТЬ очищаю поле, проверка отрабатывает, сообщение создается, НО сфетофор не появляется.

Удаление сообщения делаю, как в ссылке http://sapboard.ru/forum/viewtopic.php?f=13&t=18975&start=0
Code:
DATA: l_msg_handler TYPE REF TO cl_message_handler_mm,
           l_event TYPE REF TO cl_event_mm,
           lt_event_list TYPE mmpur_event_list,
           wa_lt_event_list TYPE MMPUR_EVENT_ENTRY.

        CALL METHOD cl_message_handler_mm=>get_handler
          IMPORTING
            ex_handler = l_msg_handler.

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

      loop at lt_event_list into wa_lt_event_list.

         " проверяю на мою сигнатуру
         if wa_lt_event_list-signature = 'ZME20610'.

             " удаляю         
             CALL METHOD l_msg_handler->REMOVE
               exporting
                 im_event_obj = wa_lt_event_list-event_obj.

         endif.

       endloop.


Пробовал по аналогии использовать метод CALL METHOD l_msg_handler->ADD... чтобы добавть сообщение, но ничего не происходит.
НО если нажать кнопку проверит весь докумет, то после этого проверки срабатывают. Видимо чтото там обновляется или актуализируется.
Может кто в курсе, чего еще надо?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Пт, ноя 24 2017, 17:48 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
А где (экзит, бади) проверка стоит и каким образом сообщение укладываете в лог?

Сделайте так, проверку в бади (бади *process*po*cust* в метод *proccess*head*), укладываете сообщение через макросы в инклюде MM_MESSAGES_MAC там есть mmpur_message_forced
И потом еще вызвать в бади
im_header->invalidate( ) это установит флаг что заголовок содержит ошибки.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Вт, ноя 28 2017, 10:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 10 2005, 14:14
Сообщения: 216
Откуда: Україна -> Москва
Бади не подходит, не срабатывает при нажатии энтер в нашем поле.
В экзите EXIT_SAPMM06E_008 все отрабатывает нормально.
Сообщение создается так:
Code:
      CALL METHOD cl_message_mm=>create
        EXPORTING
          im_msgid         = 'ZME21N_F'
          im_msgty         = 'E'
          im_msgno         = lv_msgno
          im_msgv1         = lv_message
          im_msgv2         = lv_message1
          im_msgv3         = lv_message2
          im_msgv4         = lv_message3
          im_force_collect = 'X'
        EXCEPTIONS
          failure          = 01
          dialog           = 02.

*  это для просмотра таблицы сообщений
*  DATA:    lt_event_list TYPE mmpur_event_list.
     
CALL METHOD l_msg_handler->getlist
        IMPORTING
          ex_events = lt_event_list[].



НО, проблема в том, что сообщение почемуто создается с пустым полем lt_event_list-BUSINESS_OBJ. И, получается, что сообщения с пустым этим полем в логе не отражаются. Может кто в курсе, как заполнить данное поле?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Вт, ноя 28 2017, 10:49 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 10:50
Сообщения: 197
Посмотрите группу функций /SAPMP/MM_CE инклюд MM_MESSAGES_MAC


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Вт, ноя 28 2017, 12:14 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 10 2005, 14:14
Сообщения: 216
Откуда: Україна -> Москва
Огромное спасибо, Bimit и Besa. :pivo:
Вроди все получилось.

Остался единственный момент. Когда заполняется Заголовок заказа, то после сообщения об заполнении обязательных полей, нас перекидывает на закладку, где находится поле. По нашему полю сообщение есть, но перекидывает в какуюто левую закладку. Можно ли сделать, чтобы перекидывало в нашу добавленую закладку Данные клиента?? И вообще, возможно ли сделать это с экзита?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Вт, ноя 28 2017, 22:06 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Kahaber написал(а):
Огромное спасибо, Bimit и Besa. :pivo:
Вроди все получилось.

Остался единственный момент. Когда заполняется Заголовок заказа, то после сообщения об заполнении обязательных полей, нас перекидывает на закладку, где находится поле. По нашему полю сообщение есть, но перекидывает в какуюто левую закладку. Можно ли сделать, чтобы перекидывало в нашу добавленую закладку Данные клиента?? И вообще, возможно ли сделать это с экзита?

Это может быть не так просто для Z полей. Для стандартных без проблем.
Надо пробовать в общем.

Подключаете вот это
TYPE-POOLS: mmpur,
        mmmfd.
INCLUDE mm_messages_mac.

Смотрите вот это ГФ MEMFS (там еще и бади есть)

Смотрите вот эти макросы в связке
mmpur_business_obj_id (1 для заголовка, 2 для позиций, 3 для контировок по-моему так)
+ этот макрос mmpur_metafield (ИДшником задается поле для навигации см mmmfd + ФМы)
ну и + mmpur_message_forced уже знаете

Это я примерно описал как будет работать навигация для стандартного поля из своих старых заметок.
Все это попробовать прикрутить для ZZ полей.
Кстати они же у Вас в ekko через append structure ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще вопрос по тр.ME2*N после расширения с помощью MM06E005
СообщениеДобавлено: Чт, ноя 30 2017, 12:51 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июн 10 2005, 14:14
Сообщения: 216
Откуда: Україна -> Москва
Besa написал:
mmpur_business_obj_id (1 для заголовка, 2 для позиций, 3 для контировок по-моему так)


по поводу параметра, котрый подается на вход макросу mmpur_business_obj_id.
В тр. ME21N и ME22N для сообщений заголовка да, он равен 1.
НО если зайти в правку из тр ME23N, то 1 не подходит = дамп.
Как получить правильное значение этого параметра?

Ну или как получить значение gl_handle, чтобы самому установить нужный business_obj --
Code:
    DATA: gl_handle          TYPE REF TO cl_handle_mm.

...

      CALL METHOD cl_message_mm=>set_current_business_obj
        EXPORTING
          im_business_obj = gl_handle.



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

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


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

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


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

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