点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我必须为给定的销售订单单据编号插入新的项目行。
我使用bapi_salesorder_change,但不起作用。
这些是return表中的消息:
错误1。
消息:ORDER_HEADER_IN已成功处理
消息:没有可用的项目类别
消息:ITEM_IN错误
消息:条件cc_cond不允许作为标头条件
消息:销售单据未更改
错误2。
消息:ORDER_HEADER_IN已成功处理
消息:未为销售组织,分销渠道,语言DE定义材料{但我检查了带有matnr和销售组织以及分销渠道的表mvke,并且存在物料}
消息:ITEM_IN错误
消息:条件cc_cond不允许作为标头条件
消息:销售单据未更改
这是代码:
i_t_item-itm_number = p_posnr。
i_t_item-material = p_matnr。
i_t_item-target_qty = p_qty。
i_t_item-plant = p_plant。
i_t_item-hg_lv_item = p_uepos。
i_t_item-price_date = p_preisdat。
i_t_item-prc_group2 = cc_prc_group。
APPEND i_t_item。
*设置条件
i_t_bapicond-itm_number = p_posnr。
i_t_bapicond-cond_type = cc_condition_type。
i_t_bapicond-cond_value = l_netwr。
i_t_bapicond-conpricdat = gc_datum。
i_t_bapicond-currency = cc_eur。
APPEND i_t_bapicond。
i_t_itemx-updateflag = cc_i。 {='I'}
i_t_itemx-itm_number = p_posnr。
i_t_itemx-material = cc_x。
i_t_itemx-target_qty = cc_x。
i_t_itemx-plant = cc_x。
i_t_itemx-hg_lv_item = cc_x。
i_t_itemx-price_date = cc_x。
i_t_itemx-prc_group2 = cc_x。
APPEND i_t_itemx。
i_t_bapicondx-updateflag = cc_i。{'I'}
i_t_bapicondx-itm_number = p_posnr。
i_t_bapicondx-cond_type = cc_x。
i_t_bapicondx-cond_value = cc_x。
-
i_t_bapicondx-conpricdat = cc_x。
i_t_bapicondx-currency = cc_x。
附加i_t_bapicondx。
清除:l_行为,sy-subrc。
清除i_t_header。
i_t_header-updateflag = cc_u。 {='U'}
APPEND i_t_header。
通话功能'BAPI_SALESORDER_CHANGE'
导出
salesdocument = sales_ord_number
-
ORDER_HEADER_IN =
order_header_inx = i_t_header
模拟= cc_x
behavior_when_error = l_behave
-
INT_NUMBER_ASSIGNMENT =''
-
LOGIC_SWITCH =
表格
return = i_t_return
order_item_in = i_t_item
order_item_inx = i_t_itemx
-
合作伙伴=
-
PARTNERCHANGES =
-
合作伙伴=
-
ORDER_CFGS_REF =
-
ORDER_CFGS_INST =
-
ORDER_CFGS_PART_OF =
-
ORDER_CFGS_VALUE =
-
ORDER_CFGS_BLOB =
-
ORDER_CFGS_VK =
-
ORDER_CFGS_REFINST =
-
SCHEDULE_LINES =
-
SCHEDULE_LINESX =
order_text = i_t_text
-
ORDER_KEYS =
conditions_in = i_t_bapicond
conditions_inx = i_t_bapicondx
-
extensionin = i_t_extensionin。
。
如果是i_t_return型EQ cc_s或i_t_return型EQ cc_w或i_t_return型EQ cc_i。
通话功能'BAPI_TRANSACTION_COMMIT'
导出
等待= cc_x。
执行return_code。
ELSE。
p_flag = cc_x。
执行return_code_err。
-
回滚错误记录的转换
调用功能'BAPI_TRANSACTION_ROLLBACK'。
ENDIF。 "如果i_t_return型EQ'S'
我希望你能告诉我我的代码在哪里错误。
最好的问候
艾米莉亚
嗨,
错误1
标题数据已成功处理
项目数据有问题。 项目类别在系统中不可用。
错误2
资料是平面文件未在系统中定义,或者它的编写方式可能不匹配。
检查有时是否给出了材料编号,FF可能包含materail desc而不是Mat no。
问候
Gokul
大家好,
我重新检查了数据,看来这确实是matnr编写方式的问题。
因为Matnr的前导零(例如000000000000009321)。
当我阅读材料时,我只读了9321,而当我给该值赋值时,matnr变成了:932100000000000000。所以我不得不加上前导零。
所有其他问题都与错误的垫子编号直接相关。
所以:
由于无法识别物料编号,因此物料行出现错误并且无法插入,因此条件可以在抬头级别识别。
非常感谢您。
最好的问候,艾米莉亚。
ERROR1
消息:没有可用的项目类别。
如果您要创建新的订单项,则此消息可能表明系统无法确定新订单项的项目类别,您应在spro中检查项目类别确定的配置,合并销售单据类型/项目类别组( 在物料主数据-销售2视图中)/用法/VOV4中的高物料类别(如果涉及BOM)
否则,如果您要更改现有的订单项,则此消息可能表明系统已经创建了订单,因此系统未读取订单项数据,除非您随后更改了配置,否则您的配置绝对不会出错,因此请检查 BAPI表:ORDER ITEMS INX,检查是否维护参数:ITM_NUMBER,否则,BAPI无法读取订单项数据
一周热门 更多>