vahtang написал(а):
Объявляешь и заполняешь стректуру содержащую поля из расширения:
Code:
DATA:
extensionin TYPE TABLE OF bapiparex WITH HEADER LINE,
e_item TYPE bapi_te_requisition_item.
e_item-preq_item = ebanc-preq_item.
e_item-field1 = 'aaaaa'.
e_item-field2 = 'bbbbb'.
extensionin-structure = 'BAPI_TE_REQUISITION_ITEM'.
extensionin-valuepart1 = e_item.
APPEND extensionin.
Потом вызов:
Code:
CALL FUNCTION 'BAPI_REQUISITION_CREATE'
...
TABLES
...
extensionin = extensionin[].
И всё
Делаю также:
Code:
clear e_item.
clear extension_str.
e_item-preq_item = 1.
e_item-zrsnum = '11'.
e_item-zrspos = '22'.
extension_str-structure = 'BAPI_TE_MEREQITEM'.
extension_str-valuepart1 = e_item.
APPEND extension_str to extensionin.
Ошибка : "EXTENSION_STR-VALUEPART1" and "E_ITEM" are not mutually convertible in a Unicode program.
Делаю по другому:
Code:
clear e_item.
clear extension_str.
e_item-preq_item = 1.
e_item-zrsnum = '11'.
e_item-zrspos = '22'.
extension_str-structure = 'BAPI_TE_MEREQITEM'.
assign e_item to <X_VBAP> casting.
assign extension_str-valuepart1 to <X_EXTN> casting.
<X_EXTN> = <X_VBAP>.
APPEND extension_str to extensionin.
Ошибки нет.
Заявка создается.
Но значения полей ZRSNUM и ZRSPOS в таблице EBAN отсутствуют.
Если использую BAPI_PR_CREATE, то в RETURN следующее:
Code:
S BAPI 000 10000103 PurchaseRequisition создан(а,о). Внешняя ссылка: 000000 10000103 PurchaseRequisition PRHEADER 1
S 06 402 Заявка введена под номером 10000103. 000000 10000103 PRHEADER 1
S 06 402 Заявка введена под номером 10000103. 000000 10000103 PRHEADER 1
W ME 887 Ошибка при копировании ExtensionIn-данных для расширения CI_EBANDB 000000 CI_EBANDB PRITEM 1
W FICUSTOM 000 Позиция 00001 содержит финансовую позицию с фин. операцией, неравной 30. 000000 00001 PRACCOUNT 1