Автор Тема: BAPI для добавления материалов в заказ ТОРО  (Прочитано 309 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 274
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Доброго времени суток уважаемые PM консультанты.

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

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 755
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: BAPI для добавления материалов в заказ ТОРО
« Ответ #1 : Июль 07, 2020, 08:00:21 pm »
You are not allowed to view links. Register or Login
я должен передавать в поле RESERV_NO, если резервирование ещё не создалось. Пытался смотреть ФМ BAPI_ALM_COMPONENT_GET_DETAIL, там тоже надо передавать номер резервирования. Может кто делал что то похожее и подскажет какое нибудь другое BAPI или ещё что?
Тут фишка в том что резервирование еще не создавалось, но номер уже есть в заказе ТОРО, как я понимаю, т.е. резервирование номера резервирования (такая вот диалогия слов ), уже произошло, так что его надо прочитать из заказа ТОРО и дальше при вызове этих БАПИ передавать.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 274
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: BAPI для добавления материалов в заказ ТОРО
« Ответ #2 : Июль 09, 2020, 03:42:17 pm »
В общем если кому то понадобится, то  добавление материалов в заказ можно сколько угодно.  Вот пример заполнения структур. Добавил 22 материала.
Код: You are not allowed to view links. Register or Login
data: lt_components_new TYPE TABLE OF BAPI_ALM_ORDER_COMPONENT,
        lt_components_up  TYPE TABLE OF  BAPI_ALM_ORDER_COMPONENT_UP,
        lt_methods        TYPE TABLE OF bapi_alm_order_method.
  data lv_num_row     TYPE i.
  data      lv_item_number TYPE bapi_alm_order_component-item_number.
  DATA itab_return TYPE TABLE OF bapiret2.
  data ztab_return TYPE bapiret2.
  data zztab_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
  DATA itab_numbers TYPE TABLE OF bapi_alm_numbers.
  lv_num_row = 0.
loop at itab_mat.
    ADD 1 TO lv_num_row.
    ADD 10 TO lv_item_number.
    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 = itab_mat-matnr. " '000000000201003348'.
    <fs_components_new>-batch    = itab_mat-batch.
    <fs_components_new>-item_cat = 'L' .
    <fs_components_new>-requirement_quantity = itab_mat-MENGE1."ls_matdoc-menge.
    <fs_components_new>-requirement_quantity_unit = itab_mat-EINHEIT." ls_matdoc-meins.
    <fs_components_new>-stge_loc = itab_mat-LGORT. "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 = tab_mess-L_MSTRING3."lv_pm_order'.

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

  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'.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 755
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: BAPI для добавления материалов в заказ ТОРО
« Ответ #3 : Июль 10, 2020, 03:21:44 pm »
You are not allowed to view links. Register or Login
В общем если кому то понадобится, то  добавление материалов в заказ можно сколько угодно. 
А что за резервирование то у тебя хотело?

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 274
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: BAPI для добавления материалов в заказ ТОРО
« Ответ #4 : Июль 15, 2020, 02:01:43 pm »
You are not allowed to view links. Register or Login
А что за резервирование то у тебя хотело?
Я не до конца понял документацию к ФМ, с помощью которых я пытался добавить материалы, подумал что номер резервирования нужно добавлять ручками. Потом потестил, оказалось не нужно.