Текущее время: Вс, июл 27 2025, 20:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: расширение материала на вид оценки.
СообщениеДобавлено: Пт, апр 15 2011, 15:44 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, май 17 2010, 07:31
Сообщения: 53
Создаю материал при помощи 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_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 = '1'.

       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.


Нашел, что эта тема уже обсуждалась тут http://sapboard.ru/forum/viewtopic.php?p=43373#43373 и вот тут http://sapboard.ru/forum/viewtopic.php?f=13&t=32361. Но так и не понял, можно ли обойтись одной бапишкой BAPI_MATERIAL_SAVEDATA, либо есть ли какая-то отдельная, чтоб создать расширение?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: расширение материала на вид оценки.
СообщениеДобавлено: Пт, апр 15 2011, 17:05 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1594
Откуда: Москва, Минск
Пол: Мужской
Примерчик, нашел у себя: ))

FORM cr_bwtar USING iw_item TYPE ty_w_positions
CHANGING c_bwtar TYPE bwtar_d.

DATA: l_new_charg TYPE charg_d,
l_retcode TYPE inri-returncode,
l_verpr_dec TYPE dec11_4,

lw_headdata TYPE bapimathead,
lw_valuationdata TYPE bapi_mbew,
lw_valuationdatax TYPE bapi_mbewx,
lw_return TYPE bapiret2.

CLEAR c_bwtar.

CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = c_range
object = c_object
IMPORTING
number = l_new_charg
returncode = l_retcode
EXCEPTIONS
interval_not_found = 1
object_not_found = 2
interval_overflow = 3
OTHERS = 4.

IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE e028(lb) WITH c_range c_object. "#EC *
WHEN 2.
MESSAGE e022(26) WITH c_object. "#EC *
WHEN 3.
MESSAGE e028(lb) WITH c_range c_object. "#EC *
WHEN 4.
MESSAGE e024(26). "#EC *
ENDCASE. "sy-subrc.
RETURN.
ENDIF. "sy-subrc <> 0.

CASE l_retcode.
WHEN '1'.
MESSAGE i027(26) WITH c_object.
RETURN.
WHEN '2'.
MESSAGE i028(26) WITH c_object.
RETURN.
ENDCASE. "returncode.

l_new_charg+0(2) = sy-datum+2(2).
l_new_charg+2(2) = sy-datum+4(2).

* Create bwtar
lw_headdata-material = iw_item-matnr.

lw_valuationdata-val_area = iw_item-werks.
lw_valuationdata-val_type = l_new_charg.
lw_valuationdata-price_ctrl = 'V'.
* Price conversion
l_verpr_dec = iw_item-verpr.
CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_DISPLAY'
EXPORTING
currency = iw_item-waers
amount_internal = l_verpr_dec
IMPORTING
amount_display = l_verpr_dec.

lw_valuationdata-moving_pr = l_verpr_dec.
lw_valuationdata-price_unit = '1'.
lw_valuationdata-val_class = iw_item-bklas.

lw_valuationdatax-val_area = iw_item-werks.
lw_valuationdatax-val_type = l_new_charg.
lw_valuationdatax-price_ctrl = 'X'.
lw_valuationdatax-moving_pr = 'X'.
lw_valuationdatax-price_unit = 'X'.
lw_valuationdatax-val_class = 'X'.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = lw_headdata
valuationdata = lw_valuationdata
valuationdatax = lw_valuationdatax
IMPORTING
return = lw_return.

IF lw_return-type = 'A' OR lw_return-type = 'E'.
PERFORM create_log.
PERFORM add_log_entry USING lw_return-type
lw_return-id
lw_return-number
lw_return-message_v1
lw_return-message_v2
lw_return-message_v3
lw_return-message_v4.

PERFORM show_log.
PERFORM resfresh_log.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

c_bwtar = l_new_charg.

ENDIF.

ENDFORM. " CR_BWTAR

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: расширение материала на вид оценки.
СообщениеДобавлено: Пн, апр 18 2011, 07:38 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, май 17 2010, 07:31
Сообщения: 53
DED_MOROZ,
в вашем коде вы предлагаете бапишкой создавать только ракурс бух учета для материала.
Попробовал сделать так, но все равно на выходе имею сообщение "Сначала введите данные, которые не зависят от вида оценки."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: расширение материала на вид оценки.
СообщениеДобавлено: Пн, апр 18 2011, 08:57 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, май 17 2010, 07:31
Сообщения: 53
Разобрался!
Необходимо загружать материал в 2 этапа.
Первый этап - определяем материал на уровне завода с раздельной оценкой, но с пустым видом оценки.
Второй этап - для уже созданного материала вновь создаем ракурс бухучета, но уже указываем конкретный вид оценки, который хотим создать


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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