sap增强实现批次自动编号

上传人:小** 文档编号:92687410 上传时间:2019-07-12 格式:DOC 页数:9 大小:293.81KB
返回 下载 相关 举报
sap增强实现批次自动编号_第1页
第1页 / 共9页
sap增强实现批次自动编号_第2页
第2页 / 共9页
sap增强实现批次自动编号_第3页
第3页 / 共9页
sap增强实现批次自动编号_第4页
第4页 / 共9页
sap增强实现批次自动编号_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《sap增强实现批次自动编号》由会员分享,可在线阅读,更多相关《sap增强实现批次自动编号(9页珍藏版)》请在金锄头文库上搜索。

1、批次编号处理批次编号范围(将采用批次管理的物料分为两种,1种是自制件(E),1种是采购件(F),对于既有自制、又有采购的,根据实际状况处理) 对于自制件,批次编号跟生产订单编号一致(使用出口来实现) 对于外购件,批次编号采用6位日期+3位流水码(使用出口来实现)内部编号范围分配目前逻辑如下,根据物料的生产方式 F-外购件-批次编号采用6位日期+3位流水号o 对于1个物料来说,如果批次号码内部给号而不是手工输入,那么流水码从001直到999,每次货物移动,流水码自动加1o 对于不同的物料来说,比如之前有个物料使用了流水码180111000如果MCH1物料+流水码查询不到记录,那么此物料仍然可以使

2、用流水码180111000 E-外购件-批次编号采用生产订单编号 X-判断当前的生产订单编号是否为空o 生产订单编号为空 -6位日期+3位流水号o 生产订单编号不为空-生产订单编号(生产订单编号采用10位,前两位为工厂代码)首先对于增强说一下我的理解:用户出口SAPLV01Z是用户自动分配批次号码(内部给号的),并且只有在配置了基于移动类型生成新批次,并且设置成B,此出口才会被触发,所有的配置B的移动类型,在用MIGO进行货物移动时,都会触发增强的逻辑,并且增强逻辑只对(没有输入批次号码)这种情况下才生效。集团配置的自动创建批次移动类型为101、103、501对于批次,整个集团的规则是,批次号

3、码均是自动生成,只有特殊情况才可以手工输入(561初始化,以及盘盈701、711):只有收货(101、103、501-仅限采购件),才能自动产生新批次(设置成B-Automatic/Manualand check in USER EXIT),其他的移动类型都要设成G-no creation对于消耗的移动类型(201、261、281、601、541、543)批次都是根据批次确定规则(FIFO&剩余货架寿命),自动排出批次(在migo里面也要配置增强,如果输入的批次号不在MCH1或者MCHA中,会报错),且不允许产生新批次-全部设成G-no creation,且需要配置批次确定规则对于移库类(24

4、1/242、301/302、303/304、305/306、309/310、311/312、313/314、315/316、344/343、411/412、413/414、415/416、551/552。)如果物料有用到批次管理,会检查输入的批次是否存在,如果不存在,会报错,也是在MIGO增强里面做检查,因为移库可能没法使用FIFO规则。且不允许产生新批次-全部设成G-no creation,且不需要配置批次确定规则对于561,并不设置内部检查规则(即采用默认配置),对于561初始化库存时,批次可以手工输入对于701(盘盈),理论上,所有的盘盈并不会产生新批次,如果真的产生新批次的物料,批次可

5、以手工输入,即701也采用默认配置CMOD创建增强项目注:EXIT_SAPLV01Z_001 & EXIT_SAPLV01Z_002适用于内部给号的情况对出口EXIT_SAPLV01Z_002加代码源代码*&-*&IncludeZXVBZU02*&内部编号范围分配目前逻辑如下*&根据物料的生产方式*&F-外购件-批次编号采用6位日期+3位流水号*&流水号含义-对于1个物料来说,如果批次号码内部给号而不是手工输入,那么流水码从001直到999,*&每次货物移动,流水码自动加1*&-对于不同的物料来说,比如之前有个物料使用了流水码180111001如果MCH1物料+流水码*&查询不到记录,那么此物

6、料仍然可以使用流水码180111001*&E-外购件-批次编号采用生产订单编号*&X-判断当前的生产订单编号是否为空*&生产订单编号为空-6位日期+3位流水号*&生产订单编号不为空-生产订单编号*&-*TABLES:zbatch,mch1,marc.DATAtab01LIKETABLEOFzbatchWITHHEADERLINE.DATAbatch_numberTYPEmch1-charg.DATApre_flow_number(3)TYPEn.前一个流水号DATAcur_flow_number(3)TYPEn.当前流水号DATAzbeskzTYPEmarc-beskz.采购方式CLEARba

7、tch_number.批次号码CLEARpre_flow_number.CLEARcur_flow_number.CLEARtab01.首先获取物料的采购方式SELECTSINGLEmarcbeskzINTOzbeskzFROMmarcWHEREmarcwerks=x_bncom-werksANDmarcmatnr=x_bncom-matnr.首先获取当前日期,当前物料下,该物料的最大批次号CASEzbeskz.WHENF.外购件,使用流水码的批次号SELECTMAX(charg)INTObatch_numberFROMMCH1WHEREmatnr=x_bncom-matnrANDERSDA=

8、sy-datum.IFbatch_numberISINITIAL.如果当天的批次号不存在,那么当前流水号为001cur_flow_number=001.ELSE.pre_flow_number=batch_number+6(3).如果当天的批次存在,那么前一个流水号=取到的流水号cur_flow_number=pre_flow_number+1.当前流水号=前一个流水号+1ENDIF.将此次的批次信息插入到表ZBATCH中CONCATENATEsy-datum+2(6)cur_flow_numberINTObatch_number.当前日期后6位+当前流水号作为当前的批次号码WHENE.IFx

9、_bncom-bwart101orx_bncom-bwart103.MESSAGEe001(00)WITHPleaseinputbatchnumber!.ELSE.batch_number=x_bncom-aufnr.ENDIF.WHENX.IFx_bncom-aufnrISINITIAL.SELECTMAX(charg)INTObatch_numberFROMzbatchWHEREmatnr=x_bncom-matnrANDcdate=sy-datum.IFbatch_numberISINITIAL.如果当天的批次号不存在,那么当前流水号为001cur_flow_number=001.ELS

10、E.pre_flow_number=batch_number+6(3).如果当天的批次存在,那么前一个流水号=取到的流水号cur_flow_number=pre_flow_number+1.当前流水号=前一个流水号+1ENDIF.将此次的批次信息插入到表ZBATCH中CONCATENATEsy-datum+2(6)cur_flow_numberINTObatch_number.当前日期后6位+当前流水号作为当前的批次号码ELSE.IFx_bncom-bwart101orx_bncom-bwart103.MESSAGEe001(00)WITHPleaseinputbatchnumber!Fini

11、shedGoodsautobatchnumeronlyallowedformvt101.ELSE.batch_number=x_bncom-aufnr.ENDIF.ENDIF.ENDCASE.*tab01-charg=batch_number.*tab01-matnr=x_bncom-matnr.*tab01-cdate=sy-datum.*tab01-werks=x_bncom-werks.*APPENDtab01.*IFsy-ucomm=OK_POST1.只有post才会将数据写入到表ZBATCH中*INSERTzbatchFROMtab01.*COMMITWORK.*ENDIF.new_charg=batch_number.测试验证:采购件根据当前系统日期带出批次编号,测试通过

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号