Files
SqlScripts/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.4.sql
2026-08-06 10:35:00 +02:00

32 lines
1.3 KiB
Transact-SQL

UPDATE TBDD_MODULES SET DB_VERSION = '3.4' where NAME = 'Process-Manager';
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PRTF_PROFILE_FILES_WORK] @pDocID BIGINT,@pProfilID INTEGER,@pUserID INTEGER, @pMode VARCHAR(100)
AS
BEGIN
-- Race Condition verhindern mit MERGE
MERGE TBTF_PROFILE_FILES_WORK AS target
USING (SELECT @pProfilID AS ProfileID, @pDocID AS DocID) AS source
ON (target.ProfileID = source.ProfileID AND target.DocID = source.DocID)
WHEN NOT MATCHED THEN
INSERT (ProfileID, DocID, Action_UserID, Action_When, InWork, Worked)
VALUES (@pProfilID, @pDocID, @pUserID, GETDATE(), 0, 0);
IF @pMode = 'FreeFile'
BEGIN
PRINT 'FreeFile ...'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0, Action_When = NULL, Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 1;
END
ELSE IF @pMode = 'InWork'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 1, Action_When = GETDATE(), Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 0;
ELSE IF @pMode = 'Worked'
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0,Worked = 1, Action_When = GETDATE(), Action_UserID = @pUserID
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0;
END