SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

расширение материала на вид оценки.



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
evggen
Участник
Участник


Age: 38
Joined: 12 Mar 2010
Posts: 25

PostPosted: Fri Apr 15, 2011 3:52 pm    Post subject: расширение материала на вид оценки. Reply with quote

Создаю материал при помощи bapi BAPI_MATERIAL_SAVEDATA. Все работает нормально, если не указывать вид оценки. Если его указать, бапишка начинает ругаться на то, что необходимо сначала указать все данные для вида оценки. Подскажите, пожалуйста, какой бапи можно расширить материал на вид оценки?

Вот мой код, может еще какие-то данные необходимо указывать?


Code:
***********************************
       clear: wa_BAPIMATHEAD,
              wa_BAPI_MARA, wa_BAPI_MARAX,
              wa_BAPI_MARC, wa_BAPI_MARCX,
              wa_BAPI_MBEW, wa_BAPI_MBEW.

       wa_mat-mat_num = '000000000000086916'.
       wa_BAPIMATHEAD-MATERIAL = wa_mat-mat_num.
       wa_BAPIMATHEAD-MATL_TYPE = wa_mat-vid_mat.
*    отрасль пока что ставим по-умолчанию, но необходимо сделать зависимости
       wa_BAPIMATHEAD-IND_SECTOR = wa_mat-sector.
       wa_BAPIMATHEAD-BASIC_VIEW = 'X'.
       wa_BAPIMATHEAD-PURCHASE_VIEW = 'X'.
       wa_BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
* Client Data - Basic
       wa_BAPI_MARA-MATL_GROUP = wa_mat-mat_group.
       wa_BAPI_MARA-BASE_UOM = wa_mat-base_unit.
       wa_BAPI_MARA-DIVISION = wa_mat-division.

       wa_BAPI_MARAX-MATL_GROUP = 'X'.
       wa_BAPI_MARAX-BASE_UOM = 'X'.
       wa_BAPI_MARAX-DIVISION = 'X'.
** Plant - Purchasing
       wa_BAPI_MARC-PLANT = wa_mat-werks.
       wa_BAPI_MARC-PUR_GROUP = wa_mat-ekgrp.

       wa_BAPI_MARCX-PLANT = wa_mat-werks.
       wa_BAPI_MARCX-PUR_GROUP = 'X'.
** Accounting
       wa_BAPI_MBEW-VAL_CLASS = wa_mat-bklas.
       wa_BAPI_MBEW-VAL_AREA = wa_mat-werks.
       wa_BAPI_MBEW-PRICE_CTRL = wa_mat-price_kod.
       if wa_mat-price_kod = 'S'.
         wa_BAPI_MBEW-STD_PRICE = wa_mat-price_s.
       else.
         wa_BAPI_MBEW-MOVING_PR = wa_mat-price_v.
       endif.
       wa_BAPI_MBEW-VAL_TYPE = wa_mat-val_type.
       wa_BAPI_MBEW-VAL_CAT = wa_mat-val_cat.
       wa_BAPI_MBEW-ML_SETTLE = '2'.

       wa_BAPI_MBEWX-VAL_CLASS = 'X'.
       wa_BAPI_MBEWX-VAL_AREA = wa_mat-werks.
       wa_BAPI_MBEWX-PRICE_CTRL = 'X'.
       wa_BAPI_MBEWX-STD_PRICE = 'X'.
       wa_BAPI_MBEWX-MOVING_PR = 'X'.
       wa_BAPI_MBEWX-ML_SETTLE = 'X'.
       wa_BAPI_MBEWX-VAL_TYPE = wa_mat-val_type.
       wa_BAPI_MBEWX-VAL_CAT = 'X'.

       refresh ret.
       CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
         exporting
           HEADDATA = wa_BAPIMATHEAD
           CLIENTDATA = wa_BAPI_MARA
           CLIENTDATAX = wa_BAPI_MARAX
           PLANTDATA = wa_BAPI_MARC
           PLANTDATAX = wa_BAPI_MARCX
           VALUATIONDATA = wa_BAPI_MBEW
           VALUATIONDATAX = wa_BAPI_MBEWX
         importing
           return = ret
         tables
           MATERIALDESCRIPTION = t_MATERIALDESCRIPTION
           MATERIALLONGTEXT = t_MATERIALLONGTEXT
           UNITSOFMEASURE = t_UNITSOFMEASURE
           UNITSOFMEASUREX = t_UNITSOFMEASUREX.

       is_err = ''.
       loop at ret where type = 'E'.
         is_err = 'X'.
       endloop.

       if is_err = ''.
         commit work and wait.
       else.
         rollback work.
         concatenate 'Не удалось создать материал "' wa_MATERIALDESCRIPTION-MATL_DESC '".' into msg_text separated by space.
         MESSAGE msg_text TYPE 'I'.
       endif.
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Fri Apr 15, 2011 4:10 pm    Post subject: Reply with quote

А почему
Code:
wa_BAPI_MBEWX-VAL_TYPE = wa_mat-val_type.

а не
Code:
wa_BAPI_MBEWX-VAL_TYPE = 'X'.
?
_________________
FunCoding.ru
KicksCollector.ru
Back to top
View user's profile Send private message Blog
evggen
Участник
Участник


Age: 38
Joined: 12 Mar 2010
Posts: 25

PostPosted: Fri Apr 15, 2011 4:13 pm    Post subject: Reply with quote

В структуре BAPI_MBEWX поле VAL_TYPE определено как BWTAR_D и имеет тип char10.
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Fri Apr 15, 2011 4:54 pm    Post subject: Reply with quote

Так это ключ... Не обратил внимания сразу.
Тогда попробуйте
Code:
IF wa_mat-price_kod = 'S'.
  wa_bapi_mbew-std_price = wa_mat-price_s.
  wa_bapi_mbewx-std_price = 'X'.
ELSE.
  wa_bapi_mbew-moving_pr = wa_mat-price_v.
  wa_bapi_mbewx-moving_pr = 'X'.
ENDIF.
А то и среднескользящая, и стандартная одновременно...
_________________
FunCoding.ru
KicksCollector.ru
Back to top
View user's profile Send private message Blog
evggen
Участник
Участник


Age: 38
Joined: 12 Mar 2010
Posts: 25

PostPosted: Mon Apr 18, 2011 8:40 am    Post subject: Reply with quote

Не помогает!
Может быть я не как-то не так выразил свою мысль... Если создавать материал руками, необходимо в mm01 расширить завод на вид оценки. И после этого, можно задавать другие данные в ракурсе бух учета. Так вот я не уверен, что используемая мною бапи производит все эти действия.
Back to top
View user's profile Send private message
evggen
Участник
Участник


Age: 38
Joined: 12 Mar 2010
Posts: 25

PostPosted: Mon Apr 18, 2011 9:47 am    Post subject: Reply with quote

Разобрался!
Необходимо загружать материал в 2 этапа.
Первый этап - определяем материал на уровне завода с раздельной оценкой, но с пустым видом оценки.
Второй этап - для уже созданного материала вновь создаем ракурс бухучета, но уже указываем конкретный вид оценки, который хотим создать
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.