order plan sap 修改紀錄_[代码]修改订单BOM(Order BOM)以及相关长文本[CSAP_ORD_BOM_MAINTAIN]...

这是一个SAP中修改订单BOM(Order BOM)及其相关长文本的示例代码,涉及BOM展开、组件转换、长文本创建及订单BOM维护的步骤。
摘要由CSDN通过智能技术生成

REPORT ztest_copy_bom.

DATA: lit_stb TYPE TABLE OF stpox,

lwa_stb TYPE stpox,

lit_matcat TYPE TABLE OF cscmat,

lwa_vbap TYPE vbap,

lwa_stko TYPE stko_api01,

lwa_stpo TYPE stpo_api03,

lit_stpo TYPE TABLE OF stpo_api03 WITH HEADER LINE,

l_item_no TYPE stpo_api03-item_no.

DATA:git_stb TYPE STANDARD TABLE OF stpox,

gwa_stb TYPE stpox.

DATA:lit_line TYPE STANDARD TABLE OF csltx_line,

lwa_line TYPE csltx_line.

SELECTION-SCREEN BEGIN OF BLOCK b_kopvor

WITH FRAME TITLE text-001.

PARAMETERS: p_matnr1 LIKE mast-matnr MEMORY ID mat,

p_werks1 LIKE mast-werks OBLIGATORY MEMORY ID wrk, "plant

p_stlan1 LIKE mast-stlan DEFAULT '1' MODIF ID mod. "BOM Usage

SELECTION-SCREEN END OF BLOCK b_kopvor.

SELECTION-SCREEN BEGIN OF BLOCK b_aufstu

WITH FRAME TITLE text-002.

PARAMETERS: p_vbeln LIKE kdst-vbeln MEMORY ID aun

MATCHCODE OBJECT vmva,

p_vbpos LIKE kdst-vbpos MEMORY ID aup,

p_matnr2 LIKE kdst-matnr MEMORY ID ma2,

p_werks2 LIKE mast-werks OBLIGATORY MEMORY ID wrk, "Werk

p_stlan2 LIKE mast-stlan DEFAULT '1' MODIF ID mod.

SELECTION-SCREEN END OF BLOCK b_aufstu.

DATA:l_from TYPE csap_kbom-datuv.

* 物料BOM展开

CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

EXPORTING

mtnrv = p_matnr1 "'AK47'

werks = p_werks1 "'1130'

stlan = p_stlan1 "'1'

datuv = sy-datum

ehndl = '1'

mmory = '1'

capid = 'PP01'

aufsw = ' '

mbwls = ' '

mehrs = ' '

TABLES

stb = git_stb

EXCEPTIONS

alt_not_found = 1

call_invalid = 2

material_not_found = 3

missing_authorization = 4

no_bom_found = 5

no_plant_data = 6

no_suitable_bom_found = 7.

LOOP AT git_stb INTO gwa_stb.

* BOM Item

ADD 10 TO l_item_no.

"Fill Bom Item to update

CLEAR lwa_stpo.

lwa_stpo-item_categ = gwa_stb-postp.

CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT'

EXPORTING

input = l_item_no

IMPORTING

output = lwa_stpo-item_no.

lwa_stpo-component = gwa_stb-idnrk.

* 将物料BOM中的class K转换成L,创建订单BOM

IF lwa_stpo-item_categ = 'K'.

lwa_stpo-item_categ = 'L'.

lwa_stpo-component = gwa_stb-ojtxp.

ENDIF.

" … Fill any fields you need

lwa_stpo-comp_qty = gwa_stb-menge.

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'

EXPORTING

input = gwa_stb-meins

language = sy-langu

IMPORTING

* LONG_TEXT =

output = lwa_stpo-comp_unit

* SHORT_TEXT =

EXCEPTIONS

unit_not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

* Implement suitable error handling here

ENDIF.

lwa_stpo-item_text1 = gwa_stb-potx1.

lwa_stpo-item_text2 = gwa_stb-potx2.

lwa_stpo-bom_no = gwa_stb-stlnr.

lwa_stpo-item_node = gwa_stb-stlkn.

lwa_stpo-item_count = gwa_stb-stpoz.

lwa_stpo-bom_alt = gwa_stb-stlal.

* identifier用来标识长文本是保存在哪个BOM Item上

lwa_stpo-identifier = l_item_no.

APPEND lwa_stpo TO lit_stpo.

* 长文本

CLEAR:lwa_line.

* identifier用来标识长文本是保存在哪个BOM Item上

lwa_line-identifier = l_item_no.

lwa_line-tdformat = '*'.

lwa_line-tdline = 'line1'.

lwa_line-object_id = '2'. "2: STPO, 1:STKP 0:STZU

APPEND lwa_line TO lit_line.

lwa_line-tdline = 'line12'.

APPEND lwa_line TO lit_line.

lwa_line-tdline = 'line123'.

APPEND lwa_line TO lit_line.

lwa_line-tdline = 'line1234'.

APPEND lwa_line TO lit_line.

ENDLOOP.

CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'

EXPORTING

date_internal = sy-datum

IMPORTING

date_external = l_from

EXCEPTIONS

date_internal_is_invalid = 1

OTHERS = 2.

IF sy-subrc <> 0.

* Implement suitable error handling here

ENDIF.

* 订单BOM维护

CALL FUNCTION 'CSAP_ORD_BOM_MAINTAIN'

EXPORTING

order = p_vbeln "'06900222222'

position = p_vbpos "'200'

material = p_matnr2 "'000000000050333339'

plant = p_werks2 "'1130'

bom_usage = p_stlan2 "'1'

valid_from = l_from

i_stko = lwa_stko

fl_new_item = 'X'

fl_commit_and_wait = 'X'

TABLES

t_stpo = lit_stpo

t_ltx_line = lit_line

EXCEPTIONS

error = 1

OTHERS = 2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值