Текущее время: Пт, мар 29 2024, 08:34

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: BAPI для добавления материалов в заказ ТОРО
СообщениеДобавлено: Вт, июл 07 2020, 15:22 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Добрый день уважаемые PM консультанты.

Столкнулся со следующей проблемой: необходимо сделать пакетник по созданию заказов ТОРО. Попытался сделать через стандарт, т.е. через BDC, но вот проблема, транзакция IW31 позволяет в пакетнике добавлять ровно столько материалов сколько видно на экране, ну т.е. на экран допустим поместится 19 материалов, чтобы добавить ещё надо полосой прокрутки двигать экран, пакетник этого не понимает. Пытался использовать BAPI BAPI_ALM_ORDER_MAINTAIN для изменения уже созданного заказа и добавления в него нужное мне количество материалов, но вот проблема, там есть структура BAPI_ALM_ORDER_COMPONENT, в которую нужно передавать номер резервирования RESERV_NO. Вот здесь и не понятно, резервирование автоматически создаётся при деблокировании заказа, тогда что я должен передавать в поле RESERV_NO, если резервирование ещё не создалось. Пытался смотреть ФМ BAPI_ALM_COMPONENT_GET_DETAIL, там тоже надо передавать номер резервирования. Может кто делал что то похожее и подскажет какое нибудь другое BAPI или ещё что?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для добавления материалов в заказ ТОРО
СообщениеДобавлено: Вт, июл 07 2020, 15:57 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 24 2015, 11:01
Сообщения: 65
Пол: Мужской
Делал добавление позиций в заказ ТОРО BAPI_ALM_ORDER_MAINTAIN
Резервирование создаётся автоматически внутри BAPI. Резервирование есть всегда, даже у недеблокированных закзов

Выдержки из кода по заполнению структур. Правда у меня всё на одну операцию вешалось( <fs_components_new>-activity = '0010'.) но это уже детали.


Code:
  DATA: lv_pm_order    TYPE bapi_alm_order_header_e-orderid,
        lv_item_number TYPE bapi_alm_order_component_e-item_number,
        lv_num_row     TYPE i.

  lv_num_row = 0.

      ADD 10 TO lv_item_number.
      ADD 1 TO lv_num_row.

      APPEND INITIAL LINE TO lt_components_new ASSIGNING FIELD-SYMBOL(<fs_components_new>).
      <fs_components_new>-item_number = lv_item_number.
      <fs_components_new>-material = ls_matdoc-matnr.
      <fs_components_new>-batch    = ls_matdoc-charg.
      <fs_components_new>-item_cat = 'L' .
      <fs_components_new>-requirement_quantity = ls_matdoc-menge.
      <fs_components_new>-requirement_quantity_unit = ls_matdoc-meins.
      <fs_components_new>-stge_loc = ls_matdoc-umlgo.
      <fs_components_new>-activity = '0010'.

      APPEND INITIAL LINE TO lt_components_up ASSIGNING FIELD-SYMBOL(<fs_components_up>).
      <fs_components_up>-item_number = 'X'.
      <fs_components_up>-material = 'X'.
      <fs_components_up>-batch    = 'X'.
      <fs_components_up>-item_cat = 'X'.
      <fs_components_up>-requirement_quantity = 'X'.
      <fs_components_up>-requirement_quantity_unit = 'X'.
      <fs_components_up>-stge_loc = 'X'.
      <fs_components_up>-activity = 'X'.

      APPEND INITIAL LINE TO lt_methods ASSIGNING FIELD-SYMBOL(<lt_methods>).
      <lt_methods>-refnumber = lv_num_row.
      <lt_methods>-objecttype = 'COMPONENT'.
      <lt_methods>-method = 'CREATE'.
      <lt_methods>-objectkey = lv_pm_order.

      APPEND INITIAL LINE TO lt_methods ASSIGNING <lt_methods>.
      <lt_methods>-refnumber = lv_num_row.
      <lt_methods>-method = 'SAVE'.



      CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
        TABLES
          it_methods      = it_method
          it_component    = it_component
          it_component_up = it_component_up
          return          = it_return.



Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для добавления материалов в заказ ТОРО
СообщениеДобавлено: Ср, июл 08 2020, 15:04 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Alexey Zhandarov написал:
Делал добавление позиций в заказ ТОРО BAPI_ALM_ORDER_MAINTAIN
Резервирование создаётся автоматически внутри BAPI. Резервирование есть всегда, даже у недеблокированных закзов

Выдержки из кода по заполнению структур. Правда у меня всё на одну операцию вешалось( <fs_components_new>-activity = '0010'.) но это уже детали.



[/code]

Спасибо за подсказку Алексей. Попробовал Ваш пример, материал действительно добавляется, но опять же не понятно как добавлять больше одного материала, пробовал сделать так
Code:
APPEND INITIAL LINE TO lt_components_new ASSIGNING FIELD-SYMBOL(<fs_components_new>).
<fs_components_new>-item_number = '0010'.
<fs_components_new>-material = '000000000201003348'. "ls_matdoc-matnr.
<fs_components_new>-batch    = ''.
<fs_components_new>-item_cat = 'L' .
<fs_components_new>-requirement_quantity = '1'."ls_matdoc-menge.
<fs_components_new>-requirement_quantity_unit = 'KG'." ls_matdoc-meins.
<fs_components_new>-stge_loc = '0035'. "ls_matdoc-umlgo.
<fs_components_new>-activity = '0010'.
*
APPEND INITIAL LINE TO lt_components_up ASSIGNING FIELD-SYMBOL(<fs_components_up>).
<fs_components_up>-item_number = 'X'.
<fs_components_up>-material = 'X'.
<fs_components_up>-batch    = 'X'.
<fs_components_up>-item_cat = 'X'.
<fs_components_up>-requirement_quantity = 'X'.
<fs_components_up>-requirement_quantity_unit = 'X'.
<fs_components_up>-stge_loc = 'X'.
<fs_components_up>-activity = 'X'.

APPEND INITIAL LINE TO lt_components_new ASSIGNING <fs_components_new>.
<fs_components_new>-item_number = '0020'.
<fs_components_new>-material = '000000000201014445'. "ls_matdoc-matnr.
<fs_components_new>-batch    = ''.
<fs_components_new>-item_cat = 'L' .
<fs_components_new>-requirement_quantity = '1'."ls_matdoc-menge.
<fs_components_new>-requirement_quantity_unit = 'KG'." ls_matdoc-meins.
<fs_components_new>-stge_loc = '0035'. "ls_matdoc-umlgo.
<fs_components_new>-activity = '0010'.

APPEND INITIAL LINE TO lt_components_up ASSIGNING <fs_components_up>.
<fs_components_up>-item_number = 'X'.
<fs_components_up>-material = 'X'.
<fs_components_up>-batch    = 'X'.
<fs_components_up>-item_cat = 'X'.
<fs_components_up>-requirement_quantity = 'X'.
<fs_components_up>-requirement_quantity_unit = 'X'.
<fs_components_up>-stge_loc = 'X'.
<fs_components_up>-activity = 'X'.

APPEND INITIAL LINE TO lt_methods ASSIGNING FIELD-SYMBOL(<lt_methods>).
<lt_methods>-refnumber = lv_num_row.
<lt_methods>-objecttype = 'COMPONENT'.
<lt_methods>-method = 'CREATE'.
<lt_methods>-objectkey = '9010038298'."lv_pm_order'.

APPEND INITIAL LINE TO lt_methods ASSIGNING <lt_methods>.
<lt_methods>-refnumber = lv_num_row.
<lt_methods>-method = 'SAVE'.



CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
  TABLES
    it_methods      = lt_methods
    it_component    = lt_components_new
    it_component_up = lt_components_up
    return          = itab_return
    ET_NUMBERS      = itab_numbers.

call function 'BAPI_TRANSACTION_COMMIT'.

Добавляет только первый материал, второй игнорирует или тут надо запускать каждое добавление по одному материалу в заказ в цикле?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для добавления материалов в заказ ТОРО  Тема решена
СообщениеДобавлено: Чт, июл 09 2020, 18:37 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 24 2015, 11:01
Сообщения: 65
Пол: Мужской
У меня добавляется больше одного материала.

Цикл по позициям, что нужно добавить, должен включать в себя блок.

Code:
      APPEND INITIAL LINE TO lt_methods ASSIGNING <lt_methods>.
      <lt_methods>-refnumber = lv_num_row.
      <lt_methods>-objecttype = 'COMPONENT'.
      <lt_methods>-method = 'CREATE'.
      <lt_methods>-objectkey(12)  = lv_pm_order.
      <lt_methods>-objectkey+12(4) = ls_components-res_item .

      APPEND INITIAL LINE TO lt_methods ASSIGNING <lt_methods>.
      <lt_methods>-refnumber = lv_num_row.
      <lt_methods>-method = 'SAVE'.


Возможно вы lt_methods формируете перед бапишкой и заполняете двумя строками(CREATE and SAVE), а нужно для каждой позиции наполнять по две строки.
По крайней мере я так делал.


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

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


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

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


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

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