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

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


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

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


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

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