点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我必须为给定的销...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供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'
我希望你能告诉我我的代码在哪里错误。
最好的问候
艾米莉亚
大家好,
我重新检查了数据,看来这确实是matnr编写方式的问题。
因为Matnr的前导零(例如000000000000009321)。
当我阅读材料时,我只读了9321,而当我给该值赋值时,matnr变成了:932100000000000000。所以我不得不加上前导零。
所有其他问题都与错误的垫子编号直接相关。
所以:
由于无法识别物料编号,因此物料行出现错误并且无法插入,因此条件可以在抬头级别识别。
非常感谢您。
最好的问候,艾米莉亚。
一周热门 更多>