【點(diǎn)晴模切ERP】SAP系統(tǒng)實(shí)現(xiàn)物料批次自動(dòng)編號(hào)介紹
當(dāng)前位置:點(diǎn)晴教程→點(diǎn)晴ERP企業(yè)管理信息系統(tǒng)
→『 倉庫管理 』
批次編號(hào)處理 批次編號(hào)范圍(將采用批次管理的物料分為兩類,一類是自制件(E),另一類是采購件(F),對(duì)于既有自制、又有采購的,根據(jù)實(shí)際狀況處理) 1、對(duì)于自制件,批次編號(hào)跟生產(chǎn)訂單編號(hào)一致(使用出口來實(shí)現(xiàn)) 2、對(duì)于外購件,批次編號(hào)采用6位日期+3位流水碼(使用出口來實(shí)現(xiàn)) 內(nèi)部編號(hào)范圍分配目前邏輯如下,根據(jù)物料的生產(chǎn)方式。 1、F->外購件-> 批次編號(hào)采用6位日期+3位流水號(hào) a. 對(duì)于1個(gè)物料來說,如果批次號(hào)碼內(nèi)部給號(hào)而不是手工輸入,那么流水碼從001 直到999,每次貨物移動(dòng),流水碼自動(dòng)加1 b. 對(duì)于不同的物料來說,比如之前有個(gè)物料使用了流水碼180111000,如果MCH1物料+流水碼查詢不到記錄,那么此物料仍然可以使用流水碼180111000 2、E->外購件->批次編號(hào)采用生產(chǎn)訂單編號(hào) 3、X->判斷當(dāng)前的生產(chǎn)訂單編號(hào)是否為空 a. 生產(chǎn)訂單編號(hào)為空-> 6位日期+3位流水號(hào) b. 生產(chǎn)訂單編號(hào)不為空->生產(chǎn)訂單編號(hào)(生產(chǎn)訂單編號(hào)采用10位,前兩位為工廠代碼) 對(duì)于增強(qiáng)批次自動(dòng)編號(hào)說一下我的理解: 用戶出口 SAPLVO1Z 是用戶自動(dòng)分配批次號(hào)碼(內(nèi)部給號(hào)的),并且只有在配置了基于移動(dòng)類型生成新批次,并且設(shè)置成 B,此出口才會(huì)被觸發(fā),所有的配置 B 的移動(dòng)類型,在用 MIGO 進(jìn)行貨物移動(dòng)時(shí),都會(huì)觸發(fā)增強(qiáng)的邏輯,并且增強(qiáng)邏輯只對(duì)(沒有輸入批次號(hào)碼)這種情況下才生效。 集團(tuán)配置的自動(dòng)創(chuàng)建批次移動(dòng)類型為 101、103、501:
對(duì)于批次,整個(gè)集團(tuán)的規(guī)則是,批次號(hào)碼均是自動(dòng)生成,只有特殊情況才可以手工輸入(561初始化,以及盤盈 701、711): 1、只有收貨(101、103、501-僅限采購件),才能自動(dòng)產(chǎn)生新批次(設(shè)置成B-Automatic/Manual and check in USER EXIT),其他的移動(dòng)類型都要設(shè)成G-no creation。 2、對(duì)于消耗的移動(dòng)類型(201、261、281、601、541、543),批次都是根據(jù)批次確定規(guī)則(FIFO&剩余貨架壽命),自動(dòng)排出批次(在 migo里面也要配置增強(qiáng),如果輸入的批次號(hào)不在 MCH1 或者 MCHA 中會(huì)報(bào)錯(cuò)),且不允許產(chǎn)生新批次->全部設(shè)成G-no creation,且需要配置批次確定規(guī)則。 3、對(duì)于移庫類(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。。)如果物料有用到批次管理,會(huì)檢查輸入的批次是否存在,如果不存在,會(huì)報(bào)錯(cuò),也是在MIGO 增強(qiáng)里面做檢查,因?yàn)橐茙炜赡軟]法使用 FIFO 規(guī)則。且不允許產(chǎn)生新批次->全部設(shè)成G-no creation,且不需要配置批次確定規(guī)則。 4、對(duì)于 561,并不設(shè)置內(nèi)部檢查規(guī)則(即采用默認(rèn)配置),對(duì)于561初始化庫存時(shí),批次可以手工輸入。 5、對(duì)于701(盤盈),理論上,所有的盤盈并不會(huì)產(chǎn)生新批次,如果真的產(chǎn)生新批次的物料,批次可以手工輸入,即701也采用默認(rèn)配置。 CMOD 創(chuàng)建增強(qiáng)項(xiàng)目
注:EXIT_SAPLV01Z_001 &EXIT_SAPLV01Z_002適用于內(nèi)部給號(hào)的情況。
對(duì)出口 EXIT_SAPLV01Z_002 加代碼。 源代碼 *&-----------* *& Include ZXVBZU02 *& 內(nèi)部編號(hào)范圍分配目前邏輯如下 *& 根據(jù)物料的生產(chǎn)方式 *& F->外購件->批次編號(hào)采用6位日期+3位流水號(hào) *& 流水號(hào)含義->對(duì)于1個(gè)物料來說如果批次號(hào)碼內(nèi)部給號(hào)而不是手工輸入,那么流水碼從 001 直到999, *& 每次貨物移動(dòng),流水碼自動(dòng)加1 *& 對(duì)于不同的物料來說,比如之前有個(gè)物料使用了流水碼180111001 如果MCH1 物料+流水碼 *& 查詢不到記錄,那么此物料仍然可以使用流水碼180111001 *& E->外購件->批次編號(hào)采用生產(chǎn)訂單編號(hào) *& X->判斷當(dāng)前的生產(chǎn)訂單編號(hào)是否為空 *& 生產(chǎn)訂單編號(hào)為空 -> 位日期+3位流水號(hào) *& 生產(chǎn)訂單編號(hào)不為空->生產(chǎn)訂單編號(hào) *&--------------------------* 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. "前一個(gè)流水號(hào) DATA cur_flow_number(3) TYPEn. "當(dāng)前流水號(hào) DATA zbeskz TYPE marc-beskz. "采購方式 CLEAR batch_number. "批次號(hào)碼 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. "首先獲取當(dāng)前日期,當(dāng)前物料下,該物料的最大批次號(hào) CASE zbeskz. WHEN 'F'. "外購件,使用流水碼的批次號(hào) SELECT MAX( charg ) INTObatch_number FROM MCH1 WHERE matnr = x_bn com-matnr AND ERSDA=sy-datum. IF batch_number IS INITIAL "如果當(dāng)天的批次號(hào)不存在,那么當(dāng)前流水號(hào)為001 cur_flow_number ='001'. ELSE. pre_flow_number = batch_number+6(3). "如果當(dāng)天的批次存在,那么前一個(gè)流水號(hào)=取到的流水號(hào) cur_flow_number = pre_flow_number+1. "當(dāng)前流水號(hào)=前一個(gè)流水號(hào)+1 ENDIF. "將此次的批次信息插入到表ZBATCH 中 CONCATENATEsy-datum+2(6) cur_flow_number INTObatch_number "當(dāng)前日期后6位+當(dāng)前流水號(hào)作為當(dāng)前的批次號(hào)碼 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. "如果當(dāng)天的批次號(hào)不存在,那么當(dāng)前流水號(hào)為001 cur_flow_number ='001'. ELSE. pre_flow_number = batch_number+6(3). "如果當(dāng)天的批次存在,那么前一個(gè)流水號(hào)=取到的流水號(hào) cur_flow_number = pre_flow_number+1 "當(dāng)前流水號(hào)=前一個(gè)流水號(hào)+1 ENDIF. "將此次的批次信息插入到表ZBATCH 中 CONCATENATE sy-datum+2(6) cur_flow_number INTO batch_number "當(dāng)前日期后6位+當(dāng)前流水號(hào)作為當(dāng)前的批次號(hào)碼 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才會(huì)將數(shù)據(jù)寫入到表 ZBATCH 中 * INSERT zbatch FROM tab01. * COMMIT WORK. * ENDIF. new_charg = batch_number. 測(cè)試驗(yàn)證: 采購件
根據(jù)當(dāng)前系統(tǒng)日期帶出批次編號(hào),測(cè)試通過。 點(diǎn)晴模切ERP更多信息:http://moqie.clicksun.cn,聯(lián)系電話:4001861886 該文章在 2024/8/28 10:54:49 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |