CREATE PROC DBO.GEXBPM_ADDSIGN ( @BILLTAG VARCHAR(20), --單別 @BILLNO VARCHAR(20), --簽核單號 @SOURCEBILLNO VARCHAR(30), --原單單號(原單呼叫用, 可空白) @ADDTYPE SMALLINT, @PERSONID NVARCHAR(20) ) AS /* Function : FLOW 加簽時的更新資料程序 Description: 加簽事實上就是插行到指定列, @BILLNO 和 @SOURCEBILLNO 只能有一個有值 以 @BILLNO 優先 @ADDTYPE = 0 加入在目前待簽資料之前 3 加入在目前待簽資料之後 Build Date : 2012/11/14 Modify History Item Who Date Modify Docs ==== ========== ========== ================================================ 1 Michael 2013/07/13 修改新增的加簽欄號錯誤的問題 */ DECLARE @SEQ1 INT DECLARE @SEQ2 INT DECLARE @SEQ3 INT IF (@BILLNO = '') AND (@SOURCEBILLNO <> '') BEGIN SELECT @BILLNO=BILLNO FROM BPM_FLOWDATA_M WHERE BILLTAG = @BILLTAG AND SOURCEBILLNO = @SOURCEBILLNO END --取得簽核單目前的 [待簽] IF ISNULL(@BILLNO,'') <> '' BEGIN SELECT @SEQ1=SEQNO FROM BPM_FLOWDATA_D WHERE BILLNO = @BILLNO AND FLOWSTATUS = 0 IF @SEQ1 IS NULL SET @SEQ1 = 1 IF @ADDTYPE = 0 BEGIN SELECT @SEQ2=MAX(SEQNO) FROM BPM_FLOWDATA_D WHERE BILLNO = @BILLNO AND SEQNO < ISNULL(@SEQ1,1) IF @SEQ2 IS NULL SET @SEQ2 = 0 SET @SEQ3 = @SEQ2 + (@SEQ1-@SEQ2)/2 END ELSE BEGIN SELECT @SEQ2=MIN(SEQNO) FROM BPM_FLOWDATA_D WHERE BILLNO = @BILLNO AND SEQNO > ISNULL(@SEQ1,1) IF @SEQ2 IS NULL SET @SEQ2 = @SEQ1 + 10 SET @SEQ3 = @SEQ1 + (@SEQ2-@SEQ1)/2 END INSERT INTO BPM_FLOWDATA_D (BILLNO,SEQNO,SIGN_TITLE,SIGNPERSON,AGENTID,SENDMAIL,NOTIFY_ONLY,FLOWSTATUS) VALUES (@BILLNO,@SEQ3,'動態加簽',@PERSONID,'','Y','N',@ADDTYPE) --發送 MAIL 通知 EXEC GEX_SEND_FLOWMAIL 'S',@PERSONID, @BILLNO, '動態加簽' END