LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【点晴模切ERP】SAP系统实现物料批次自动编号介绍

admin
2024年8月28日 10:29 本文热度 1485

批次编号处理

批次编号范围(将采用批次管理的物料分为两类,一类是自制件(E),另一类是采购件(F),对于既有自制、又有采购的,根据实际状况处理)

1、对于自制件,批次编号跟生产订单编号一致(使用出口来实现)

2、对于外购件,批次编号采用6位日期+3位流水码(使用出口来实现)

内部编号范围分配目前逻辑如下,根据物料的生产方式。

1、F->外购件-> 批次编号采用6位日期+3位流水号

  a. 对于1个物料来说,如果批次号码内部给号而不是手工输入,那么流水码从001 直到999,每次货物移动,流水码自动加1

  b. 对于不同的物料来说,比如之前有个物料使用了流水码180111000,如果MCH1物料+流水码查询不到记录,那么此物料仍然可以使用流水码180111000

2、E->外购件->批次编号采用生产订单编号

3、X->判断当前的生产订单编号是否为空

  a. 生产订单编号为空-> 6位日期+3位流水号

  b. 生产订单编号不为空->生产订单编号(生产订单编号采用10位,前两位为工厂代码)

对于增强批次自动编号说一下我的理解:

用户出口 SAPLVO1Z 是用户自动分配批次号码(内部给号的),并且只有在配置了基于移动类型生成新批次,并且设置成 B,此出口才会被触发,所有的配置 B 的移动类型,在用 MIGO 进行货物移动时,都会触发增强的逻辑,并且增强逻辑只对(没有输入批次号码)这种情况下才生效。

集团配置的自动创建批次移动类型为 101、103、501:

 

对于批次,整个集团的规则是,批次号码均是自动生成,只有特殊情况才可以手工输入(561初始化,以及盘盈 701、711):

1、只有收货(101、103、501-仅限采购件),才能自动产生新批次(设置成B-Automatic/Manual and check in USER EXIT),其他的移动类型都要设成G-no creation。

2、对于消耗的移动类型(201、261、281、601、541、543),批次都是根据批次确定规则(FIFO&剩余货架寿命),自动排出批次(在 migo里面也要配置增强,如果输入的批次号不在 MCH1 或者 MCHA 中会报错),且不允许产生新批次->全部设成G-no creation,且需要配置批次确定规则。

3、对于移库类(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-no creation,且不需要配置批次确定规则。

4、对于 561,并不设置内部检查规则(即采用默认配置),对于561初始化库存时,批次可以手工输入。

5、对于701(盘盈),理论上,所有的盘盈并不会产生新批次,如果真的产生新批次的物料,批次可以手工输入,即701也采用默认配置。

CMOD 创建增强项目

 

注:EXIT_SAPLV01Z_001 &EXIT_SAPLV01Z_002适用于内部给号的情况。

 

对出口 EXIT_SAPLV01Z_002 加代码。

 

源代码

*&-----------*

*& Include ZXVBZU02

*& 内部编号范围分配目前逻辑如下

*& 根据物料的生产方式

*& F->外购件->批次编号采用6位日期+3位流水号

*& 流水号含义->对于1个物料来说如果批次号码内部给号而不是手工输入,那么流水码从 001 直到999,

*& 每次货物移动,流水码自动加1

*& 对于不同的物料来说,比如之前有个物料使用了流水码180111001 如果MCH1 物料+流水码

*& 查询不到记录,那么此物料仍然可以使用流水码180111001

*& E->外购件->批次编号采用生产订单编号

*& X->判断当前的生产订单编号是否为空

*& 生产订单编号为空 -> 位日期+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) TYPEn. "前一个流水号

DATA cur_flow_number(3) TYPEn. "当前流水号

DATA zbeskz TYPE marc-beskz. "采购方式

CLEAR batch_number.   "批次号码

CLEAR pre_flow_number.

CLEAR cur_flow_number.

CLEAR tab01.

"首先获取物料的采购方式

SELECT SINGLE marc~beskzINTO zbeskzFROM marc WHERE marc~werks = x_bncom-werks AND marc~matnr = x bncom-matnr.

"首先获取当前日期,当前物料下,该物料的最大批次号

CASE zbeskz.

WHEN 'F'.          "外购件,使用流水码的批次号

SELECT MAX( charg ) INTObatch_number FROM MCH1 WHERE matnr = x_bn

com-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 中

CONCATENATEsy-datum+2(6) cur_flow_number INTObatch_number "当前日期后6位+当前流水号作为当前的批次号码

WHEN 'E'.

    IF x_bncom-bwart <> '101' or x_bncom-bwart <> '103'.

    MESSAGE e001(00)WITH'Please input batch number!'.

    ELSE.

    batch_number = x_bncom-aufnr.

    ENDIF.

WHEN 'X'.

    IF x_bncom-aufnr IS INITIAL.

    SELECT MAX( charg) INTObatch_number FROM zbatch WHERE matnr = x

    bncom-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_bncom-bwart <> '101' or x_bncom-bwart <> '103'.

    MESSAGE e001(00)WITH'Please input batch number! Finished Goods auto batch numer only allowed for mvt 101'.

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.

* APPEND tab01.

*

* IF sy-ucomm = 'OK_POST1'. "只有post才会将数据写入到表 ZBATCH 中

* INSERT zbatch FROM tab01.

* COMMIT WORK.

* ENDIF.

new_charg = batch_number.

测试验证:

采购件

 

根据当前系统日期带出批次编号,测试通过。



点晴模切ERP更多信息:http://moqie.clicksun.cn,联系电话:4001861886

该文章在 2024/8/28 10:54:49 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved