SAP增强实现批次自动编号.docx
- 文档编号:9039380
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:8
- 大小:288.99KB
SAP增强实现批次自动编号.docx
《SAP增强实现批次自动编号.docx》由会员分享,可在线阅读,更多相关《SAP增强实现批次自动编号.docx(8页珍藏版)》请在冰点文库上搜索。
SAP增强实现批次自动编号
批次编号处理
批次编号X围〔将采用批次管理的物料分为两种,1种是自制件(E),1种是采购件(F),对于既有自制、又有采购的,根据实际状况处理〕
∙对于自制件,批次编号跟生产订单编号一致〔使用出口来实现〕
∙对于外购件,批次编号采用6位日期+3位流水码〔使用出口来实现〕
内部编号X围分配目前逻辑如下,根据物料的生产方式
∙ F->外购件-> 批次编号采用6位日期+3位流水号
o对于1个物料来说,如果批次内部给号而不是手工输入,那么流水码从001直到999,每次货物移动,流水码自动加1
o对于不同的物料来说,比如之前有个物料使用了流水码180111000如果MCH1物料+流水码查询不到记录,那么此物料仍然可以使用流水码180111000
∙E->外购件-> 批次编号采用生产订单编号
∙X->判断当前的生产订单编号是否为空
o生产订单编号为空 -> 6位日期+3位流水号
o生产订单编号不为空-> 生产订单编号〔生产订单编号采用10位,前两位为工厂代码〕
首先对于增强说一下我的理解:
用户出口SAPLV01Z是用户自动分配批次〔内部给号的〕,并且只有在配置了
基于移动类型生成新批次,并且设置成B,此出口才会被触发,所有的配置B的移动类型,在用MIGO进展货物移动时,都会触发增强的逻辑,并且增强逻辑只对〔没有输入批次〕这种情况下才生效。
集团配置的自动创建批次移动类型为101、103、501
对于批次,整个集团的规如此是,批次均是自动生成,只有特殊情况才可以手工输入〔561初始化,以与盘盈701、711〕:
只有收货〔101、103、501-仅限采购件〕,才能自动产生新批次〔设置成B-Automatic/Manual
andcheckinUSEREXIT),其他的移动类型都要设成G-nocreation
对于消耗的移动类型〔201、261、281、601、541、543〕批次都是根据批次确定规如此〔FIFO&剩余货架寿命〕,自动排出批次〔在migo里面也要配置增强,如果输入的批次号不在MCH1或者MCHA中,会报错〕,且不允许产生新批次->全部设成G-nocreation,且需要配置批次确定规如此
对于移库类〔241/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-nocreation,且不需要配置批次确定规如此
对于561,并不设置内部检查规如此〔即采用默认配置〕,对于561初始化库存时,批次可以手工输入
对于701〔盘盈〕,理论上,所有的盘盈并不会产生新批次,如果真的产生新批次的物料,批次可以手工输入,即701也采用默认配置
CMOD创建增强项目
注:
EXIT_SAPLV01Z_001&EXIT_SAPLV01Z_002适用于内部给号的情况
对出口EXIT_SAPLV01Z_002加代码
源代码
*&---------------------------------------------------------------------*
*& Include ZXVBZU02
*& 内部编号X围分配目前逻辑如下
*& 根据物料的生产方式
*& F->外购件-> 批次编号采用6位日期+3位流水号
*& 流水号含义->对于1个物料来说,如果批次内部给号而不是手工输入,那么流水码从001直到999,
*& 每次货物移动,流水码自动加1
*& ->对于不同的物料来说,比如之前有个物料使用了流水码180111001如果MCH1物料+流水码
*& 查询不到记录,那么此物料仍然可以使用流水码180111001
*& E->外购件-> 批次编号采用生产订单编号
*& X->判断当前的生产订单编号是否为空
*& 生产订单编号为空 -> 6位日期+3位流水号
*& 生产订单编号不为空-> 生产订单编号
*&---------------------------------------------------------------------*
TABLES:
zbatch,mch1,marc.
DATA tab01 LIKE TABLE OF zbatch WITH HEADER LINE.
DATA batch_number TYPE mch1-charg.
DATA pre_flow_number(3) TYPE n. "前一个流水号
DATA cur_flow_number(3) TYPE n. "当前流水号
DATA zbeskz TYPE marc-beskz. "采购方式
CLEAR batch_number. "批次
CLEAR pre_flow_number.
CLEAR cur_flow_number.
CLEAR tab01.
"首先获取物料的采购方式
SELECT SINGLE marc~beskz INTO zbeskz FROM marc
WHERE marc~werks = x_bn-werks
AND marc~matnr = x_bn-matnr.
"首先获取当前日期,当前物料下,该物料的最大批次号
CASE zbeskz.
WHEN 'F'. "外购件,使用流水码的批次号
SELECT MAX( charg ) INTO batch_number FROM MCH1 WHERE matnr = x_bn-matnr AND ERSDA = sy-datum.
IF batch_number IS INITIAL. "如果当天的批次号不存在,那么当前流水号为001
cur_flow_number = '001'.
ELSE.
pre_flow_number = batch_number+6(3). "如果当天的批次存在,那么前一个流水号=取到的流水号
cur_flow_number = pre_flow_number + 1. "当前流水号=前一个流水号+1
ENDIF.
"将此次的批次信息插入到表ZBATCH中
CONCATENATE sy-datum+2(6) cur_flow_number INTO batch_number. "当前日期后6位+当前流水号作为当前的批次
WHEN 'E'.
IF x_bn-bwart <> '101' or x_bn-bwart <> '103'.
MESSAGE e001(00) WITH 'Please input batch number!
'.
ELSE.
batch_number = x_bn-aufnr.
ENDIF.
WHEN 'X'.
IF x_bn-aufnr IS INITIAL.
SELECT MAX( charg ) INTO batch_number FROM zbatch WHERE matnr = x_bn-matnr AND cdate = sy-datum.
IF batch_number IS INITIAL. "如果当天的批次号不存在,那么当前流水号为001
cur_flow_number = '001'.
ELSE.
pre_flow_number = batch_number+6(3). "如果当天的批次存在,那么前一个流水号=取到的流水号
cur_flow_number = pre_flow_number + 1. "当前流水号=前一个流水号+1
ENDIF.
"将此次的批次信息插入到表ZBATCH中
CONCATENATE sy-datum+2(6) cur_flow_number INTO batch_number. "当前日期后6位+当前流水号作为当前的批次
ELSE.
IF x_bn-bwart <> '101' or x_bn-bwart <> '103'.
MESSAGE e001(00) WITH 'Please input batch number!
Finished Goods auto batch numer only allowed for mvt 101'.
ELSE.
batch_number = x_bn-aufnr.
ENDIF.
ENDIF.
ENDCASE.
* tab01-charg = batch_number.
* tab01-matnr = x_bn-matnr.
* tab01-cdate = sy-datum.
* tab01-werks = x_bn-werks.
* APPEND tab01.
*
* IF sy-um = 'OK_POST1'. "只有post才会将数据写入到表ZBATCH中
* INSERT zbatch FROM tab01.
* MIT WORK.
* ENDIF.
new_charg = batch_number.
测试验证:
采购件
根据当前系统日期带出批次编号,测试通过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAP 增强 实现 批次 自动 编号