I've set up a form with defaults that are required as input for getting a document number through a stored procedure.
And I set up the lookup rules as follows:
Here's the stored procedure:
USE [dbTest] GO /****** Object: StoredProcedure [dbo].[gNDNBY] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[gNDNBY] -- Add the parameters for the stored procedure here @i_docIdId int = NULL, @i_docId varchar(4), @i_docRev varchar(40) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; Declare @systemYear as int; SET @systemYear = CAST(YEAR(GETDATE()) AS int); Declare @currentYear as int; SELECT @currentYear = currentYear FROM dbo.gNDNBY WHERE docIdId = @i_docIdId; IF (@systemYear=@currentYear) BEGIN BEGIN TRANSACTION; UPDATE dbo.gNDNBY WITH (TABLOCK,UPDLOCK) SET docNumber = docNumber + 1 WHERE docIdId = @i_docIdId; SELECT dNBYC FROM dbo.gNDNBY WHERE docId = @i_docId; COMMIT TRANSACTION; END ELSE BEGIN BEGIN TRANSACTION; UPDATE dbo.gNDNBY WITH (TABLOCK,UPDLOCK) SET currentYear = @systemYear, docNumber=0 WHERE docIdId = @i_docIdId; COMMIT TRANSACTION; BEGIN TRANSACTION; UPDATE dbo.gNDNBY WITH (TABLOCK,UPDLOCK) SET docNumber = docNumber + 1 WHERE docIdId = @i_docIdId; SELECT dNBYC FROM dbo.gNDNBY WHERE docId = @i_docId; COMMIT TRANSACTION; END END
It gives me the correct number, but skips to every third number. Any ideas why this could be happening?