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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Функциональный модуль BAPI_MATERIAL_SAVEDATA.
СообщениеДобавлено: Пт, мар 13 2015, 08:20 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: South Kazakhstan
Пол: Мужской
Всем добрый день! Пытаюсь написать программу пакетного ввода новых материалов с помощью BAPI_MATERIAL_SAVEDATA. Возникла маленькая проблемка с передачей данных одной из вкладок основной записи материала, а точнее ракурса бух.учёта. Ракурс то сам не создаётся, потому что возникает ошибка - Укажите код управления ценой, это одно из обязательных полей этого ракурса, но не могу понять как передать информацию о коде управления ценой, т.е. я пытаюсь передать код управления ценой V- среднескользящая цена, но судя по ошибке которую я смотрю в отладчике программа не может поставить и ругается. В инете много различного рода примеров создания материалов с использованием этого BAPI, и вроде бы местами мелькают примеры с использованием нужного мне ракурса. Значение поля передаётся в строке BAPI_MBEW-PRICE_CTRL = 'V', но безрезультатно. Может быть кто реализовывал? Буду весьма признателен. Вот собственно кусок кода программы использования этого BAPI
Code:
form call_bapi .
  data: x type t134-numki,
        ld_number type bapimathead-material,
        objnum type objnum,
        ld_error type c.

  select single numki from t134 into (wa-numki) where mtart = wa-matl_type.

  call function 'NUMBER_GET_NEXT'
      exporting
        nr_range_nr                   = wa-numki       "Number range interval
        object                        = 'MATERIALNR' "Number range object (SNRO)
*     QUANTITY                      = '1'       "No. of numbers
*     SUBOBJECT                     = ' '
*     TOYEAR                        = '0000'
*     IGNORE_BUFFER                 = ' '
      importing
        number                        = ld_number
*     QUANTITY                      =
        returncode                    = ld_error
      exceptions
        interval_not_found            = 1
        number_range_not_intern       = 2
        object_not_found              = 3
        quantity_is_0                 = 4
        quantity_is_not_1             = 5
        interval_overflow             = 6
        buffer_overflow               = 7
        others                        = 8.


  bapimathead-material = ld_number."itab-MATERIAL.
  bapimathead-ind_sector = 'C'.
  "bapimatheadx-IND_SECTOR = 'C'.

  bapimathead-matl_type = wa-matl_type.
  bapimathead-basic_view = 'X'.

  bapi_mara-matl_group = wa-matl_group.
  bapi_mara-base_uom = wa-base_uom .
  BAPI_MARA-DIVISION = '30'.
  bapi_marax-matl_group = 'X'.
  bapi_marax-base_uom = 'X'.
  BAPI_MARAX-DIVISION = 'X'.
  bapimathead-ACCOUNT_VIEW = 'X'.

  bapimathead-purchase_view = 'X'.
*  bapimathead-storage_view = 'X'.
  bapimathead-warehouse_view = 'X'.
  bapi_marc-plant = '3000'.
  bapi_marcx-plant = bapi_marc-plant.
  bapi_marcx-pur_group = 'X'.
  bapi_marcx-base_qty = 'X'.
  BAPI_MLGN-WHSE_NO = '001'.
  BAPI_MLGNX-WHSE_NO = BAPI_MLGN-WHSE_NO.
  BAPI_MBEW-VAL_CLASS = '15'.
  BAPI_MBEWX-VAL_CLASS = 'X'.
  BAPI_MBEW-VAL_AREA = '3000'.
  BAPI_MBEWX-VAL_AREA = BAPI_MBEW-VAL_AREA.
  BAPI_MBEW-PRICE_CTRL = 'V'.
  BAPI_MBEWX-PRICE_CTRL = 'X'.

*  BAPI_MBEW-STD_PRICE = '1'.
*  BAPI_MBEWX-STD_PRICE = 'X'.
*  BAPI_MLTX-TEXT_LINE = 'mbugoga'.


*  bapi_mard-stge_loc = '001'.
*  bapi_mardx-stge_loc = bapi_mard-stge_loc.
*    bapi1003_key-classnum = itab-classnum.
*IT_BAPI-LANGU = ITAB-LANGU.
  it_bapi-langu_iso = 'RU'.
  it_bapi-matl_desc = wa-matl_desc.
  append it_bapi.
  clear it_bapi.
  call function 'BAPI_MATERIAL_SAVEDATA'
    exporting
      headdata             = bapimathead
      clientdata           = bapi_mara
      clientdatax          = bapi_marax
      PLANTDATA            = BAPI_MARC
      PLANTDATAX           = bapi_marcx
      WAREHOUSENUMBERDATA  = BAPI_MLGN
      WAREHOUSENUMBERDATAX = BAPI_MLGNX
      VALUATIONDATA        = BAPI_MBEW
      VALUATIONDATAX       = BAPI_MBEWX
*      MATERIALLONGTEXT     = BAPI_MLTX

    importing
      return               = it_return
    tables
      materialdescription  = it_bapi.
  concatenate 'Создание материала:' wa-matl_desc into msg separated by space.
  perform indicator using msg 0.

  call function 'BAPI_TRANSACTION_COMMIT' .
*---this is the message type which indicates whether it is failed or succeded
  it1-type = it_return-type.
  it1-number = it_return-number.
  it1-id = it_return-id.
  it1-message_v1 = it_return-message_v1.
  it1-message_v2 = it_return-message_v2.
  it1-message_v3 = it_return-message_v3.
  it1-message_v4 = it_return-message_v4.
  it1-message = it_return-message.
  append it1.
  clear it1.

  objnum = ld_number.
  wa-matnr = ld_number.
  if wa-tnved is not initial.
    add_class: objnum wa-tnved.
  endif.
  if wa-kpved is not initial.
    add_class: objnum wa-kpved.
  endif.
  if  wa-skp is not initial.
    add_class: objnum wa-skp.
  endif.

endform.


Последний раз редактировалось Maksimka Пт, мар 13 2015, 12:31, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функциональный модуль BAPI_MATERIAL_SAVEDATA.
СообщениеДобавлено: Пт, мар 13 2015, 09:50 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вт, июл 23 2013, 17:41
Сообщения: 36
Пол: Мужской
Полномочия проверяли?

http://scn.sap.com/thread/3303243

_________________
- Хочу выучить весь SAP
- А ты не лопнешь деточка???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функциональный модуль BAPI_MATERIAL_SAVEDATA.
СообщениеДобавлено: Пт, мар 13 2015, 10:01 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вт, июл 23 2013, 17:41
Сообщения: 36
Пол: Мужской
И еще: а код полный?
Я по своим примерам смотрю, у меня есть заполнение поле function = 'INS', который указывает на создание новой оценки

_________________
- Хочу выучить весь SAP
- А ты не лопнешь деточка???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функциональный модуль BAPI_MATERIAL_SAVEDATA.
СообщениеДобавлено: Пт, мар 13 2015, 12:05 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: South Kazakhstan
Пол: Мужской
camelotka написал:
И еще: а код полный?
Я по своим примерам смотрю, у меня есть заполнение поле function = 'INS', который указывает на создание новой оценки

Я не совсем понял, можно пожалуйста по подробней на счёт поля function = 'INS' . Смотрел я ссылку которую Вы запостили. В принципе всё как у меня. Я привёл только код программы создания самого материала, т.е. код бапишки. Ативация ракурса Бух.учёт проводится здесь
Code:
bapimathead-ACCOUNT_VIEW = 'X'.


затем заполняю необходимые поля в этом ракурсе

Code:
BAPI_MBEW-VAL_CLASS = '15'.
  BAPI_MBEWX-VAL_CLASS = 'X'.
  BAPI_MBEW-VAL_AREA = '3000'.
  BAPI_MBEWX-VAL_AREA = '3000'.
  BAPI_MBEW-VAL_TYPE = ''.
  BAPI_MBEWX-VAL_TYPE = ''.
  BAPI_MBEW-PRICE_CTRL = 'V'.
  BAPI_MBEWX-PRICE_CTRL = 'X'.


Материал у меня создаётся, но ракурс бух.учёта нет, и когда пытаешся потом просмотреть этот созданный материал MM03 пишет что Материала 68341 нет или он не активирован, когда в дебаге смотрю поле
Code:
it_return-message


Пишет что Укажите управление ценой. Вот и не пойму я, что я не так сделал уже даже и не знаю. Стоит мне убрать поле bapimathead-ACCOUNT_VIEW = 'X' или закомментировать, то отрабатывает без ошибок, пишет материал такой то создан или расширен и потом этот материал просматривается и изменяется, но без ракурса бух.учёт. С полномочиями всё в порядке, сижу в разработке под SAP_ALL.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функциональный модуль BAPI_MATERIAL_SAVEDATA.
СообщениеДобавлено: Чт, мар 19 2015, 09:23 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вт, июл 23 2013, 17:41
Сообщения: 36
Пол: Мужской
Проверьте структуру подаваемых в BAPI параметров,не ошибусь если скажу,что у каждой таблицы есть поле function,значение которого указывает обновлять данные материала или создавать новые, значение INS - INSERT новая запись, UPD - UPDATE обновить существующую запись

_________________
- Хочу выучить весь SAP
- А ты не лопнешь деточка???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функциональный модуль BAPI_MATERIAL_SAVEDATA.
СообщениеДобавлено: Чт, мар 19 2015, 11:09 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: South Kazakhstan
Пол: Мужской
camelotka написал:
Проверьте структуру подаваемых в BAPI параметров,не ошибусь если скажу,что у каждой таблицы есть поле function,значение которого указывает обновлять данные материала или создавать новые, значение INS - INSERT новая запись, UPD - UPDATE обновить существующую запись

Чота я видимо не допонимаю что ли, вот например взять передаваемый параметр класса оценки BAPI_MBEW-VAL_CLASS = '15', те. я передаю ему значение 15, а поле function как Вы сказали в данном случае имеет значение BAPI_MBEWX-VAL_CLASS = 'X', т.е. значение X подразумевает что это поле изменяется, так например если поссмотреть Вашу ссылку, там тоже самое передаётся в параметр BAPI_MBEWX-VAL_CLASS = 'X' тоже имеет смысл изменения поля если присваиваешь ему перед этим какое значение типа 15. Или я опять не правильно понял Вашу мысль?


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

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


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

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


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

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