SAPфорум.RU https://sapboard.ru/forum/ |
|
BAPI_PO_CREATE1 выставляет БЕИ в заказ на перемещение https://sapboard.ru/forum/viewtopic.php?f=13&t=96193 |
Страница 1 из 1 |
Автор: | elfilika [ Пт, мар 16 2018, 19:05 ] |
Заголовок сообщения: | BAPI_PO_CREATE1 выставляет БЕИ в заказ на перемещение |
Добрый день, коллеги. Цель: создать заказ на перемещение для РЦ. Т.е. вместо поставщика у нас выставляется завод-поставщик и вид заказа настроен UB. Подаю бапишке на вход кол-во и упаковку, которая мне нужна. А бапишка где-то внутри себя подставляет вместо упаковок БЕИ, а количество не изменяет. К примеру, подаю ей на вход 5 упаковок, а в созданном заказе получаю 5 штук. Причем в тестовой системе она так не делает, а в продуктивной делает. Понятно, что дело в каких-то настройках. Консультант посмотрела все, что знала по настройкам РЦ. Внедренцы тоже не помогают.. Может кто знает, куда можно сунуться? Сравнивали записи в marc в двух системах, так же сравнивали инфозаписи внешнего поставщика на РЦ (на всякий случай). На всякий случай привожу кусочек кода: CLEAR: po_items[], po_schedule[], po_account[], po_itemsx[], po_schedulex[], po_accountx[]. CLEAR po_header. po_header-comp_code = '1000'. "БЕ po_header-TELEPHONE = '()'. po_header-doc_type = 'UB'. "Вид документа закупки po_header-creat_date = sy-datum. "Дата создания записи po_header-created_by = sy-uname. "Имя исполнителя po_header-SUPPL_PLNT = <help_ln>-lifnr."завод поставщик po_header-langu = sy-langu. "Код языка po_header-purch_org = '1000'. "Закупочная организация po_header-pur_group = <help_ln>-ekgrp."Группа закупок po_header-currency = 'RUB'. "Код валюты po_header-doc_date = sy-datum. "Дата документа закупки CLEAR po_headerx. po_headerx-comp_code = 'X'. po_headerx-TELEPHONE = 'X'. po_headerx-doc_type = 'X'. po_headerx-creat_date = 'X'. po_headerx-created_by = 'X'. po_headerx-vendor = 'X'. po_headerx-SUPPL_PLNT = 'X'. po_headerx-langu = 'X'. po_headerx-purch_org = 'X'. po_headerx-pur_group = 'X'. po_headerx-currency = 'X'. po_headerx-doc_date = 'X'. """"""""""""""""" "Позиция,поставка,контировка CLEAR po_items. po_items-po_item = <help_ln>-ebelp. po_items-material = <help_ln>-matnr. po_items-plant = <help_ln>-werks. po_items-stge_loc = '0001'. po_items-quantity = <help_ln>-qty_up. "Объем заказа на поставку po_items-po_unit = <help_ln>-meinh. "ЕИ заказа на поставку po_items-qual_insp = ' '. "Вид запаса po_items-item_cat = ' '. "Тип позиции po_items-INFO_UPD = ' '. po_items-ITEM_CAT = '7'. APPEND po_items. CLEAR po_itemsx. po_itemsx-po_item = <help_ln>-ebelp. po_itemsx-po_itemx = 'X'. po_itemsx-material = 'X'. po_itemsx-plant = 'X'. po_itemsx-stge_loc = 'X'. po_itemsx-quantity = 'X'. po_itemsx-po_unit = 'X'. po_itemsx-qual_insp = 'X'. po_itemsx-item_cat = 'X'. po_itemsx-INFO_UPD = 'X'. po_itemsx-ITEM_CAT = 'X'. APPEND po_itemsx. CLEAR po_schedule. WRITE <help_ln>-eindt TO s_datum DD/MM/YYYY. po_schedule-po_item = <help_ln>-ebelp. po_schedule-del_datcat_ext = 'T'. "Тип даты поставки po_schedule-delivery_date = s_datum. "Дата поставки po_schedule-quantity = <help_ln>-qty_up. APPEND po_schedule. CLEAR po_schedulex. po_schedulex-po_item = <help_ln>-ebelp. po_schedulex-del_datcat_ext = 'X'. po_schedulex-delivery_date = 'X'. po_schedulex-quantity = 'X'. APPEND po_schedulex. CLEAR po_return[]. CALL FUNCTION 'BAPI_PO_CREATE1' EXPORTING poheader = po_header poheaderx = po_headerx NO_PRICE_FROM_PO = 'X' "TESTRUN = 'X' IMPORTING exppurchaseorder = po_number TABLES return = po_return poitem = po_items poitemx = po_itemsx poschedule = po_schedule poschedulex = po_schedulex POCOND = t_cond POCONDX = t_condx. |
Автор: | LKU [ Вс, мар 18 2018, 09:07 ] |
Заголовок сообщения: | Re: BAPI_PO_CREATE1 выставляет БЕИ в заказ на перемещение |
Посмотрите в сторону BAdI ME_BAPI_PO_CUST with method TOGGLE_ORDER_UNIT и пример кодировки к нему в стандартной поставке Code: *--------------------------------------------------------------------* * Assign correct order unit to the schedule lines *--------------------------------------------------------------------* METHOD if_ex_me_bapi_po_create_02~toggle_order_unit. "1771088 * define local data objects DATA ls_item TYPE mepoitem. ls_item = io_item->get_data( ). * proceed only if material number is available IF ls_item-matnr IS INITIAL. RETURN. ENDIF. * BAPI order unit has to be provided POITEM-ORDER_UNIT IF iv_bapi_unit IS INITIAL. RETURN. ENDIF. * nothing todo if BAPI and MEPO refer to the same order unit IF cv_order_unit EQ iv_bapi_unit. RETURN. ENDIF. * Schedule line quantity should refer to the original order unit in the BAPI cv_order_unit = iv_bapi_unit. ENDMETHOD. Несколько лет назад SAP без объявления войны перестал в bapi на создание заказов учитывать поданную на вход е.и., если не использовать указанный метод. Знаю как минимум две крупные розничные сети, которые из-за этого получили ощутимые проблемы при очередном апгрейде SAP. |
Автор: | elfilika [ Вс, мар 18 2018, 14:01 ] |
Заголовок сообщения: | Re: BAPI_PO_CREATE1 выставляет БЕИ в заказ на перемещение |
LKU написал: Посмотрите в сторону BAdI ME_BAPI_PO_CUST with method TOGGLE_ORDER_UNIT и пример кодировки к нему в стандартной поставке Несколько лет назад SAP без объявления войны перестал в bapi на создание заказов учитывать поданную на вход е.и., если не использовать указанный метод. Знаю как минимум две крупные розничные сети, которые из-за этого получили ощутимые проблемы при очередном апгрейде SAP. Огромное вам спасибо. Очень помогли, правда. Я заметила, что он не смотрит на ЕИ (даже в обычных заказах, не для РЦ), но думала, что это мой косяк. Хоть и ставила No_rounding, и другие галки пробовала. Спасибо! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |