21 июня 2016

Расширение ОЗМ

Расширение структур MARA, BAPI_TE_MARA, BAPI_TE_MARAX и пример использования BAPI BAPI_MATERIAL_SAVEDATA.


Расширение MARA

Добавляем append-структуру в таблицу MARA.



Вывод полей в транзакции MM01/MM02/MM03

Путь к настройке по меню тр. SPRO: Общая логистика » Основные записи материалов » Конфигурация основных записей материалов » Как это выполнить (руководство на основе примера).


Также необходимо выполнить присвоение полей группам выбора полей (путь по меню тр. SPRO: Общая логистика » Основные записи материалов » Выбор полей).

Передача пользовательских полей в BAPI_MATERIAL_SAVEDATA

Добавляем append-структуру с теми же пользовательскими полями, что и в MARA, в структуры BAPI_TE_MARA и BAPI_TE_MARAX. 

Передаем в BAPI_MATERIAL_SAVEDATA таблицу EXTENSIONIN структурой BAPIPAREX и таблицу EXTENSIONINX структурой BAPIPAREXX. 

  DATA: ls_headdata             TYPE bapimathead,
        ls_clientdata           TYPE bapi_mara,
        ls_clientdatax          TYPE bapi_marax,
        ls_plantdata            TYPE bapi_marc,
        ls_plantdatax           TYPE bapi_marcx,
        ls_valuationdata        TYPE bapi_mbew,
        ls_valuationdatax       TYPE bapi_mbewx,
        ls_salesdata            TYPE bapi_mvke,
        ls_salesdatax           TYPE bapi_mvkex,

        lt_materialdescription  TYPE TABLE OF bapi_makt,
        lt_unitsofmeasure       TYPE TABLE OF bapi_marm,
        lt_unitsofmeasurex      TYPE TABLE OF bapi_marmx,
        lt_materiallongtext     TYPE TABLE OF bapi_mltx,
        lt_taxclassifications   TYPE TABLE OF bapi_mlan,
        lt_returnmessages       TYPE TABLE OF bapiret2,
        lt_extensionin          TYPE TABLE OF bapiparex,
        ls_extensionin          LIKE LINE OF lt_extensionin,
        lt_extensioninx         TYPE TABLE OF bapiparexx,
        ls_extensioninx         LIKE LINE OF lt_extensioninx,

        ls_bapi_te_mara         TYPE bapi_te_mara,
        ls_bapi_te_marax        TYPE bapi_te_marax.

  CLEAR:
    ls_bapi_te_mara,
    ls_bapi_te_mara.

  ls_bapi_te_mara-material = lv_matnr.
  ls_bapi_te_mara-zzfield01 = 'A'.
  ls_bapi_te_mara-zzfield02 = '0123456789'.

  ls_extensionin-structure = 'BAPI_TE_MARA'.
  ls_extensionin+30 = ls_bapi_te_mara.

  INSERT ls_extensionin INTO TABLE lt_extensionin.
  
  ls_bapi_te_marax-material = lv_matnr.
  ls_bapi_te_marax-zzfield01 = abap_true.
  ls_bapi_te_marax-zzfield02 = abap_true.

  ls_extensioninx-structure = 'BAPI_TE_MARAX'.
  ls_extensioninx+30 = ls_bapi_te_marax.

  INSERT ls_extensionin INTO TABLE lt_extensionin.

  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
      headdata            = ls_headdata
      clientdata          = ls_clientdata
      clientdatax         = ls_clientdatax
      plantdata           = ls_plantdata
      plantdatax          = ls_plantdatax
      valuationdata       = ls_valuationdata
      valuationdatax      = ls_valuationdatax
      salesdata           = ls_salesdata
      salesdatax          = ls_salesdatax
    TABLES
      materialdescription = lt_materialdescription
      unitsofmeasure      = lt_unitsofmeasure
      unitsofmeasurex     = lt_unitsofmeasurex
      materiallongtext    = lt_materiallongtext
      taxclassifications  = lt_taxclassifications
      returnmessages      = lt_returnmessages
      extensionin         = lt_extensionin
      extensioninx        = lt_extensioninx.




Комментариев нет:

Отправить комментарий