程序代號: CMSB07
程序名稱: 取消庫位管理
Parent Class:
系統分析代號:
信息文件:BOMTD (R/W) 組合單單頭
BOMTE (R/W) 組合單單身
BOMTF (R/W) 拆解單單頭
BOMTG (R/W) 拆解單單身
CMSMA (R/W) 公用參數檔
CMSNI (R/W) 倉庫庫位檔
COPTH (R/W) 銷貨單單身信息檔
COPTJ (R/W) 銷退單單身信息檔
COPTO (R/W) 出貨通知單身檔
CUSTN (R/W) 交易單據單身檔
DHQTE (R/W) 調撥出庫單身檔
DHQTG (R/W) 調撥出庫到達單身檔
DHQTM (R/W) 調撥退庫到達單身檔
EPSTB (R/W) 出貨通知單身
EPSTC (R/W) 包裝明細信息檔
GMPTH (R/W) 留樣單信息檔
GMPTI (R/W) 留樣檢驗單頭信息檔
GMPTL (R/W) 養護檢驗單頭信息檔
INVMC (R/W) 品號倉庫檔
INVML (R/W) 品號倉庫庫位批號檔
INVTB (R/W) 交易單據單身檔
INVTC (R/W) 盤點底稿信息檔單身
INVTD (R/W) 盤點信息匯總檔
INVTG (R/W) 借出入調撥單身檔
INVTI (R/W) 借出入歸還單身檔
INVTK (R/W) 成本開賬/調整單身檔
INVTM (R/W) 報廢單單身檔
INVTO (R/W) 銷毀單單身檔
INVLA (R/W) 交易明細信息檔
INVLE (R/W) 品號月檔子單身
KBSMM (R/W) 看板序號維護單身檔
KBSTF (R/W) 刷讀產生生產入庫單單身檔
KBSTI (R/W) 刷讀產生調撥單單身檔
KBSTK (R/W) 刷讀產生銷貨單單身檔
MOCTE (R/W) 領/退料單身檔
MOCTG (R/W) 生產入庫單身檔
MOCTI (R/W) 委外進貨單身檔
MOCTL (R/W) 委外退貨單身檔
PURTH (R/W) 進貨單單身信息檔
PURTJ (R/W) 退貨單單身信息檔
QMSTA (R/W) 進貨檢驗單單頭檔
QMSTD (R/W) 委外進貨檢驗單單頭檔
QMSTG (R/W) 生產入庫檢驗單單頭檔
QMSTJ (R/W) 轉移檢驗單單頭檔
RMATD (R/W) 維修單單身檔
SFCTC (R/W) 轉移單單身檔
屏幕格式:
* 運行本作業將取消庫位管理,在進行取消之前,請做好數據的備份工作,防止因誤取消而帶來工作不便*
信息處理:
0.開啟程序時,做判斷
IF 啟用庫位管理(CMS.MA093)<>’Y’ THEN
SHOW MSG E+200483:”共用參數中未啟用庫位管理,不可運行該作業!”,不開啟該程序
ENDIF
按「直接處理」或「後台處理」後SHOW WARNING MSG
MSG CODE:W+200253,”運行本作業將取消庫位管理,在進行取消之前,請做好數據的備份工作,防止因誤取消而帶來工作不便!確定開始取消?”
1.BOM系統
1.1 BOMTD(組合單單頭)
UPDATE BOMTD SET TD022=’##########’
1.2 BOMTE(組合單單身)
UPDATE BOMTE SET TE015=’##########’
1.3 BOMTF(拆解單單頭)
UPDATE BOMTF SET TF021=’##########’
1.4 BOMTG(拆解單單身)
UPDATE BOMTG SET TG015=’##########’
2.CMS系統
2.1 CMSMA(公用參數檔)
UPDATE CMSMA SET MA093=’N’,MA096=’Y’
2.2 CMSNI(倉庫庫位檔)
DELETE CMSNI 關聯 倉庫信息檔(CMSMC) 得到QureyA 逐筆INSERT WHILE NOT QueryA.EOF DO INSERT CMSNI NI001 倉庫編號 = QueryA.MC001 NI002 庫位編號 = '##########' NI003 庫位說明 = '' NI004 有效碼 = QueryA.MC018 NI005 備注 = '' NI006 傳送碼 = 'N' NI007 傳送日期 = '' QueryA.NEXT END
3.COP系統
3.1 COPTH(銷貨單單身信息檔)
UPDATE COPTH SET TH056=’##########’
3.2 COPTJ(銷退單單身信息檔)
UPDATE COPTJ SET TJ057=’##########’
3.3 COPTO(出貨通知單身檔)
UPDATE COPTO SET TO039=’##########’
4.CUS系統
4.1 CUSTN(交易單據單身檔)
UPDATE CUSTN SET TN013=’##########’
5.DHQ系統
5.1 DHQTE(調撥出庫單身檔)
UPDATE DHQTE SET TE032=’##########’
5.2 DHQTG(調撥出庫到達單身檔)
UPDATE DHQTG SET TG029=’##########’
5.3 DHQTM(調撥退庫到達單身檔)
UPDATE DHQTM SET TM024=’##########’
6.EPS系統
6.1 EPSTB(出貨通知單身)
UPDATE EPSTB SET TB041=’##########’
6.2 EPSTC(包裝明細信息檔)
UPDATE EPSTC SET TC037=’##########’
7.GMP系統
7.1 GMPTH(留樣單信息檔)
UPDATE GMPTH SET TH027=’##########’
7.2 GMPTI(留樣檢驗單頭信息檔)
UPDATE GMPTI SET TI038=’##########’
7.3 GMPTL(養護檢驗單頭信息檔)
UPDATE GMPTL SET TL038=’##########’
8.INV系統
8.1 INVMC(品號倉庫檔)
UPDATE INVMC SET MC015=’##########’
8.2 INVML(品號倉庫庫位批號檔)
IF 數量表達方式(CMS.MA024)='1'單單位 OR '3'制造雙單位 THEN 關聯:品號倉庫庫位檔.品號+倉庫(INV.ML001+ML002) *= 品號倉庫檔.品號+倉庫(INV.MC001+MC002) 品號倉庫庫位檔.品號+批號(INV.ML001+ML004) *= 品號批號檔.品號+批號(INV.ME001+ME002) GROUP BY 品號(ML001)+倉庫(ML002)+批號(ML004) 排序:品號(ML001)+倉庫(ML002)+批號(ML004) Qty = SUM(INV.ML005) QtyPack = SUM(INV.ML006) ELSE 關聯:品號倉庫庫位檔.品號+倉庫(INV.ML001+ML002) *= 品號倉庫檔.品號+倉庫(INV.MC001+MC002) 品號倉庫庫位檔.品號+批號(INV.ML001+ML004) *= 品號批號檔.品號+批號(INV.ME001+ME002) 品號倉庫庫位檔.品號(INV.ML001) *= 品號基本信息檔.品號(INV.MB001) 品號基本信息檔.品號+小單位(INV.MB001+MB072) *= 品號換算單位檔.品號+換算單位(INV.MD001+MD002) GROUP BY 品號(ML001)+倉庫(ML002)+批號(ML004) 排序:品號(ML001)+倉庫(ML002)+批號(ML004) IF 換算率分子(MD003) is null OR 換算率分子(MD003)=0 OR 換算率分母(MD004)=0 Qty = SUM(INV.ML005) ELSE SIGN(INV.ML005)*FLOOR(ABS(INV.ML005)) AS ML005A 庫存數量整數位 INV.ML005-(SIGN(INV.ML005)*FLOOR(ABS(INV.ML005))) AS ML005B 庫存數量小數位 INVML_庫存量 = SUM((ML005A*MD003/MD004)+(ML005B*1000)) 加總換算成小單位數量 INVML_庫存量/MD003*MD004 ,取整數 AS ML005_A,取余數 AS ML005_B 換算成大單位數量 Qty = ML005_A+(ML005_B/1000,取小數三位) ENDIF QtyPack = 0 ENDIF 得到 QueryA 關聯 QueryA.品號+倉庫+批號(ML001+ML002+ML004) *= 品號倉庫庫位檔.品號+倉庫+批號(INV.ML001+ML002+ML004) ORDER BY 品號(ML001)+倉庫(ML002)+批號(ML004) GET MAX(ML008) AS ML008A, MAX(ML009) AS ML009A, MAX(ML010) AS ML010A 得到 QueryB DELETE INVML 逐筆 INSERT 品號倉庫庫位批號檔(INVML) ML001 品號 = QueryB.ML001 ML002 倉庫 = QueryB.ML002 ML003 庫位 = '##########' ML004 批號 = QueryB.ML004 ML005 庫存數量 = QueryB.Qty ML006 庫存包裝數量 = QueryB.QtyPack ML007 預留字段 = ML008 上次盤點日 = QueryB.ML008A ML009 最近入庫日 = QueryB.ML009A ML010 最近出庫日 = QueryB.ML010A ML011 備注 =
8.3 INVTB(交易單據單身檔)
UPDATE INVTB SET TB029=’##########’
UPDATE INVTB SET TB030=’##########’ WHERE TB013<>”
8.4 INVTC(盤點底稿信息檔單身)
UPDATE INVTC SET TC014=’##########’
8.5 INVTD(盤點信息匯總檔)
UPDATE INVTD SET TD017=’##########’
8.6 INVTG(借出入調撥單身檔)
UPDATE INVTG SET TG033=’##########’,TG034=’##########’
8.7 INVTI(借出入歸還單身檔)
UPDATE INVTI SET TI026=’##########’,TI027=’##########’
8.8 INVTK(成本開賬/調整單身檔)
UPDATE INVTK SET TK026=’##########’
8.9 INVTM(報廢單單身檔)
UPDATE INVTM SET TM026=’##########’ WHERE TM014<>”
UPDATE INVTM SET TM027=’##########’
8.10 INVTO(銷毀單單身檔)
UPDATE INVTO SET TO016=’##########’
8.11 INVLA(交易明細信息檔)
UPDATE INVLA SET LA023=’##########’
8.12 INVLE(品號月檔子單身)
IF 數量表達方式(CMS.MA024)=’1’單單位 OR ‘3’制造雙單位 THEN
關聯:品號月檔子單身.品號+庫存年月+倉庫+批號(INV.LE001+LE002+LE003+LE005) 條件:庫存年月(LE002)<=庫存現行年月(CMS.MA011) GROUP BY 品號(LE001)+庫存年月(LE002)+倉庫(LE003)+批號(LE005) ORDER BY 品號(LE001)+庫存年月(LE002)+倉庫(LE003)+批號(LE005) Q006 = SUM(INV.LE006) Q008 = SUM(INV.LE008) Q010 = SUM(INV.LE010) Q012 = SUM(INV.LE012) Q014 = SUM(INV.LE014) Q016 = SUM(INV.LE016) Q018 = SUM(INV.LE018) Q020 = SUM(INV.LE020) Q022 = SUM(INV.LE022) Q024 = SUM(INV.LE024) Q026 = SUM(INV.LE026) Q032 = SUM(INV.LE032) Q033 = SUM(INV.LE033) Q034 = SUM(INV.LE034) Q035 = SUM(INV.LE035) Q036 = SUM(INV.LE036) Q037 = SUM(INV.LE037) Q038 = SUM(INV.LE038) Q039 = SUM(INV.LE039) Q040 = SUM(INV.LE040) Q041 = SUM(INV.LE041) Q042 = SUM(INV.LE042) ELSE 關聯:品號月檔子單身.品號(INV.LE001) *= 品號基本信息檔.品號(INV.MB001) 品號基本信息檔.品號+小單位(INV.MB001+MB072) *= 品號換算單位檔.品號+換算單位(INV.MD001+MD002) 條件:庫存年月(LE002)<=庫存現行年月(CMS.MA011) GROUP BY 品號(LE001)+庫存年月(LE002)+倉庫(LE003)+批號(LE005) ORDER BY 品號(LE001)+庫存年月(LE002)+倉庫(LE003)+批號(LE005) IF 換算率分子(MD003) is null OR 換算率分子(MD003)=0 OR 換算率分母(MD004)=0 Q006 = SUM(INV.LE006) Q008 = SUM(INV.LE008) Q010 = SUM(INV.LE010) Q012 = SUM(INV.LE012) Q014 = SUM(INV.LE014) Q016 = SUM(INV.LE016) Q018 = SUM(INV.LE018) Q020 = SUM(INV.LE020) Q022 = SUM(INV.LE022) Q024 = SUM(INV.LE024) Q026 = SUM(INV.LE026) ELSE SIGN(INV.LE006)*FLOOR(ABS(INV.LE006)) AS LE006A 庫存數量整數位 INV.LE006-(SIGN(INV.LE006)*FLOOR(ABS(INV.LE006))) AS LE006B 庫存數量小數位 INVLE_LE006 = SUM((LE006A*MD003/MD004)+(LE006B*1000)) 加總換算成小單位數量 INVLE_LE006/MD003*MD004 ,取整數 AS LE006_A,取余數 AS LE006_B 換算成大單位數量 Q006 = LE006_A+(LE006_B/1000,取小數三位) Q008 ,Q010 ,Q012 ,Q014 ,Q016 ,Q018 ,Q020 ,Q022 ,Q024 ,Q026分別對應於 LE008,LE010,LE012,LE014,LE016,LE018,LE020,LE022,LE024,LE026同上處理 ENDIF Q032 = 0 Q033 = 0 Q034 = 0 Q035 = 0 Q036 = 0 Q037 = 0 Q038 = 0 Q039 = 0 Q040 = 0 Q041 = 0 Q042 = 0 ENDIF 得到 QueryA DELETE INVLE WHILE NOT QueryA.EOF DO LE001 品號 = QueryA.LE001 LE002 庫存年月 = QueryA.LE002 LE003 倉庫 = QueryA.LE003 LE004 庫位 = '##########' LE005 批號 = QueryA.LE005 LE006 月初數量 = QueryA.Q006 LE007 預留字段 = LE008 本月入庫數量 = QueryA.Q008 LE009 預留字段 = LE010 本月銷貨數量 = QueryA.Q010 LE011 預留字段 = LE012 本月領料數量 = QueryA.Q012 LE013 預留字段 = LE014 本月調撥(入)數量 = QueryA.Q014 LE015 預留字段 = LE016 本月調整(入)數量 = QueryA.Q016 LE017 預留字段 = LE018 本月出庫數量 = QueryA.Q018 LE019 預留字段 = LE020 本月銷退數量 = QueryA.Q020 LE021 預留字段 = LE022 本月退料數量 = QueryA.Q022 LE023 預留字段 = LE024 本月調撥(出)數量 = QueryA.Q024 LE025 預留字段 = LE026 本月調整(出)數量 = QueryA.Q026 LE027 預留字段 = LE028 預留字段 = LE029 預留字段 = LE030 預留字段 = LE031 預留字段 = LE032 月初包裝數量 = QueryA.Q032 LE033 本月入庫包裝數量 = QueryA.Q033 LE034 本月銷貨包裝數量 = QueryA.Q034 LE035 本月領料包裝數量 = QueryA.Q035 LE036 本月調撥(入)包裝數量 = QueryA.Q036 LE037 本月調整(入)包裝數量 = QueryA.Q037 LE038 本月出庫包裝數量 = QueryA.Q038 LE039 本月銷退包裝數量 = QueryA.Q039 LE040 本月退料包裝數量 = QueryA.Q040 LE041 本月調撥(出)包裝數量 = QueryA.Q041 LE042 本月調整(出)包裝數量 = QueryA.Q042 LE043 預留字段 = LE044 預留字段 = LE045 預留字段 = LE046 預留字段 = LE047 預留字段 = LE048 預留字段 = QueryA.NEXT ENDDO
9.KBS系統
9.1 KBSMM(看板序號維護單身檔)
UPDATE KBSMM SET MM014=’##########’
9.2 KBSTF(刷讀產生生產入庫單單身檔)
UPDATE KBSTF SET TF014=’##########’
9.3 KBSTI(刷讀產生調撥單單身檔)
UPDATE KBSTI SET TI015=’##########’,TI019=’##########’
9.4 KBSTK(刷讀產生銷貨單單身檔)
UPDATE KBSTK SET TK015=’##########’
10.MOC系統
10.1 MOCTE(領/退料單身檔)
UPDATE MOCTE SET TE025=’##########’
10.2 MOCTG(生產入庫單身檔)
UPDATE MOCTG SET TG036=’##########’
10.3 MOCTI(委外進貨單身檔)
UPDATE MOCTI SET TI060=’##########’
10.4 MOCTL(委外退貨單身檔)
UPDATE MOCTL SET TL040=’##########’
11.PUR系統
11.1 PURTH(進貨單單身信息檔)
UPDATE PURTH SET TH072=’##########’
11.2 PURTJ(退貨單單身信息檔)
UPDATE PURTJ SET TJ046=’##########’
12.QMS系統
12.1 QMSTA(進貨檢驗單單頭檔)
UPDATE QMSTA SET TA037=’##########’ WHERE TA036<>”
12.2 QMSTD(委外進貨檢驗單單頭檔)
UPDATE QMSTD SET TD037=’##########’ WHERE TD036<>”
12.3 QMSTG(生產入庫檢驗單單頭檔)
UPDATE QMSTG SET TG037=’##########’ WHERE TG036<>”
12.4 QMSTJ(轉移檢驗單單頭檔)
UPDATE QMSTJ SET TJ037=’##########’ WHERE TJ036<>”
13.RMA系統
13.1 RMATD(維修單單身檔)
UPDATE RMATD SET TD019=’##########’
14.SFC系統
14.1 SFCTC(轉移單單身檔)
UPDATE SFCTC SET TC056=’##########’