UPDATE TBIDB_BASE SET CONFIG_VALUE = '1.1.0' where CONFIG_NAME = 'DB_VERSION' GO ALTER TABLE TBIDB_DOC_INFO ADD RELATIVE_PATH_ONLY_TERM BIGINT; ALTER TABLE TBIDB_DOC_INFO ADD EXTENSION_TERM BIGINT; DECLARe @RELPATH VARCHAR(5000),@IDBOBJID BIGINT,@Extens VARCHAR(10) DECLARE cursor1 CURSOR FOR Select IDB_OBJ_ID, RELATIVE_PATH_ONLY,EXTENSION from TBIDB_DOC_INFO OPEN cursor1 FETCH NEXT FROM cursor1 INTO @IDBOBJID,@RELPATH,@Extens WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @TERMID BIGINT EXECUTE [dbo].[PRIDB_NEW_TERM] 'Varchar',@RELPATH,'Digital Data', @TERM_ID = @TERMID OUTPUT DECLARE @TERM_EXTENS BIGINT EXECUTE [dbo].[PRIDB_NEW_TERM] 'Varchar',@Extens,'Digital Data', @TERM_ID = @TERM_EXTENS OUTPUT UPDATE TBIDB_DOC_INFO SET RELATIVE_PATH_ONLY_TERM = @TERMID, EXTENSION_TERM = @TERM_EXTENS, CHANGED_WHO = 'Digital Data' WHERE IDB_OBJ_ID = @IDBOBJID FETCH NEXT FROM cursor1 INTO @IDBOBJID,@RELPATH,@Extens END CLOSE cursor1 DEALLOCATE cursor1 GO ALTER TABLE TBIDB_DOC_INFO ALTER COLUMN RELATIVE_PATH_ONLY_TERM BIGINT NOT NULL; ALTER TABLE TBIDB_DOC_INFO ALTER COLUMN EXTENSION_TERM BIGINT NOT NULL; ALTER TABLE TBIDB_DOC_INFO ADD CONSTRAINT FKTBIDB_DOC_INFO_RELATIVEPATHONLYTERM FOREIGN KEY (RELATIVE_PATH_ONLY_TERM) REFERENCES TBIDB_TERM_VALUE_VARCHAR(GUID); ALTER TABLE TBIDB_DOC_INFO ADD CONSTRAINT FKTBIDB_DOC_INFO_EXTENSIONTERM FOREIGN KEY (EXTENSION_TERM) REFERENCES TBIDB_TERM_VALUE_VARCHAR(GUID); ALTER TABLE TBIDB_DOC_INFO DROP COLUMN RELATIVE_PATH_ONLY; ALTER TABLE TBIDB_DOC_INFO DROP COLUMN EXTENSION; USE [IDB_TEST] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: DD MS -- Changed: 01.11.2021 MS TERM_COLUMNS -- Changed: 10.08.2020 MS Anpassung -- ============================================= ALTER PROCEDURE [dbo].[PRIDB_NEW_DOCUMENT] @OBJ_ST_ID INT, @REL_PATH VARCHAR(512),@WHO VARCHAR(100), @REF_DOCID BIGINT = 0, @BE VARCHAR(500) = '', @IDB_OBJ_ID BIGINT OUTPUT AS BEGIN DECLARE @SHARE_PATH VARCHAR(100), @OBJ_STORE_PATH VARCHAR(250), @NEW_FULL_PATH VARCHAR(512), @FILENAME_EXT VARCHAR(250), @FILENAME_ONLY VARCHAR(250), @RELATIVE_PATH VARCHAR(512), @RELATIVE_PATH_ONLY VARCHAR(512), @EXT VARCHAR(10) SELECT @SHARE_PATH = T.CAT_STRING, @OBJ_STORE_PATH = T1.OBJ_PATH FROM TBIDB_CATALOG T, TBIDB_OBJECT_STORE T1 WHERE T1.CAT_ID = T.GUID AND T1.GUID = @OBJ_ST_ID SET @NEW_FULL_PATH = UPPER(@SHARE_PATH + '\' + @OBJ_STORE_PATH + '\' + @REL_PATH) SET @NEW_FULL_PATH = REPLACE(@NEW_FULL_PATH,'\\','') SET @RELATIVE_PATH = UPPER(@REL_PATH) PRINT 'PRIDB_NEW_DOCUMENT - @NEW_FULL_PATH: ' + @NEW_FULL_PATH PRINT 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH: ' + @RELATIVE_PATH --SELECT @RELATIVE_PATH_ONLY = [dbo].[FNGetDirectoryPath] (@NEW_FULL_PATH); --PRINT 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH_ONLY1: ' + @RELATIVE_PATH_ONLY SELECT @FILENAME_EXT = [dbo].[FNGetFileName] (@NEW_FULL_PATH); SELECT @FILENAME_ONLY = [dbo].[FNGetFileNameWithoutExtension] (@NEW_FULL_PATH); SELECT @EXT = UPPER([dbo].[FNGetExtension] (@NEW_FULL_PATH)); SET @RELATIVE_PATH_ONLY = REPLACE(@REL_PATH,'\' + @FILENAME_EXT,'') PRINT 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH_ONLY: ' + @RELATIVE_PATH_ONLY DECLARE @RELATIVE_PATH_ONLY_TERM BIGINT,@EXTENSION_TERM BIGINT EXECUTE [dbo].[PRIDB_NEW_TERM] 'Varchar',@RELATIVE_PATH_ONLY,@WHO, @TERM_ID = @RELATIVE_PATH_ONLY_TERM OUTPUT EXECUTE [dbo].[PRIDB_NEW_TERM] 'Varchar',@EXT,@WHO, @TERM_ID = @EXTENSION_TERM OUTPUT --PRINT '@EXT: ' + @EXT --IF NOT EXISTS(SELECT [IDB_OBJ_ID] FROM [TBIDB_DOC_INFO] WHERE [OBJ_ST_ID] = @OBJ_ST_ID AND UPPER([RELATIVE_PATH]) = @RELATIVE_PATH) EXEC PRIDB_NEW_OBJECT 'DOC',@WHO,@BE,@REF_DOCID, @IDB_OBJ_ID = @IDB_OBJ_ID OUTPUT; PRINT 'PRIDB_NEW_DOCUMENT - @IDB_OBJ_ID from PRIDB_NEW_OBJECT: ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID) BEGIN IF NOT EXISTS(SELECT IDB_OBJ_ID FROM [TBIDB_DOC_INFO] WHERE IDB_OBJ_ID = @IDB_OBJ_ID) INSERT INTO [dbo].[TBIDB_DOC_INFO] ([IDB_OBJ_ID] ,[OBJ_ST_ID] ,[FILENAME_ONLY] ,RELATIVE_PATH ,RELATIVE_PATH_ONLY_TERM ,EXTENSION_TERM ,[ADDED_WHO]) VALUES (@IDB_OBJ_ID ,@OBJ_ST_ID ,@FILENAME_ONLY ,@RELATIVE_PATH ,@RELATIVE_PATH_ONLY_TERM ,@EXTENSION_TERM ,@WHO) ELSE BEGIN PRINT 'OBJECT ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID) + ' ALREADY EXISTING ---- So ONLY UPDATE WITH NEW FILE PARAMS' UPDATE [TBIDB_DOC_INFO] SET [FILENAME_EXT] = @FILENAME_EXT,[FILENAME_ONLY] = @FILENAME_ONLY ,@EXTENSION_TERM = @EXTENSION_TERM ,[RELATIVE_PATH] = @RELATIVE_PATH ,RELATIVE_PATH_ONLY_TERM = @RELATIVE_PATH_ONLY_TERM ,CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID IF EXISTS(SELECT IDB_OBJ_ID FROM TBIDB_OBJECT WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND DELETED = 1) BEGIN PRINT 'PRIDB_NEW_DOCUMENT - IDB_OBJ_ID: ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID) + ' DELETED FLAG ACTIVE!!' UPDATE TBIDB_OBJECT SET DELETED = 0 WHERE IDB_OBJ_ID = @IDB_OBJ_ID END END END END GO