文档库 最新最全的文档下载
当前位置:文档库 › 工艺路线修改BAPI

工艺路线修改BAPI

工艺路线修改BAPI 其中创建ECN函数已被分离出去 不过代码注释部分有使用ECN函数的

TZPP006 中是传入数据 是工序具体数据






function zoa_enc_routingchange.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(O_AENNR) LIKE AENRB-AENNR
*" TABLES
*" TZPP006 STRUCTURE ZPP006 OPTIONAL
*" TREURNING STRUCTURE ZENCRMS OPTIONAL
*" TZENCRYI STRUCTURE ZENCRYI OPTIONAL
*"----------------------------------------------------------------------
clear: treurning[],tzencryi[]. "初始化两个输出表

data: begin of lt_rerout occurs 0,
matnr like rc27m-matnr, "物料号
werks like rc27m-werks, " 工厂
aennr like rc271-aennr, "ECN号码
sttag like rc271-sttag, ""关键日期
plnnr like mapl-plnnr, "任务清单组码--MAPL
plnal like plkod-plnal, "grc
vornr like plpod-vornr, "项次号
nomn(2) type c, "排序号
arbpl like plpod-arbpl, " 工作中心
steus like plpod-steus," 控制键值
ltxa1 like plpod-ltxa1, " 描述
bmsch(13) type c, " LIKE PLPOD-BMSCH, ""基本数量
meinh(3) type c, " LIKE PLPOD-MEINH, "作业单位
umrez(5) type c, "LIKE PLPOD-UMREZ, "" 计量单位转换--表头
umren(5) type c, "LIKE PLPOD-UMREN, " 计量单位转换--工序
vgw01(9) type c, "LIKE PLPOD-VGW01, ""准备工时
vge01(3) type c, "LIKE PLPOD-VGE01, " 准备工时-单位
vgw02(9) type c, " LIKE PLPOD-VGW02, "机器工时
vge02(3) type c, "LIKE PLPOD-VGE02, "机器工时单位
vgw03(9) type c, "LIKE PLPOD-VGW03, "人工工时
vge03(3) type c, "LIKE PLPOD-VGE03, "人工工时单位
vge04(3) type c," LIKE PLPOD-VGE04,"其他工时单位
spmus like plpod-spmus, "" 分解数标示 'x'
splim(3) type c, "LIKE PLPOD-SPLIM, "" 分解数
uenicht like plpod-uenicht, "" 没有重叠 标示
ckselkz like plpod-ckselkz, ""成本核算标示
* QSEL1 LIKE PDORQ-QSEL1, "" 需求参数文件标示 默认参数为‘X’现在统一标准
slwid like plpod-slwid, "字段码
usr00 like plpod-usr00, "周期
usr01 like plpod-usr01, "穴数
usr02 like plpod-usr02, "" 吨位
ifslwid like plpod-slwid, "字段码
end of lt_rerout.

* DATA: S_AENNR LIKE RC271-AENNR. "新建ECN号码 所有物料公共

data: secn_header like aenr_api01.
data: trecn_objmgrec type standard table of aeoi_api01 with header line.
data: trecn_return type standard table of zoa_s_return with header line.

clear lt_rerout[].
loop at tzpp006.
lt_rerout-matnr = tzpp006-matnr. "物料号码
lt_rerout-werks = tzpp006-werks. ""工厂
lt_rerout-aennr = tzpp006-aennr. "enc号码
lt_rerout-plnnr = tzpp006-plnnr.

lt_rerout-sttag = sy-datu

m. "关键日期
lt_rerout-plnal = tzpp006-plnal. "GRC
lt_rerout-vornr = tzpp006-vornr.

append lt_rerout.
clear lt_rerout.

* SELECT SINGLE PLNNR INTO LT_REROUT-PLNNR "任务清单组码
* FROM MAPL
* WHERE MATNR = TZPP006-MATNR
* AND WERKS = TZPP006-WERKS
* AND PLNTY = 'N'
* AND PLNAL = TZPP006-PLNAL.
* IF SY-SUBRC = 0.
* LT_REROUT-STTAG = SY-DATUM. "关键日期
* LT_REROUT-PLNAL = TZPP006-PLNAL. "GRC
* LT_REROUT-VORNR = TZPP006-VORNR.
*
* APPEND LT_REROUT.
* CLEAR LT_REROUT.
* ELSE.
* TREURNING-MATNR = TZPP006-MATNR.
* TREURNING-PLNAL = TZPP006-PLNAL.
* TREURNING-VORNR = TZPP006-VORNR.
* TREURNING-MSTYPE = 'E'.
* TREURNING-MESSAGE = '没有找到任务清单组码!'.
*
* APPEND TREURNING.
* CLEAR TREURNING.
* CONTINUE. "跳出本次循环 继续下面的循环
* ENDIF.

endloop.
data: begin of lt_aspo occurs 0,
plnnr like plas-plnnr,
plnal like plas-plnal,
plnkn like plas-plnkn,
datuv like plpo-datuv, "有效起始日期 就是针对该项的最后一次新建项次
aennr like plpo-aennr, "ecn 号
vornr like plpo-vornr,
nomn type i, "排序号
steus like plpo-steus,
arbid like plpo-arbid,
ltxa1 like plpo-ltxa1,
bmsch like plpo-bmsch,
meinh like plpo-meinh,
umrez like plpo-umrez,
umren like plpo-umren,
vgw01 like plpo-vgw01,
vge01 like plpo-vge01,
vgw02 like plpo-vgw02,
vge02 like plpo-vge02,
vgw03 like plpo-vgw03,
vge03 like plpo-vge03,
vge04 like plpo-vge04,
spmus like plpo-spmus, "" 分解数标示 'x'
splim like plpo-splim, "" 分解数
uemus like plpo-uemus, "UENICHT LIKE PLPO-UENICHT, "" 没有重叠 标示
ckselkz like plpo-ckselkz, ""成本核算标示P
slwid like plpo-slwid, "字段码
usr00 like plpo-usr00, "周期
usr01 like plpo-usr01, "穴数
usr02 like plpo-usr02, "" 吨位
end of lt_aspo.

data:begin of it_tab occurs 0,
matnr like rc27m-matnr, "物料号
plnnr like mapl-plnnr, "任务清单组码--MAPL
end of it_tab.

data: lt_aspo1 like lt_aspo occurs 0 with header line. "定义内表2
clear it_tab[].
loop at lt_rerout.
***********获取对应数据
clear :lt_aspo[],lt_aspo1[].
select plas~plnnr plas~plnal plas~plnkn plpo~datuv plpo~aennr plpo~vornr plpo~steus plpo~arbid plpo~ltxa1 plpo~bmsch plpo~meinh plpo~umrez
plpo~umren plpo~vgw01 plpo~vge01 plpo~vgw02 plpo~vge02 plpo~vgw03 plpo~vge03 plpo~vge04 plpo~spmus plpo~splim plpo~uemus
plpo~ckselkz plpo~slwid plpo~usr00 plpo~usr01 plpo~usr02
into corresponding fields of table lt_aspo
from plas
inner join plpo on plpo~plnnr = plas~plnnr and plpo~plnkn = plas~plnkn
where plas~plnty = '

N'
and plas~plnnr = lt_rerout-plnnr
and plas~plnal = lt_rerout-plnal
and plas~loekz <> 'X'.

loop at lt_aspo.
read table lt_aspo1 with key plnnr = lt_aspo-plnnr plnal = lt_aspo-plnal plnkn = lt_aspo-plnkn vornr = lt_aspo-vornr.
if sy-subrc = 0.
if lt_aspo1-datuv < lt_aspo-datuv. "有效日期小于
lt_aspo1-datuv = lt_aspo-datuv.
lt_aspo1-aennr = lt_aspo-aennr. "ECN号
lt_aspo1-vornr = lt_aspo-vornr.
lt_aspo1-nomn = lt_aspo-nomn.
lt_aspo1-steus = lt_aspo-steus.
lt_aspo1-arbid = lt_aspo-arbid.
lt_aspo1-ltxa1 = lt_aspo-ltxa1.
lt_aspo1-bmsch = lt_aspo-bmsch.
lt_aspo1-meinh = lt_aspo-meinh.
lt_aspo1-umrez = lt_aspo-umrez.
lt_aspo1-umren = lt_aspo-umren.
lt_aspo1-vgw01 = lt_aspo-vgw01.
lt_aspo1-vge01 = lt_aspo-vge01.
lt_aspo1-vgw02 = lt_aspo-vgw02.
lt_aspo1-vge02 = lt_aspo-vge02.
lt_aspo1-vgw03 = lt_aspo-vgw03.
lt_aspo1-vge03 = lt_aspo-vge03.
lt_aspo1-vge04 = lt_aspo-vge04.
lt_aspo1-spmus = lt_aspo-spmus.
lt_aspo1-splim = lt_aspo-splim.
lt_aspo1-uemus = lt_aspo-uemus.
lt_aspo1-ckselkz = lt_aspo-ckselkz.
lt_aspo1-slwid = lt_aspo-slwid.
lt_aspo1-usr00 = lt_aspo-usr00.
lt_aspo1-usr01 = lt_aspo-usr01.
lt_aspo1-usr02 = lt_aspo-usr02.
modify lt_aspo1 index sy-tabix.
clear lt_aspo1.
endif.
else.
move-corresponding lt_aspo to lt_aspo1.
append lt_aspo1.
clear lt_aspo1.
endif.
endloop.

sort lt_aspo1 by vornr ascending. "按工序大小进行排序
data: s_sum type i.
s_sum = 1.
loop at lt_aspo1.
lt_aspo1-nomn = s_sum.
s_sum = s_sum + 1.
modify lt_aspo1.
clear lt_aspo1.
endloop.
***********************************************************

read table lt_aspo1 with key plnnr = lt_rerout-plnnr plnal = lt_rerout-plnal vornr = lt_rerout-vornr.
if sy-subrc = 0.

lt_rerout-nomn = lt_aspo1-nomn. "循序号

select single arbpl into lt_rerout-arbpl "获取工作中心
from crhd
where objty = 'A'
and objid = lt_aspo1-arbid.
lt_rerout-steus = lt_aspo1-steus.
lt_rerout-ltxa1 = lt_aspo1-ltxa1.
lt_rerout-bmsch = lt_aspo1-bmsch.
lt_rerout-meinh = lt_aspo1-meinh.
lt_rerout-umrez = lt_aspo1-umrez.
lt_rerout-umren = lt_aspo1-umren.
lt_rerout-vgw01 = lt_aspo1-vgw01.
lt_rerout-vge01 = lt_aspo1-vge01.
lt_rerout-vgw02 = lt_aspo1-vgw02.
lt_rerout-vge02 = lt_aspo1-vge02.
lt_rerout-vgw03 = lt_aspo1-vgw03.
lt_rerout-vge03 = lt_aspo1-vge03.
lt_rerout-vge04 = lt_aspo1-vge04.
lt_rerout-spmus = lt_aspo1-spmus.
lt_rerout-splim = lt_aspo1-splim.
lt_rerout-uenicht

= lt_aspo1-uemus.
lt_rerout-ckselkz = lt_aspo1-ckselkz.

lt_rerout-slwid = lt_aspo1-slwid.
lt_rerout-usr00 = lt_aspo1-usr00.
lt_rerout-usr01 = lt_aspo1-usr01.
lt_rerout-usr02 = lt_aspo1-usr02.
lt_rerout-ifslwid = lt_aspo1-slwid.

* CLEAR: SECN_HEADER ,TRECN_OBJMGREC[],TRECN_RETURN[].
*
* IF LT_ASPO1-DATUV = LT_REROUT-STTAG. "日期是否相等
*
* IF LT_ASPO1-AENNR IS NOT INITIAL. "不为初始化状态
* LT_REROUT-AENNR = LT_ASPO1-AENNR. "ECN号码
* ELSE.
* IT_TAB-MATNR = LT_REROUT-MATNR.
* IT_TAB-PLNNR = LT_REROUT-PLNNR.
* APPEND IT_TAB.
* CLEAR IT_TAB.
* ENDIF.
*
* ELSE.
* IT_TAB-MATNR = LT_REROUT-MATNR.
* IT_TAB-PLNNR = LT_REROUT-PLNNR.
* APPEND IT_TAB.
* CLEAR IT_TAB.
*
* ENDIF.
modify lt_rerout.
clear lt_rerout.
endif.
endloop.

***************************创建新的ECN号码******************************
* SORT IT_TAB BY MATNR PLNNR.
* DELETE ADJACENT DUPLICATES FROM IT_TAB COMPARING ALL FIELDS. "删除重复物料和组号
*
* SECN_HEADER-STATUS = '01'.
* SECN_HEADER-VALID_FROM = SY-DATUM.
* SECN_HEADER-DESCRIPT = '更改工艺路线'.
*
* CLEAR TRECN_OBJMGREC[].
*
* LOOP AT IT_TAB.
* TRECN_OBJMGREC-CHG_OBJTYP = '02'.
* TRECN_OBJMGREC-DESCR_OBJ = '更改工艺路线'.
* TRECN_OBJMGREC-TLIST_TYPE = 'N'.
* TRECN_OBJMGREC-TLIST_GRP = IT_TAB-PLNNR.
*
* APPEND TRECN_OBJMGREC.
* CLEAR TRECN_OBJMGREC.
* ENDLOOP.
*
* CLEAR S_AENNR. "初始化变量
* if TRECN_OBJMGREC[] is not initial.
*
* CALL FUNCTION 'ZOA_RECN_CREATE'
* EXPORTING
* ECN_HEADER = SECN_HEADER
** OBJECT_TLIST_N =
* IMPORTING
* RECN_NO = S_AENNR
* TABLES
* RECN_OBJMGREC = TRECN_OBJMGREC
* RECN_RETURN = TRECN_RETURN.
*
* endif.
*
* O_AENNR = S_AENNR.


loop at lt_rerout.
read table tzpp006 with key werks = lt_rerout-werks matnr = lt_rerout-matnr plnal = lt_rerout-plnal vornr = lt_rerout-vornr.
if sy-subrc = 0.
if tzpp006-arbpl is not initial.
if lt_rerout-arbpl <> tzpp006-arbpl.
lt_rerout-arbpl = tzpp006-arbpl.
endif.
endif.
if tzpp006-ltxa1 is not initial.
if lt_rerout-ltxa1 <> tzpp006-ltxa1.

if tzpp006-ltxa1 = '空'.
lt_rerout-ltxa1 = ''.
else.
lt_rerout-ltxa1 = tzpp006-ltxa1.
endif.

endif.
endif.
if tzpp006-vgw01 is not initial.
if lt_rerout-vgw01 <> tzpp006-vgw01.

if tzpp006-vgw01 = '空'.
lt_rerout-vgw01 = ''.
else.
lt_rerout-vgw01 = tzpp006-vgw01.
endif.

endif.
endif.
if tzpp006-vgw02 is not initial.
if lt_rerout-vgw02 <> tzpp006-vgw02.

if tzpp006-vgw02 = '空'.
lt_rerout-vgw02 = ''.
else.
lt_rerout-vgw02 = tzpp006-vg

w02.
endif.

endif.
endif.
if tzpp006-vgw03 is not initial.
if lt_rerout-vgw03 <> tzpp006-vgw03.

if tzpp006-vgw03 = '空'.
lt_rerout-vgw03 = ''.
else.
lt_rerout-vgw03 = tzpp006-vgw03.
endif.

endif.
endif.
if tzpp006-bmsch is not initial.
if lt_rerout-bmsch <> tzpp006-bmsch.

if tzpp006-bmsch = '空'.
lt_rerout-bmsch = ''.
else.
lt_rerout-bmsch = tzpp006-bmsch.
endif.

endif.
endif.
if tzpp006-splim is not initial.
if lt_rerout-splim <> tzpp006-splim.

if tzpp006-splim = '空'.
lt_rerout-splim = ''.
else.
lt_rerout-splim = tzpp006-splim.
endif.

endif.
endif.
if tzpp006-slwid is not initial.
if lt_rerout-slwid <> tzpp006-slwid.

if tzpp006-slwid = '空'.
lt_rerout-slwid = ''.
else.
lt_rerout-slwid = tzpp006-slwid.
endif.

endif.
endif.
if tzpp006-usr00 is not initial.
if lt_rerout-usr00 <> tzpp006-usr00.

if tzpp006-usr00 = '空'.
lt_rerout-usr00 = ''.
else.
lt_rerout-usr00 = tzpp006-usr00.
endif.

endif.
endif.
if tzpp006-usr01 is not initial.
if lt_rerout-usr01 <> tzpp006-usr01.

if tzpp006-usr01 = '空'.
lt_rerout-usr01 = ''.
else.
lt_rerout-usr01 = tzpp006-usr01.
endif.

endif.
endif.
if tzpp006-usr02 is not initial.
if lt_rerout-usr02 <> tzpp006-usr02.

if tzpp006-usr02 = '空'.
lt_rerout-usr02 = ''.
else.
lt_rerout-usr02 = tzpp006-usr02.
endif.

endif.
endif.
endif.

* IF LT_REROUT-AENNR IS INITIAL.
* LT_REROUT-AENNR = S_AENNR.
* ENDIF.

modify lt_rerout.
clear lt_rerout.

endloop.
*********************************************进行BDC录入--------------
data: begin of it_tabs occurs 0,
matnr like mapl-matnr,
werks like mapl-werks,
plnnr like mapl-plnnr,
plnal like mapl-plnal,
end of it_tabs.
data: n type i.
data:tmessage like zencrms-message.
loop at lt_rerout.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lt_rerout-plnal
importing
output = lt_rerout-plnal.

clear bdcdata[]. "初始化BDC填表
tzencryi-werks = lt_rerout-werks.
tzencryi-matnr = lt_rerout-matnr.
tzencryi-plnnr = lt_rerout-plnnr.
tzencryi-plnal = lt_rerout-plnal.
tzencryi-vornr = lt_rerout-vornr.
tzencryi-aennr = lt_rerout-aennr.
append tzencryi.
clear tzencryi.

clear it_tabs[].
select matnr werks plnnr plnal into c

orresponding fields of table it_tabs
from mapl
where werks = lt_rerout-werks
and matnr = lt_rerout-matnr.
n = lines( it_tabs ).
****************BDC
perform bdc_dynpro using 'SAPLCPDI' '1010'.
perform bdc_field using 'BDC_CURSOR' 'RC27M-MATNR'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RC27M-MATNR' lt_rerout-matnr.
perform bdc_field using 'RC27M-WERKS' lt_rerout-werks.
perform bdc_field using 'RC271-AENNR' lt_rerout-aennr.
perform bdc_field using 'RC271-STTAG' lt_rerout-sttag.
perform bdc_field using 'RC271-PLNAL' lt_rerout-plnal.
*IF N > 1.
* PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
* PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RC27X-ENTRY_ACT'.
* PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
* PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT' LT_REROUT-PLNAL.
*
* PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
* PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLKOD-PLNAL(01)'. "工艺定位
* PERFORM BDC_FIELD USING 'BDC_OKCODE' '=PICK'.
* PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT' LT_REROUT-PLNAL.
*ENDIF.
perform bdc_dynpro using 'SAPLCPDI' '1400'.
perform bdc_field using 'BDC_CURSOR' 'PLPOD-VORNR(01)'.
perform bdc_field using 'BDC_OKCODE' '=OSEA'.
perform bdc_field using 'RC27X-ENTRY_ACT' '1'.

perform bdc_dynpro using 'SAPLCP02' '1010'.
perform bdc_field using 'BDC_CURSOR' 'RC27H-VORNR'.
perform bdc_field using 'BDC_OKCODE' '=ENT1'.
perform bdc_field using 'RC27H-VORNR' lt_rerout-vornr.

perform bdc_dynpro using 'SAPLCPDI' '1400'.
perform bdc_field using 'BDC_CURSOR' 'PLPOD-VORNR(01)'.
perform bdc_field using 'BDC_OKCODE' '=PICK'.
perform bdc_field using 'RC27X-ENTRY_ACT' lt_rerout-nomn.

if lt_rerout-ifslwid is initial and lt_rerout-slwid is not initial.
perform bdc_dynpro using 'SAPLCPDO' '1200'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1291HEAD'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1210GENERAL'.
perform bdc_field using 'PLPOD-VORNR' lt_rerout-vornr.
perform bdc_field using 'PLPOD-ARBPL' lt_rerout-arbpl.
perform bdc_field using 'PLPOD-WERKS' lt_rerout-werks.
perform bdc_field using 'PLPOD-STEUS' lt_rerout-steus.
perform bdc_field using 'PLPOD-LTXA1' lt_rerout-ltxa1.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1211DEFAULTVAL'.
perform bdc_field using 'PLPOD-BMSCH' lt_rerout-bmsch.
* PERFORM BDC_FIELD USING 'PLPOD-MEINH' LT_REROUT-MEINH.
* PERFORM BDC_FIELD USING 'PLPOD-UMREZ' LT_REROUT-UMREZ.
* PERFORM BDC_FIELD USING 'PLPOD-UMREN' LT_REROUT-UMREN.
perform bdc_field using 'PLPOD-VGW01' lt_rerout-vgw01.
* PERFORM BDC_FIELD USING 'PLPOD-VGE01' LT_REROUT-VGE01.
perform bdc_field using 'PLPOD-VGW02' lt_rerout-vgw02.
* PERFORM BDC_FIELD USING 'PLPOD-VGE02' LT_REROUT-VGE02.
perform bdc_field using 'PLPOD-VGW03' lt_

rerout-vgw03.
* PERFORM BDC_FIELD USING 'PLPOD-VGE03' LT_REROUT-VGE03.
* PERFORM BDC_FIELD USING 'PLPOD-VGE04' LT_REROUT-VGE04.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1223DEFAULTCUM'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1212DEFVALDET'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1213SPLITTING'.
* PERFORM BDC_FIELD USING 'PLPOD-SPMUS' LT_REROUT-SPMUS.
perform bdc_field using 'PLPOD-SPLIM' lt_rerout-splim.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1222OVERLAPP'.
* PERFORM BDC_FIELD USING 'PLPOD-UEMUS' LT_REROUT-UENICHT. "" 没有重叠 标示
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1214INTEROPR'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1215SOPRDELTAS'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1218COMMON'.
* PERFORM BDC_FIELD USING 'PLPOD-CKSELKZ' LT_REROUT-CKSELKZ.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1216QUALIFICA'.
perform bdc_field using 'PDORQ-QSEL1' 'X'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1217EXTERNAL'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1219QM'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1220USER'.
perform bdc_field using 'BDC_CURSOR' 'PLPOD-SLWID'.
perform bdc_field using 'PLPOD-SLWID' lt_rerout-slwid.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1221ADMINISTRA'.

endif.

perform bdc_dynpro using 'SAPLCPDO' '1200'.
perform bdc_field using 'BDC_OKCODE' '=BU'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1291HEAD'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1210GENERAL'.
perform bdc_field using 'BDC_CURSOR' 'PLPOD-LTXA1'.
perform bdc_field using 'PLPOD-VORNR' lt_rerout-vornr.
perform bdc_field using 'PLPOD-ARBPL' lt_rerout-arbpl.
perform bdc_field using 'PLPOD-WERKS' lt_rerout-werks.
perform bdc_field using 'PLPOD-STEUS' lt_rerout-steus.
perform bdc_field using 'PLPOD-LTXA1' lt_rerout-ltxa1.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1211DEFAULTVAL'.
perform bdc_field using 'PLPOD-BMSCH' lt_rerout-bmsch.
* PERFORM BDC_FIELD USING 'PLPOD-MEINH' LT_REROUT-MEINH.
* PERFORM BDC_FIELD USING 'PLPOD-UMREZ' LT_REROUT-UMREZ.
* PERFORM BDC_FIELD USING 'PLPOD-UMREN' LT_REROUT-UMREN.
perform bdc_field using 'PLPOD-VGW01' lt_rerout-vgw01.
* PERFORM BDC_FIELD USING 'PLPOD-VGE01' LT_REROUT-VGE01.
perform bdc_field using 'PLPOD-VGW02' lt_rerout-vgw02.
* PERFORM BDC_FIELD USING 'PLPOD-VGE02' LT_REROUT-VGE02.
perform bdc_field using 'PLPOD-VGW03' lt_rerout-vgw03.
* PERFORM BDC_FIELD USING 'PLPOD-VGE03' LT_REROUT-VGE03.
* PERFORM BDC_FIELD USING 'PLPOD-VGE04' LT_REROUT-VGE04.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1223DEFAULTCUM'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1212DEFVALDET'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1213SPLITTING'.
* PER

FORM BDC_FIELD USING 'PLPOD-SPMUS' LT_REROUT-SPMUS.
perform bdc_field using 'PLPOD-SPLIM' lt_rerout-splim.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1222OVERLAPP'.
* PERFORM BDC_FIELD USING 'PLPOD-UEMUS' LT_REROUT-UENICHT. "" 没有重叠 标示
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1214INTEROPR'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1215SOPRDELTAS'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1218COMMON'.
* PERFORM BDC_FIELD USING 'PLPOD-CKSELKZ' LT_REROUT-CKSELKZ.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1216QUALIFICA'.
perform bdc_field using 'PDORQ-QSEL1' 'X'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1217EXTERNAL'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1219QM'.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1220USER'.

* IF LT_REROUT-SLWID IS NOT INITIAL.
perform bdc_field using 'PLPOD-SLWID' lt_rerout-slwid.
* ENDIF.
if lt_rerout-usr00 is not initial.
perform bdc_field using 'PLPOD-USR00' lt_rerout-usr00.
endif.
if lt_rerout-usr01 is not initial.
perform bdc_field using 'PLPOD-USR01' lt_rerout-usr01.
endif.
if lt_rerout-usr02 is not initial.
perform bdc_field using 'PLPOD-USR02' lt_rerout-usr02.
endif.
perform bdc_field using 'BDC_SUBSCR' 'SAPLCPDO 1221ADMINISTRA'.
clear messtab[].
call transaction 'CA02' using bdcdata mode 'N' update 'A' messages into messtab.
if sy-subrc <> 0.
perform getmsg.
treurning-matnr = lt_rerout-matnr.
treurning-plnal = lt_rerout-plnal.
treurning-vornr = lt_rerout-vornr.
treurning-mstype = 'E'.
move: pmess to treurning-message.
append treurning.
clear treurning.

else.
treurning-matnr = lt_rerout-matnr.
treurning-plnal = lt_rerout-plnal.
treurning-vornr = lt_rerout-vornr.
treurning-mstype = 'S'.
treurning-message = '工艺路线修改成功!'.
append treurning.
clear treurning.

endif.
wait up to '0.2' seconds.

* READ TABLE MESSTAB WITH KEY MSGTYP = 'E'.
* IF SY-SUBRC = 0. "失败
* TREURNING-MATNR = LT_REROUT-MATNR.
* TREURNING-PLNAL = LT_REROUT-PLNAL.
* TREURNING-VORNR = LT_REROUT-VORNR.
* TREURNING-MSTYPE = 'E'.
* clear TMESSAGE.
* LOOP AT MESSTAB.
* MESSAGE ID MESSTAB-MSGID TYPE MESSTAB-MSGTYP NUMBER MESSTAB-MSGNR WITH MESSTAB-MSGV1 MESSTAB-MSGV2 MESSTAB-MSGV3 MESSTAB-MSGV4 INTO TMESSAGE.
* CONCATENATE TMESSAGE TREURNING-MESSAGE into TREURNING-MESSAGE.
* ENDLOOP.
*
* APPEND TREURNING.
* CLEAR TREURNING.
* ELSE. "成功
* TREURNING-MATNR = LT_REROUT-MATNR.
* TREURNING-PLNAL = LT_REROUT-PLNAL.
* TREURNING-VORNR = LT_REROUT-VORNR.
* TREURNING-MSTYPE = 'S'.
* TREURNING-MESSAGE = '工艺路线修改成功!'.
* LOOP AT MESSTAB.
* MESSAGE ID MESSTAB-MSGID TYPE MESSTAB-MSGTYP NUMBER MESSTAB-MSGNR WITH

MESSTAB-MSGV1 MESSTAB-MSGV2 MESSTAB-MSGV3 MESSTAB-MSGV4 INTO TREURNING-MESSAGE1.
* ENDLOOP.
*
* APPEND TREURNING.
* CLEAR TREURNING.
*
* ENDIF.

endloop.


endfunction.

相关文档
相关文档 最新文档