Текущее время: Вт, июл 29 2025, 01:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Расширение ОЗМ на виды оценок через BAPI
СообщениеДобавлено: Пн, авг 30 2010, 19:09 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, мар 16 2005, 09:37
Сообщения: 42
Откуда: Москва
Indiana написал(а):
Необходимо добавить в ракурс Бухучёт данные по видам оценки. Необходимо сделать это через BAPI_MATERIAL_SAVEDATA.
....
Заполняем данные в HEADDATA, CLIENTDATA и VALUATIONDATA (и ...Х конечно).
....
Короче вопрос, если кто уже подобным гемором занимался, и у него на виды оценки бухучёт расширяется, то подскажите как?
А то уже месяц бъюсь!
Вот код, который заполняет ракурс бухучета для BAPI_MATERIAL_SAVEDATA
Code:
FORM get_account_view
    USING
        _i_material TYPE ty_s_material
    CHANGING
        _e_header   TYPE bapimathead
        _e_account  TYPE bapi_mbew
        _e_accountx TYPE bapi_mbewx.

  CHECK NOT _i_material-bwtar IS INITIAL.

  "Проверка на необходимость расширить материал на вид оценки
  SELECT COUNT(*)
      FROM mbew
      WHERE matnr EQ _i_material-matnr
        AND bwkey EQ _i_material-werks
        AND bwtar EQ _i_material-bwtar.
  CHECK NOT sy-subrc IS INITIAL. "Расширяем, если не нашли запись

  MOVE abap_on TO _e_header-account_view.

  MOVE:
    _i_material-werks     TO _e_account-val_area,
    _i_material-werks     TO _e_accountx-val_area,
    _i_material-bwtar     TO _e_account-val_type,
    _i_material-bwtar     TO _e_accountx-val_type,
    'V'                   TO _e_account-price_ctrl, "Средняя скользящая цена/периодическая учетная цена
    abap_on               TO _e_accountx-price_ctrl,
    _i_material-bklas     TO _e_account-val_class,
    abap_on               TO _e_accountx-val_class,
    _e_account-price_ctrl TO _e_account-pr_ctrl_pp,
    abap_on               TO _e_accountx-pr_ctrl_pp,

    abap_on               TO _e_accountx-moving_pr,
    abap_on               TO _e_accountx-price_unit.

ENDFORM. "get_account_view


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение ОЗМ на виды оценок через BAPI
СообщениеДобавлено: Вт, авг 31 2010, 08:22 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, сен 13 2008, 08:50
Сообщения: 56
Добрый день.
В свое время расширение ОЗМ делал с помощью BAPI "BAPI_MATERIAL_SAVEREPLICA".
Надеюсь поможет тем, кому актуально :)
Code:
  DATA : lt_headdata    TYPE STANDARD TABLE OF bapie1matheader,
         lt_plantdata   TYPE STANDARD TABLE OF bapie1marc,
         lt_plantdatax  TYPE STANDARD TABLE OF bapie1marcx,
         lt_valuatdata  TYPE STANDARD TABLE OF bapie1mbew,
         lt_valuatdatax TYPE STANDARD TABLE OF bapie1mbewx,
         lt_sales       TYPE STANDARD TABLE OF bapie1mvke,
         lt_salesx      TYPE STANDARD TABLE OF bapie1mvkex,
         lt_msg         TYPE STANDARD TABLE OF bapie1ret2,
         lt_storagex    TYPE STANDARD TABLE OF bapie1mardx,
         lt_storage     TYPE STANDARD TABLE OF bapie1mard,
         lt_tax         TYPE STANDARD TABLE OF bapie1mlan,
         lt_clientdata  TYPE STANDARD TABLE OF bapie1mara,
         lt_clientdatax TYPE STANDARD TABLE OF bapie1marax.


  DATA : wa_head        LIKE LINE OF lt_headdata,
         wa_plant       LIKE LINE OF lt_plantdata,
         wa_plantx      LIKE LINE OF lt_plantdatax,
         wa_valuate     LIKE LINE OF lt_valuatdata,
         wa_valuatex    LIKE LINE OF lt_valuatdatax,
         wa_sales       LIKE LINE OF lt_sales,
         wa_salesx      LIKE LINE OF lt_salesx,
         wa_storage     LIKE LINE OF lt_storage,
         wa_storagex    LIKE LINE OF lt_storagex,
         wa_msg         LIKE LINE OF lt_msg,
         wa_werks       LIKE LINE OF lt_werks,
         wa_tax         LIKE LINE OF lt_tax,
         wa_client      LIKE LINE OF lt_clientdata,
         wa_clientx     LIKE LINE OF lt_clientdatax,
         wa_t001w       LIKE LINE OF lt_t001w.

  FIELD-SYMBOLS
       : <fs_tvko>      LIKE LINE OF lt_tvko ,
         <fs_lgort>     LIKE LINE OF lt_lgort.


* расширяем ОЗМ на все заводы, все склады и все СбОрг
* формируем интерфейсные таблицы
  REFRESH : lt_headdata,
            lt_plantdata,
            lt_plantdatax,
            lt_valuatdata,
            lt_valuatdatax,
            lt_sales,
            lt_salesx,
            lt_storage,
            lt_storagex,
            lt_tax,
            lt_clientdata,
            lt_clientdatax.

* ракурсы
  CLEAR wa_head.
  wa_head-function        = 'INS'.
  wa_head-material        = p_matnr.
  wa_head-matl_type       = ps_out-mtart.
  wa_head-ind_sector      = 'Z'.
  wa_head-basic_view      = 'X'.
  wa_head-sales_view      = 'X'.
  wa_head-purchase_view   = 'X'.
  wa_head-mrp_view        = 'X'.
  wa_head-forecast_view   = 'X'.
  wa_head-work_sched_view = 'X'.
  wa_head-prt_view        = 'X'.
  wa_head-storage_view    = 'X'.
  wa_head-warehouse_view  = 'X'.
  wa_head-quality_view    = 'X'.
  wa_head-account_view    = 'X'. " РАКУРС БУХ УЧЕТА
  wa_head-cost_view       = 'X'.
  APPEND wa_head TO lt_headdata.


* заводозависимые данные
  LOOP AT lt_t001w INTO wa_t001w.
    CLEAR wa_plant.
    wa_plant-function    = 'INS'.
    wa_plant-material    = p_matnr.
    wa_plant-plant       = wa_t001w-werks.
    wa_plant-pur_group = ps_out-ekgrp.
    wa_plant-batch_mgmt  = ps_out-xchpf.
    wa_plant-availcheck  = ps_out-mtvfp.
    wa_plant-loadinggrp  = ps_out-ladgr.
    wa_plant-mrp_type    = 'ND'.
    APPEND wa_plant TO lt_plantdata.

    CLEAR wa_plantx.
    wa_plantx-function    = 'INS'.
    wa_plantx-material    = p_matnr.
    wa_plantx-plant       = wa_t001w-werks.
    wa_plantx-pur_group   = 'X'.
    wa_plantx-batch_mgmt  = 'X'.
    wa_plantx-availcheck  = 'X'.
    wa_plantx-loadinggrp  = 'X'.
    wa_plantx-mrp_type    = 'X'.
    wa_plantx-plnd_delry  = 'X'.
    APPEND wa_plantx TO lt_plantdatax.

*   данные оценки
    CLEAR wa_valuate.
    wa_valuate-function   = 'INS'.
    wa_valuate-material   = p_matnr.
    wa_valuate-val_area   = wa_t001w-werks. " область оценки
    wa_valuate-vm_so_stk  = ps_out-eklas. " класс оценки запаса клиента
    wa_valuate-val_class  = ps_out-bklas. " класс оценки
    wa_valuate-ml_settle  = ps_out-mlast. " исчисление цены материала
    wa_valuate-val_cat    = ps_out-bwtty. " тип оценки
    wa_valuate-price_ctrl = ps_out-vprsv. " код управления ценой
    wa_valuate-ml_settle  = ps_out-mlast. " исчисление цены материала
    APPEND wa_valuate TO lt_valuatdata.

    CLEAR wa_valuatex.
    wa_valuatex-function   = 'INS'.
    wa_valuatex-material   = p_matnr.
    wa_valuatex-val_area   = wa_t001w-werks. " область оценки
    wa_valuatex-moving_pr  = 'X'.
    wa_valuatex-std_price  = 'X'.
    wa_valuatex-price_unit = 'X'.
    wa_valuatex-val_class  = 'X'.
    wa_valuatex-val_cat    = 'X'.
    wa_valuatex-vm_so_stk  = 'X'.
    wa_valuatex-price_ctrl = 'X'.
    wa_valuatex-ml_settle  = 'X'.
    APPEND wa_valuatex TO lt_valuatdatax.
  ENDLOOP.


* склады
  LOOP AT lt_lgort ASSIGNING <fs_lgort>.
    CLEAR wa_storage.
    wa_storage-function = 'INS'.
    wa_storage-material = p_matnr.
    wa_storage-plant    = <fs_lgort>-werks.
    wa_storage-stge_loc = <fs_lgort>-lgort.
    APPEND wa_storage TO lt_storage.

    CLEAR wa_storagex.
    wa_storagex-function = 'INS'.
    wa_storagex-material = p_matnr.
    wa_storagex-plant    = <fs_lgort>-werks.
    wa_storagex-stge_loc = <fs_lgort>-lgort.
    APPEND wa_storagex TO lt_storagex.
  ENDLOOP.


* сбытовые данные + канал сбыта 10
  LOOP AT lt_tvko ASSIGNING <fs_tvko>.
    CLEAR wa_sales.
    wa_sales-function    = 'INS'.
    wa_sales-material    = p_matnr.
    wa_sales-sales_org   = <fs_tvko>-vkorg.
    wa_sales-distr_chan  = '10'.
    wa_sales-item_cat    = 'LEIS'.
    wa_sales-acct_assgt  = ps_out-ktgrm.
    wa_sales-matl_stats  = ps_out-versg.
    APPEND wa_sales TO lt_sales.

    CLEAR wa_salesx.
    wa_salesx-function   = 'INS'.
    wa_salesx-material   = p_matnr.
    wa_salesx-sales_org  = <fs_tvko>-vkorg.
    wa_salesx-distr_chan = '10'.
    wa_salesx-item_cat   = 'X'.
    wa_salesx-acct_assgt = 'X'.
    wa_salesx-matl_stats = 'X'.
    APPEND wa_salesx TO lt_salesx.
  ENDLOOP.

* + дополнительные данные
*     данные материала
      CLEAR wa_client.
      wa_client-function  = 'INS'.
      wa_client-material  = p_matnr.
      wa_client-trans_grp = ps_out-tragr.
      APPEND wa_client TO lt_clientdata.

      CLEAR wa_clientx.
      wa_clientx-function  = 'INS'.
      wa_clientx-material  = p_matnr.
      wa_clientx-trans_grp = ps_out-tragr.
      APPEND wa_clientx TO lt_clientdatax.

*     налоговые данные
      CLEAR wa_tax.
      wa_tax-depcountry = 'RU'.
      wa_tax-taxclass_1 = ps_out-taxm1.
      wa_tax-tax_type_1 = 'MW01'.
      wa_tax-tax_ind    = '1'.
      APPEND wa_tax TO lt_tax.

  SET UPDATE TASK LOCAL.
  CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
    EXPORTING
      noappllog            = space
      nochangedoc          = space
      testrun              = space
      inpfldcheck          = space
    TABLES
      headdata             = lt_headdata
      clientdata           = lt_clientdata
      clientdatax          = lt_clientdatax
      valuationdata        = lt_valuatdata
      valuationdatax       = lt_valuatdatax
      plantdata            = lt_plantdata
      plantdatax           = lt_plantdatax
      salesdata            = lt_sales
      salesdatax           = lt_salesx
      storagelocationdata  = lt_storage
      storagelocationdatax = lt_storagex
      returnmessages       = lt_msg
      taxclassifications   = lt_tax.

  READ TABLE lt_msg TRANSPORTING NO FIELDS WITH KEY TYPE = 'E'.
  IF sy-subrc EQ 0.
     ROLLBACK WORK.
  ELSE.
     COMMIT WORK.
  ENDIF.



Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

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


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

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


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

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