Текущее время: Вт, апр 25 2017, 20:29

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


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


Вопросы по ППМ (MRP) - сюда.



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Проверка серийного номера в MIGO
СообщениеДобавлено: Пн, мар 06 2017, 18:22 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 13:34
Сообщения: 1906
Откуда: НК
Пол: Мужской
Добрый день всем.

Подскажите пож-та, можно ли как-то в MB_MIGO_BADI~CHECK_ITEM (при проводке MIGO), получить доступ к серийным номерам по каждой позиции (и затем выдать определенное сообщение)?

Пробовал в MB_CHECK_LINE_BADI, используя ASSIGN ('(SAPLMIGO)OREF_DETAIL->T_GOSERIAL') TO <x_goserial>.
Но в <x_goserial> попадает информация из одной-единственной строки. Да еще и не срабатывает для загрузки из временно сохраненного документа.

Или может быть другой какой-нибудь BADI, экзит можно использовать?

_________________
Eritis sicut Deus, scientes bonum et malum...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверка серийного номера в MIGO
СообщениеДобавлено: Пн, мар 06 2017, 20:05 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 925
Откуда: Москва, Минск
Пол: Мужской
Попробуй в MB_CHECK_LINE_BADI через филд-символы:
(SAPLIPW1)XSER03[] - строки ДМ
(SAPLIPW1)XOBJK_ALL[] - СН
Связь таблиц по OBKNR.

Экзит отрабатывает поочередно для каждой строки создаваемого ДМ(и при нажатии кнопки Проверить и при проводке документа).
При обработке последней строки создаваемого документа в указанных выше таблицах будут ВСЕ СН.

Только осталось понять какая строка последняя :)

Ну или как вариант вставлять ENH(или новый или искать существующий) в ФМ MB_CREATE_GOODS_MOVEMENT.
Строки ДМ - таблица imseg[]
Таблицы с СН - выше.

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверка серийного номера в MIGO
СообщениеДобавлено: Пн, мар 06 2017, 23:27 
Ассистент
Ассистент

Зарегистрирован:
Чт, сен 20 2012, 13:08
Сообщения: 49
Цитата:
Подскажите пож-та, можно ли как-то в MB_MIGO_BADI~CHECK_ITEM (при проводке MIGO), получить доступ к серийным номерам по каждой позиции (и затем выдать определенное сообщение)?


CHECK_ITEM работает по каждой позиции. Так можно получить все серийники для текущей проверяемой позиции и выдать на эту строчку сообщение. Этим же 'LINE_GET' можно достучаться до других строк, ну или вызвать его в цикле при проверке заголовка.

Код:
method if_ex_mb_migo_badi~check_item.

  types:
     begin of ty_s_goserial,
       selected         type xfeld,
       serialno         type gernr,
       uii              type uii_char72,           
       subrk            type xfeld,                   
     end of ty_s_goserial,
     ty_t_goserial      type standard table of ty_s_goserial with
                                              non-unique default key.

  data: oref_kernel     type ref to object,
        wa_return       type bapiret2,
        l_goitem        type goitem,
        lt_goserial     type ty_t_goserial,
        wa_goserial     like line of lt_goserial.

  data:
        l_status        type c,
        l_message       type string.

  field-symbols:
                 <oref_kernel>        type any,
                 <fs_action>          type any,
                 <ft_goserial>        type any table.

  assign ('(SAPLMIGO)LCL_MIGO_GLOBALS=>KERNEL') to  <oref_kernel>.
  check sy-subrc = 0.

  oref_kernel = <oref_kernel>.

*   Определение позиции
  clear l_index.
  call method oref_kernel->('LINE_MAPPING')
    exporting
      i_global_counter = i_line_id
    importing
      e_line           = l_index
    exceptions
      others           = 1.

  if sy-subrc <> 0.
    clear wa_return.
    wa_return-type        = 'E'.
    append wa_return      to et_bapiret2.
    exit.
  endif.

*   Получение подробных данных строки
  clear: l_goitem, lt_goserial.
  call method oref_kernel->('LINE_GET')
    exporting
      i_line             = l_index
      i_dependent_tables = abap_true
    importing
      et_goserial        = lt_goserial
      es_goitem          = l_goitem.

endmethod.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверка серийного номера в MIGO
СообщениеДобавлено: Вт, мар 07 2017, 09:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 13:34
Сообщения: 1906
Откуда: НК
Пол: Мужской
Спасибо за ответы!
LOEKZ, и вчера как раз нашел подобный вашему код
https://archive.sap.com/discussions/thread/1221079
разбираюсь
еще раз спасибо!

_________________
Eritis sicut Deus, scientes bonum et malum...


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

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


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

Сейчас этот форум просматривают: BingBot и гости: 2


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

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