Текущее время: Пн, июл 28 2025, 18:39

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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