关于BOM修改的BAPI使用问题-CSAP_MAT_BOM_MAINTAIN

[复制链接]
查看11 | 回复1 | 2011-4-15 13:36:26 | 显示全部楼层 |阅读模式
在网上搜了好久, 以前有人问过, 但是没有解答:http://www.itpub.net/viewthread.php?tid=1120705
只好再问一遍了。。
想用CSAP_MAT_BOM_MAINTAIN这个BAPI修改BOM的,但是现在总是在原有的BOM行项目上添加了一个行项目,我现在想让它修改这个行项目,应该怎么做。
我测试的时候显示读取以后, 再更改其中的一个值, 写会去, 但是它只是增加一行, 不修改, 头痛。。。
请高人指点
代码:
。。。
clear wa_stpo03.
clear ta_stpo03.
clear wa_bom_item.
loop at I_ta_bom_item into wa_bom_item.
WA_STPO03-ITEM_NO= WA_BOM_ITEM-POSNR. " 行项目number
WA_STPO03-ITEM_CATEG = WA_BOM_ITEM-POSTP. " 物料类别
WA_STPO03-COMPONENT= WA_BOM_ITEM-IDNRK. "BOM 组件
WA_STPO03-COMP_UNIT= WA_BOM_ITEM-MEINS. "组件计量单位
WA_STPO03-COMP_QTY = WA_BOM_ITEM-MENGE.
WA_STPO03-REL_COST = WA_BOM_ITEM-SANKA." 成本核算标志(是否客供品)
WA_STPO03-ISSUE_LOC= WA_BOM_ITEM-LGORT." 仓储地点
WA_STPO03-VALID_FROM = WA_BOM_ITEM-DATUV." 有效日期从
WA_STPO03-VALID_TO = WA_BOM_ITEM-DATUB." 有效日期到
append wa_stpo03 to ta_stpo03.
endloop.
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
MATERIAL
= I_matnr
PLANT
= i_werks
BOM_USAGE
= I_stlan
ALTERNATIVE
= I_STLAL
VALID_FROM
= i_STR_BOM_HEADER-DATUV
* CHANGE_NO
=
* REVISION_LEVEL
=
I_STKO
= wa_stko01
* FL_NO_CHANGE_DOC
= ' '
* FL_COMMIT_AND_WAIT= 'X'
* FL_CAD
= ' '
FL_BOM_CREATE
= ''
FL_NEW_ITEM
= ''
* FL_COMPLETE
= ''
* FL_DEFAULT_VALUES = 'X'
* FL_IDENTIFY_BY_GUID = ' '
* IMPORTING
* FL_WARNING
=
* O_STKO
=
TABLES
T_STPO
= ta_stpo03
* T_DEP_DATA
=
* T_DEP_DESCR
=
* T_DEP_ORDER
=
* T_DEP_SOURCE
=
* T_DEP_DOC
=
* T_DOC_LINK
=
* T_DMU_TMX
=
* T_LTX_LINE
=
* T_STPU
=
EXCEPTIONS
ERROR
= 1
OTHERS
= 2

.
IF SY-SUBRC0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

。。。
[ 本帖最后由 skywoodlin 于 2011-4-25 20:30 编辑 ]
回复

使用道具 举报

千问 | 2011-4-15 13:36:26 | 显示全部楼层
你试试看以项目节点做为关键点来修改看看,从STPO中找出对应的组件及行项目的项目节点.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行