自从上了XX条码管理系统之后,针对新品必须手动去维护批号规则与条码规则,难免会忘记又无形中增加了大量的工作量。
故设想写一存储过程实现自动维护。同时利用JOB晚上自动更新。
USE [ZE]
GO
/****** Object: StoredProcedure [dbo].[DZ_Init_HY_CMSPDA] Script Date: 10/14/2016 13:10:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <David Gong>
-- Create date: <2016-09-30>
-- Modify by:
-- Description: <新品自动初始化品号批号与条码规则>
-- =============================================
ALTER PROCEDURE [dbo].[DZ_Init_HY_CMSPDA]
AS
BEGIN
INSERT INTO HY_CMSPDA
(PDA001
,PDA005
,PDA006
,PDA007 ,PDA008 ,PDA009
,PDA010 ,PDA011 ,PDA012
,PDA017
,PDA020 --批号规则
,PDA021
,PDA963
,PDA901 ,PDA902, PDA905)
SELECT RTRIM(MB001) --PDA001 品号
,CASE WHEN MB025 in('M','Y') THEN '1001' WHEN MB025 in('P','S') THEN '1002' ELSE '' END --【需确认】PDA005 产品条码规则编号 M/Y:1001 P/S:1002
,'0' --【需确认】PDA006 标签条码图类型 0.打印时选择 1.一维条码 2.二维条码
,0,0,0 --【需确认】PDA007 PDA008 PDA009 分别对应包装规则(小)的包装数量,包装规则(中)的包装数量,包装规则(大)的包装数量
,'','','' --【需确认】PDA010 PDA011 PDA012 分别对应包装规则(小)的规则编号,包装规则(中)的规则编号,包装规则(大)的规则编号,取HY_BARTMB.TMB001
,'N' --【需确认】PDA017 核心配件:Y.是,N.否
,'2001' --【需确认】PDA020 批号规则 M/P/S:2001
,'N' --【需确认】PDA021 是否启用核心配件收集:Y.收集,N.不收集
,'0' --【需确认】PDA963 供应商规则 0.不启用 1.小包装规则 2.中包装规则 3.大包装规则
,'DS' --登录帐号,可为空
,CONVERT(VARCHAR, GETDATE(), 121) --添加时间
,0 --更新次数
FROM dbo.INVMB WITH(NOLOCK)
WHERE LEFT(CREATE_DATE,8)>=CONVERT(CHAR(8),GETDATE(),112) --【新品】 -- GETDATE()
AND NOT EXISTS(SELECT 1 FROM HY_CMSPDA WHERE PDA001 = MB001) --【检核】 若存在则不允许写入,防止主键报错
END