Добрый день!
Юзаю BAPI BAPI_PO_CREATE1 создавая заказ на поставку со ссылкой на контракт. Проблема в том, что нужно поменять вид контировки позиции заказа при создании. Но система ругается на это. Что я делаю не так? как это можно обойти?
Code:
lpoheader-comp_code = p_ekko-bukrs.
lpoheader-doc_type = 'NB'.
lpoheader-item_intvl = p_ekko-pincr.
lpoheader-agreement = p_rkonnr.
lpoheader-doc_date = sy-datum.
lpoheader-purch_org = p_ekko-ekorg.
lpoheader-pur_group = p_ekko-ekgrp.
lpoheader-vper_start = p_kdatb.
lpoheader-vper_end = p_kdate.
lpoheader-our_ref = p_unsez.
lpoheader-currency = p_ekko-waers.
lpoheader-exch_rate = p_ekko-wkurs.
lpoheader-pmnttrms = p_ekko-zterm.
lpoheaderx-comp_code = c_mark.
lpoheaderx-doc_type = c_mark.
lpoheaderx-item_intvl = c_mark.
lpoheaderx-agreement = c_mark.
lpoheaderx-doc_date = c_mark.
lpoheaderx-purch_org = c_mark.
lpoheaderx-pur_group = c_mark.
lpoheaderx-vper_start = c_mark.
lpoheaderx-vper_end = c_mark.
lpoheaderx-our_ref = c_mark.
lpoheaderx-currency = c_mark.
lpoheaderx-exch_rate = c_mark.
lpoheaderx-pmnttrms = c_mark.
LOOP AT pt_ekpo ASSIGNING <lekpos>.
CLEAR: lpoacc, lpoaccx, lpoitem, lpoitemx.
lpoitem-acctasscat = '4'.
lpoitem-plant = <lekpos>-werks.
lpoitem-po_item = sy-tabix.
lpoitem-quantity = <lekpos>-menge.
lpoitem-po_unit = <lekpos>-meins.
lpoitem-agreement = p_rkonnr.
lpoitem-agmt_item = <lekpos>-ebelp.
lpoitem-gr_ind = c_mark.
APPEND lpoitem TO lt_poitem.
lpoitemx-po_item = lpoitem-po_item.
lpoitemx-po_itemx = c_mark.
lpoitemx-acctasscat = c_mark.
lpoitemx-plant = c_mark.
lpoitemx-po_itemx = c_mark.
lpoitemx-quantity = c_mark.
lpoitemx-po_unit = c_mark.
lpoitemx-agreement = c_mark.
lpoitemx-agmt_item = c_mark.
lpoitemx-gr_ind = c_mark.
APPEND lpoitemx TO lt_poitemx.
lpoacc-po_item = lpoitem-po_item.
lpoacc-gl_account = '7909000000'.
APPEND lpoacc TO lt_poacc.
lpoaccx-po_item = lpoitem-po_item.
lpoaccx-po_itemx = c_mark.
lpoacc-gl_account = c_mark.
APPEND lpoaccx TO lt_poaccx.
ENDLOOP.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = lpoheader
poheaderx = lpoheaderx
TESTRUN = c_mark
TABLES
return = lt_bapiret2
poitem = lt_poitem
poitemx = lt_poitemx
poaccount = lt_poacc
poaccountx = lt_poaccx
Из бапи возвращается список мессаг:
Цитата:
I 000 Функция 'Создание заказа на поставку' выполнена в тестов. режиме
W ME 887 Ошибка при копировании ExtensionIn-данных для расширения CI_EKPODB
W ME 887 Ошибка при копировании ExtensionIn-данных для расширения CI_EKKODB
E MEPO 046 Позиция заказа на поставку 00001 еще содержит контировки с ошибками
W 06 174 Срок действия меньше одной недели.
W 06 173 Начальный срок действия равен конечному.
E ME 042 Основной счет 804400100 не создан (проверьте данные ввода).
W ME 040 Эта дата поставки может быть соблюдена?
W 06 078 Договорное количество превышено на 4 ШТ
W 06 531 Типы контировки в договоре и в заявке не согласуются.
В сообщении об ошибке фигурирует счет из договора, а не тот, который я передаю в структуре. Система не меняет его, не смотря на заполненую строку в lt_poaccx?