DROP TABLE TBIDB_FILE_OBJECT CREATE TABLE TBIDB_FILE_OBJECT ( IDB_OBJ_ID BIGINT NOT NULL, OBJ_ST_ID INTEGER NOT NULL, EXTENSION_TERM_ID BIGINT NOT NULL, RELPATH_TERM_ID BIGINT NOT NULL, ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'Digital Data', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(30), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_FILE_OBJECT PRIMARY KEY (IDB_OBJ_ID), CONSTRAINT FK_TBIDB_FILE_OBJECT_OBJSTID FOREIGN KEY (OBJ_ST_ID) REFERENCES TBIDB_OBJECT_STORE (GUID), CONSTRAINT FK_TBIDB_FILE_OBJECT_IDBOBJID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID), CONSTRAINT FK_TBIDB_FILE_OBJECT_EXTTID FOREIGN KEY (EXTENSION_TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID), CONSTRAINT FK_TBIDB_FILE_OBJECT_RPTID FOREIGN KEY (RELPATH_TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID) ) GO CREATE TRIGGER TBIDB_FILE_OBJECT_AFT_UPD ON TBIDB_FILE_OBJECT FOR UPDATE AS UPDATE TBIDB_FILE_OBJECT SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_FILE_OBJECT.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID GO -- ============================================= -- Author: DD MS 15.03.2021 -- Change date: -- ============================================= ALTER PROCEDURE [dbo].[PRIDB_NEW_OBJECT] @KIND_TYPE VARCHAR(20),@WHO VARCHAR(100),@BE VARCHAR(500) = '',@FOREIGN_REFID Bigint = 0, @IDB_OBJ_ID BIGINT OUTPUT AS BEGIN DECLARE @KINDTYPE_ID TINYINT, @BE_ID INTEGER SELECT @KINDTYPE_ID = GUID FROM TBIDB_OBJECT_KIND WHERE UPPER(KIND_NAME) = UPPER(@KIND_TYPE) IF @BE = '' SELECT @BE_ID = GUID FROM TBIDB_BUSINESS_ENTITY WHERE GUID = 1 ELSE SELECT @BE_ID = GUID FROM TBIDB_BUSINESS_ENTITY WHERE UPPER(TITLE) = UPPER(@BE) IF @FOREIGN_REFID <> 0 IF EXISTS(SELECT IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @FOREIGN_REFID) SELECT @IDB_OBJ_ID = IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @FOREIGN_REFID ELSE BEGIN INSERT INTO [dbo].[TBIDB_OBJECT] ([KIND_TYPE_ID],[REFERENCE_KEY],[ADDED_WHO]) VALUES (@KINDTYPE_ID,@FOREIGN_REFID,@WHO) END ELSE BEGIN INSERT INTO [dbo].[TBIDB_OBJECT] ([KIND_TYPE_ID],[ADDED_WHO]) VALUES (@KINDTYPE_ID,@WHO) END SELECT @IDB_OBJ_ID = MAX(IDB_OBJ_ID) FROM TBIDB_OBJECT IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_BE WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND BE_ID = @BE_ID) INSERT INTO TBIDB_OBJECT_BE (IDB_OBJ_ID,BE_ID, ADDED_WHO) VALUES (@IDB_OBJ_ID,@BE_ID, @WHO) END GO -- ============================================= -- Author: DD MS 15.03.2021 -- Change date: -- ============================================= ALTER PROCEDURE [dbo].[PRIDB_NEW_IDBFO] @REL_PATH VARCHAR(512),@WHO VARCHAR(100), @IDB_OBJ_ID BIGINT,@OBJ_ST_ID INT AS BEGIN DECLARE @FILENAME_EXT VARCHAR(250), @FILENAME_ONLY VARCHAR(250), @RELATIVE_PATH VARCHAR(512), @RELATIVE_PATH_ONLY VARCHAR(512), @EXT VARCHAR(10) SET @FILENAME_ONLY = CONVERT(VARCHAR(20),@IDB_OBJ_ID) + '.ddfo' --PRINT @FILENAME_ONLY --PRINT @REL_PATH SELECT @RELATIVE_PATH_ONLY = REPLACE(@REL_PATH,@FILENAME_ONLY,'') --PRINT 'PRIDB_NEW_IDBFO - @RELATIVE_PATH_ONLY1: ' + @RELATIVE_PATH_ONLY DECLARE @RELPATH_TERM_ID BIGINT,@EXTENSION_TERM_ID BIGINT EXEC PRIDB_NEW_TERM 'VARCHAR',@RELATIVE_PATH_ONLY,@WHO,@TERM_ID = @RELPATH_TERM_ID OUTPUT; SELECT @EXT = UPPER([dbo].[FNGetExtension] (@REL_PATH)); EXEC PRIDB_NEW_TERM 'VARCHAR',@EXT,@WHO,@TERM_ID = @EXTENSION_TERM_ID OUTPUT; --SELECT @FILENAME_EXT = [dbo].[FNGetFileName] (@REL_PATH); --SELECT @FILENAME_ONLY = [dbo].[FNGetFileNameWithoutExtension] (@REL_PATH); --SELECT @EXT = UPPER([dbo].[FNGetExtension] (@REL_PATH)); PRINT 'PRIDB_NEW_IDBFO: ' + @REL_PATH BEGIN IF NOT EXISTS(SELECT IDB_OBJ_ID FROM TBIDB_FILE_OBJECT WHERE IDB_OBJ_ID = @IDB_OBJ_ID) INSERT INTO [dbo].[TBIDB_FILE_OBJECT] ([IDB_OBJ_ID] ,[OBJ_ST_ID] ,EXTENSION_TERM_ID ,RELPATH_TERM_ID ,[ADDED_WHO]) VALUES (@IDB_OBJ_ID ,@OBJ_ST_ID ,@EXTENSION_TERM_ID ,@RELPATH_TERM_ID ,@WHO) ELSE BEGIN --PRINT 'OBJECT ' + CONVERT(VARCHAR(20),@IDB_OBJ_ID) + ' ALREADY EXISTING ---- So ONLY UPDATE WITH NEW FILE PARAMS' UPDATE TBIDB_FILE_OBJECT SET EXTENSION_TERM_ID = @EXTENSION_TERM_ID ,RELPATH_TERM_ID = @RELPATH_TERM_ID ,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_IDBFO - 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 ALTER VIEW [dbo].[VWIDB_CATEGORIES_PER_OBJECT_AND_LANGUAGE] AS select MD.IDB_OBJ_ID ,TLANG.LANGUAGE_ID ,TERM.TERM_VALUE ,TERM_ATTR.TERM_VALUE AS ATTRIBUTE_TITLE ,ATTR.GUID AS ATTRIBUTE_ID FROM TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN TBIDB_TERM_LANGUAGE TLANG ON TERM.GUID = TLANG.TEXT_TERM_ID INNER JOIN TBIDB_LANGUAGE_TERM_METADATA T1 ON TLANG.GUID = T1.LANG_TERM_ID INNER JOIN TBIDB_OBJECT_METADATA MD ON T1.GUID = MD.TEXT_TERM_LANG_ID INNER JOIN TBIDB_FLOW_SEARCH_CATEGORY_ATTRIBUTES CAT_ATTR ON MD.ATTR_ID = CAT_ATTR.ATTRIBUTE_ID INNER JOIN TBIDB_ATTRIBUTE ATTR ON CAT_ATTR.ATTRIBUTE_ID = ATTR.GUID INNER JOIN TBIDB_ATTRIBUTE_LANGUAGE ATTR_LANG ON ATTR.GUID = ATTR_LANG.ATTRIBUTE_ID INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM_ATTR ON ATTR_LANG.TERM_ID = TERM_ATTR.GUID WHERE CAT_ATTR.ACTIVE = 1 GO