From 7df6439f4044a049490ffba55419027d15a2bffd Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Fri, 25 Feb 2022 14:56:45 +0100 Subject: [PATCH] MS --- 00_DD/DD_ECM.sql | 40 +- 00_IDB/CreateDBObjects.sql | 734 ++++++++++++++++++++---------- 00_IDB/Development/TextSearch.sql | 117 +++++ 00_IDB/Fulltext.sql | 19 + 04_APPSERV/INSERT_JOBS.sql | 7 + 10_Monitor/CreateDBObjects.sql | 55 +++ 6 files changed, 730 insertions(+), 242 deletions(-) create mode 100644 00_IDB/Development/TextSearch.sql create mode 100644 00_IDB/Fulltext.sql create mode 100644 10_Monitor/CreateDBObjects.sql diff --git a/00_DD/DD_ECM.sql b/00_DD/DD_ECM.sql index a74f0ea..e1fac4f 100644 --- a/00_DD/DD_ECM.sql +++ b/00_DD/DD_ECM.sql @@ -32,6 +32,40 @@ AS GO INSERT INTO TBDD_BASECONFIG (GUID,WD_UNICODE,DB_VERSION) VALUES (1,1,'1.9.0.0') GO +CREATE TABLE [dbo].[TBDD_3RD_PARTY_MODULES]( + [GUID] [int] IDENTITY(1,1) NOT NULL, + [ACTIVE] [bit] NOT NULL, + [NAME] [varchar](50) NOT NULL, + [DESCRIPTION] [varchar](500) NULL, + [LICENSE] [varchar](max) NOT NULL, + [VERSION] [varchar](20) NOT NULL, + [STRING1] [varchar](100) NULL, + [STRING2] [varchar](100) NULL, + [STRING3] [varchar](100) NULL, + [STRING4] [varchar](100) NULL, + [STRING5] [varchar](100) NULL, + [STRING6] [varchar](100) NULL, + [STRING7] [varchar](100) NULL, + [STRING8] [varchar](100) NULL, + [STRING9] [varchar](100) NULL, + [STRING10] [varchar](100) NULL, + [ADDED_WHO] [varchar](50) NULL, + [ADDED_WHEN] [datetime] NULL, + [CHANGED_WHO] [varchar](50) NULL, + [CHANGED_WHEN] [datetime] NULL +) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] +GO + +ALTER TABLE [dbo].[TBDD_3RD_PARTY_MODULES] ADD CONSTRAINT [DF_TBDD_3RD_PARTY_MODULES_ACTIVE] DEFAULT ((0)) FOR [ACTIVE] +GO + +ALTER TABLE [dbo].[TBDD_3RD_PARTY_MODULES] ADD CONSTRAINT [DF_TBDD_3RD_PARTY_MODULES_VERSION] DEFAULT ('1.0.0.0') FOR [VERSION] +GO +INSERT INTO TBDD_3RD_PARTY_MODULES (ACTIVE,NAME,LICENSE) VALUES (1,'GDPICTURE','21182889975216572111813147150675976632') +GO + + + CREATE TABLE TBDD_SERV_EXT_PROGRAMS ( GUID TINYINT, @@ -486,7 +520,7 @@ CONSTRAINT FK_TBDD_VERSION_USER_UPDATE_UPDATE_ID FOREIGN KEY (UPDATE_ID) REFE GO -CREATE TRIGGER [dbo].[TBDD_USER_AFT_INS] ON [dbo].[TBDD_USER] +CREATE OR ALTER TRIGGER [dbo].[TBDD_USER_AFT_INS] ON [dbo].[TBDD_USER] WITH EXECUTE AS CALLER FOR INSERT AS @@ -512,8 +546,8 @@ BEGIN TRY UPDATE TBDD_USER SET USERID_FK_INT_ECM = @ECM_USR_ID FROM INSERTED WHERE TBDD_USER.GUID = INSERTED.GUID - - -- SELECT @CLIENT_COUNT = COUNT(*) FROM TBDD_CLIENT + EXEC IDB.dbo.PRIDB_NEW_CATALOG_USER @USER_ID; + -- SELECT @CLIENT_COUNT = COUNT(*) FROM TBDD_CLIENT -- IF @CLIENT_COUNT = 1 -- BEGIN -- SELECT @CLIENT_COUNT = GUID FROM TBDD_CLIENT diff --git a/00_IDB/CreateDBObjects.sql b/00_IDB/CreateDBObjects.sql index 883d8f1..88a1f60 100644 --- a/00_IDB/CreateDBObjects.sql +++ b/00_IDB/CreateDBObjects.sql @@ -37,6 +37,52 @@ CREATE TABLE TBIDB_CATALOG CONSTRAINT UQ_TBIDB_CATALOG_TITLE UNIQUE (CAT_TITLE) ) GO +CREATE TABLE TBIDB_CATALOG_USER +( + GUID INTEGER NOT NULL IDENTITY (1, 1), + USR_ID INTEGER NOT NULL, + CAT_TITLE VARCHAR(100) NOT NULL, + CAT_STRING VARCHAR(900) NOT NULL, + ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM', + ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), + CHANGED_WHO VARCHAR(30), + CHANGED_WHEN DATETIME, + CONSTRAINT PK_TBIDB_CATALOG_USER PRIMARY KEY (GUID), + CONSTRAINT UQ_TBIDB_CATALOG_USER UNIQUE (USR_ID,CAT_TITLE) +) +GO +CREATE TRIGGER TBIDB_CATALOG_USER_AFT_UPD ON TBIDB_CATALOG_USER +FOR UPDATE +AS + UPDATE TBIDB_CATALOG_USER SET CHANGED_WHEN = GETDATE() + FROM INSERTED + WHERE TBIDB_CATALOG_USER.GUID = INSERTED.GUID +GO +CREATE TABLE TBIDB_FULLTEXT_OBJECT +( + GUID BIGINT NOT NULL IDENTITY (1, 1), + OBJECT_ID BIGINT NOT NULL, + FULL_TEXT NVARCHAR(MAX) NOT NULL, + CAT_ID INTEGER NOT NULL, + ADDED_WHO BIGINT, + ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(), + CHANGED_WHO BIGINT, + CHANGED_WHEN DATETIME, + CONSTRAINT PK_TBIDB_FULLTEXT_OBJECT PRIMARY KEY (GUID), + CONSTRAINT UN_TBIDB_FULLTEXT_OBJECT UNIQUE(OBJECT_ID,CAT_ID), + CONSTRAINT FK_TBIDB_FULLTEXT_OBJECT_CAT_ID FOREIGN KEY (CAT_ID) REFERENCES TBIDB_CATALOG (GUID), + CONSTRAINT FK_TBIDB_FULLTEXT_OBJECT_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID), + CONSTRAINT FK_TBIDB_FULLTEXT_OBJECT_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),) +GO +CREATE TRIGGER TBIDB_FULLTEXT_OBJECT_AFT_UPD ON TBIDB_FULLTEXT_OBJECT +FOR UPDATE +AS + UPDATE TBIDB_FULLTEXT_OBJECT SET CHANGED_WHEN = GETDATE() + FROM INSERTED + WHERE TBIDB_FULLTEXT_OBJECT.GUID = INSERTED.GUID +GO + + INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('DB_VERSION','1.0.4.1') GO INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('FILESTORE_PRAEFIX','\\IDB\OBJECTS') @@ -47,11 +93,20 @@ INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('DOCTYPE_CHANGED1','QUE GO INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('DOCTYPE_CHANGED2','AUTO VERSION') GO +INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('FULLTEXT_OCR','EXTRACTED FULLTEXT') +GO +INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('FULLTEXT_MANUAL1','MANUAL FULLTEXT1') +GO +INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('FULLTEXT_MANUAL2','MANUAL FULLTEXT2') +GO --INSERT INTO [TBIDB_CATALOG] ([CAT_TITLE],[CAT_STRING]) VALUES ('APPSERV1','172.24.12.39') --GO INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('GHOST_SELECT',' SELECT T.USERNAME,T.NAME, T.[PRENAME],T.EMAIL FROM @MY_DD_ECM_DB.dbo.TBDD_USER T ORDER BY USERNAME') GO +INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('AD_GROUP_ADMIN1','NONE') +GO + CREATE TRIGGER TBIDB_CATALOG_AFT_UPD ON TBIDB_CATALOG FOR UPDATE AS @@ -111,6 +166,8 @@ AS FROM INSERTED WHERE TBIDB_DOCTYPE_OBJECT_STORE.GUID = INSERTED.GUID GO + + CREATE TABLE TBIDB_DOCTYPE_HANDLING ( GUID INT NOT NULL IDENTITY (1, 1), @@ -138,12 +195,14 @@ CREATE TABLE TBIDB_TERM_VALUE_VARCHAR ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE VARCHAR(900) NOT NULL, + TERM_VALUE_REVERSE VARCHAR(900), ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'Digital Data', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_VARCHAR PRIMARY KEY (GUID), - CONSTRAINT UQ_TBIDB_TERM_VALUE_VARCHAR UNIQUE (TERM_VALUE) + CONSTRAINT UQ_TBIDB_TERM_VALUE_VARCHAR UNIQUE (TERM_VALUE), + CONSTRAINT UQ_TBIDB_TERM_VALUE_VARCHAR UNIQUE (TERM_VALUE_REVERSE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_VARCHAR_AFT_UPD ON TBIDB_TERM_VALUE_VARCHAR @@ -153,6 +212,13 @@ AS FROM INSERTED WHERE TBIDB_TERM_VALUE_VARCHAR.GUID = INSERTED.GUID GO +CREATE TRIGGER [dbo].[TBIDB_TERM_VALUE_VARCHAR_AFT_INS] ON [dbo].[TBIDB_TERM_VALUE_VARCHAR] +FOR INSERT +AS +UPDATE TBIDB_TERM_VALUE_VARCHAR SET TBIDB_TERM_VALUE_VARCHAR.TERM_VALUE_REVERSE = REVERSE(INSERTED.TERM_VALUE) +FROM INSERTED +WHERE TBIDB_TERM_VALUE_VARCHAR.GUID = INSERTED.GUID +GO CREATE TABLE TBIDB_TERM_VALUE_INTEGER ( GUID BIGINT NOT NULL IDENTITY (1, 1), @@ -587,6 +653,58 @@ AS FROM INSERTED WHERE TBIDB_BE_ATTRIBUTE.GUID = INSERTED.GUID GO +CREATE OR ALTER TRIGGER [dbo].[TBIDB_BE_ATTRIBUTE_AFT_INS] ON [dbo].[TBIDB_BE_ATTRIBUTE] +FOR INSERT +AS + DECLARE + @ATTRIBUTE_ID INTEGER, + @TYP_ID INTEGER, + @ADDED_WHO VARCHAR(50), + @TITLE VARCHAR(100), + @ADD_DEFAULT BIT, + @LANG_ID INTEGER, + @LANG_CODE VARCHAR(5) + SELECT + @ATTRIBUTE_ID = ATTR_ID + FROM INSERTED + + DECLARE c_TBIDB_ATTRIBUTE_AFT_INS CURSOR FOR + select GUID,LANG_CODE from TBIDB_LANGUAGE where CREATE_DEFAULT_ENTRY = 1 + OPEN c_TBIDB_ATTRIBUTE_AFT_INS + FETCH NEXT FROM c_TBIDB_ATTRIBUTE_AFT_INS INTO @LANG_ID,@LANG_CODE + WHILE @@FETCH_STATUS = 0 + BEGIN + EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'DEFAULT'; + EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'DOCRESULT'; + FETCH NEXT FROM c_TBIDB_ATTRIBUTE_AFT_INS INTO @LANG_ID,@LANG_CODE + END +CLOSE c_TBIDB_ATTRIBUTE_AFT_INS +DEALLOCATE c_TBIDB_ATTRIBUTE_AFT_INS +GO +CREATE OR ALTER TRIGGER [dbo].[TBIDB_BE_ATTRIBUTE_AFT_DEL] ON [dbo].[TBIDB_BE_ATTRIBUTE] +FOR DELETE +AS + DECLARE + @LANG_ID INTEGER, + @LANG_CODE VARCHAR(5) + + DECLARE c_TBIDB_ATTRIBUTE_AFT_DEL CURSOR FOR + select GUID,LANG_CODE from TBIDB_LANGUAGE where CREATE_DEFAULT_ENTRY = 1 + OPEN c_TBIDB_ATTRIBUTE_AFT_DEL + FETCH NEXT FROM c_TBIDB_ATTRIBUTE_AFT_DEL INTO @LANG_ID,@LANG_CODE + WHILE @@FETCH_STATUS = 0 + BEGIN + EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'DEFAULT'; + EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'DOCRESULT'; + FETCH NEXT FROM c_TBIDB_ATTRIBUTE_AFT_DEL INTO @LANG_ID,@LANG_CODE + END +CLOSE c_TBIDB_ATTRIBUTE_AFT_DEL +DEALLOCATE c_TBIDB_ATTRIBUTE_AFT_DEL +GO + + + + CREATE TABLE TBIDB_LANGUAGE_TERM ( GUID BIGINT NOT NULL IDENTITY (1, 1), @@ -605,6 +723,10 @@ CREATE TABLE TBIDB_LANGUAGE_TERM CONSTRAINT FK_TBIDB_LANGUAGE_TERM_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID), CONSTRAINT FK_TBIDB_LANGUAGE_TERM_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),) GO +CREATE NONCLUSTERED INDEX [IDXTBIDB_LANGUAGE_TERM_LANGID_OID_TERMID] +ON [dbo].[TBIDB_LANGUAGE_TERM] ([LANG_ID]) +INCLUDE ([OBJECT_ID],[TERM_ID]) +GO CREATE OR ALTER TRIGGER [dbo].[TBIDB_LANGUAGE_TERM_AFT_UPD] ON [dbo].[TBIDB_LANGUAGE_TERM] FOR UPDATE AS @@ -627,7 +749,7 @@ AS FROM INSERTED INS INNER JOIN TBIDB_OBJECT_METADATA MD ON INS.[OBJECT_ID] = MD.GUID - IF @IDB_OBJ_ID IS NOT NULL + IF @IDB_OBJ_ID IS NOT NULL AND @CHANGED_WHO IS NOT NULL INSERT INTO TBIDB_OBJECT_METADATA_CHANGE ( IDB_OBJ_ID, ATTR_ID, @@ -923,7 +1045,7 @@ from INNER JOIN TBIDB_ATTRIBUTE_TYPE ATY ON ATTR.TYP_ID = ATY.GUID GO -CREATE VIEW [dbo].[VWIDB_BE_ATTRIBUTE] AS +CREATE OR ALTER VIEW [dbo].[VWIDB_BE_ATTRIBUTE] AS SELECT COALESCE(T.GUID,0) as GUID, COALESCE(T.[BE_ID],0) BE_ID @@ -934,8 +1056,10 @@ SELECT ,T1.TYP_ID AS [TYPE_ID] ,T3.NAME_TYPE AS [TYPE_NAME] ,T1.VIEW_VISIBLE + ,T1.MULTI_CONTEXT ,T1.VIEW_SEQUENCE ,T1.SYS_ATTRIBUTE + ,T.DEFAULT_SEARCH_ATTRIBUTE ,T5.GUID AS LANG_ID ,T5.LANG_CODE ,T1.ADDED_WHEN @@ -1102,9 +1226,49 @@ CREATE TABLE TBIDB_COMMON_SQL ) GO +INSERT INTO [dbo].[TBIDB_COMMON_SQL] + ([TITLE] + ,[SQL_COMMAND] + ,[ADDED_WHO]) + VALUES + ('FLOW_SEARCH_SQL_BASE' + ,'SELECT + DOC.* +FROM + TBIDB_SEARCH_RESULT_USER RES INNER JOIN VWIDB_LANGUAGE_TERM VWLTERM ON RES.MD_GUID = VWLTERM.MD_ID + INNER JOIN VWIDB_DOCRESULT_DE DOC ON VWLTERM.IDB_OBJ_ID = DOC.DocID +WHERE + RES.USR_ID = @USER_ID AND VWLTERM.LANG_CODE = ''@LANG_CODE''','SYSTEM') +GO + +CREATE TABLE TBIDB_SEARCH_RESULT_USER +( + GUID BIGINT NOT NULL IDENTITY (1, 1), + MD_GUID BIGINT + ,USR_ID INTEGER + CONSTRAINT FK_TBIDB_SEARCH_RESULT_USER_MD_GUID FOREIGN KEY (MD_GUID) REFERENCES TBIDB_OBJECT_METADATA (GUID) +) +GO +CREATE TABLE TBIDB_SEARCH_DATE_VALUE_USER +( + USR_ID INTEGER + ,DATE_FROM DATE NOT NULL + ,DATE_TILL DATE + + CONSTRAINT PK_TBIDB_SEARCH_DATE_VALUE_USER PRIMARY KEY (USR_ID) +) +GO +CREATE PROCEDURE PRIDB_SEARCH_ADD_USR_DATE @USERID INT,@DATE1 DATE, @DATE2 DATE +AS +BEGIN + DELETE FROM TBIDB_SEARCH_DATE_VALUE_USER WHERE USR_ID = @USERID; + INSERT INTO TBIDB_SEARCH_DATE_VALUE_USER (USR_ID,DATE_FROM,DATE_TILL) VALUES + (@USERID,@DATE1,@DATE2); +END +GO --DROP TABLE TBIDB_SEARCH_PROFILE DROP TABLE TBIDB_SEARCH_LANGUAGE_SQL_RESULT DROP TABLE TBIDB_SEARCH_PROFILE_USER_GROUP @@ -1130,20 +1294,20 @@ AS WHERE TBIDB_SEARCH_PROFILE.GUID = INSERTED.GUID GO ---CREATE TABLE TBIDB_SEARCH_RESULT_ATTRIBUTES ---( --- GUID INTEGER NOT NULL IDENTITY (1, 1), --- SEARCH_PROFIL_ID INTEGER NOT NULL, --- ATTRIBUTE_ID INTEGER NOT NULL, --- SEQUENCE INTEGER DEFAULT 0, --- ADDED_WHO BIGINT, --- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(), --- CONSTRAINT PK_TBIDB_SEARCH_RESULT_ATTRIBUTES_GUID PRIMARY KEY (GUID), --- CONSTRAINT FK_TBIDB_SEARCH_RESULT_ATTRIBUTES_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID), --- CONSTRAINT FK_TBIDB_SEARCH_RESULT_ATTRIBUTES_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID), --- CONSTRAINT UQ_TBIDB_SEARCH_RESULT_ATTRIBUTES UNIQUE(SEARCH_PROFIL_ID,ATTRIBUTE_ID) ---) ---GO +CREATE TABLE TBIDB_SEARCH_RESULT_ATTRIBUTES +( + GUID INTEGER NOT NULL IDENTITY (1, 1), + SEARCH_PROFIL_ID INTEGER NOT NULL, + ATTRIBUTE_ID INTEGER NOT NULL, + SEQUENCE INTEGER DEFAULT 0, + ADDED_WHO BIGINT, + ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(), + CONSTRAINT PK_TBIDB_SEARCH_RESULT_ATTRIBUTES_GUID PRIMARY KEY (GUID), + CONSTRAINT FK_TBIDB_SEARCH_RESULT_ATTRIBUTES_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID), + CONSTRAINT FK_TBIDB_SEARCH_RESULT_ATTRIBUTES_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID), + CONSTRAINT UQ_TBIDB_SEARCH_RESULT_ATTRIBUTES UNIQUE(SEARCH_PROFIL_ID,ATTRIBUTE_ID) +) +GO CREATE TABLE TBIDB_SEARCH_LANGUAGE_SQL_RESULT @@ -1538,7 +1702,6 @@ GO --ALTER TABLE [TBIDB_FILE_OBJECT] --ADD [FILE_HASH] VARCHAR(500) NOT NULL --GO - CREATE TABLE TBIDB_FILE_OBJECT ( IDB_OBJ_ID BIGINT NOT NULL, @@ -1548,6 +1711,7 @@ CREATE TABLE TBIDB_FILE_OBJECT FILENAME_TERM_ID BIGINT NOT NULL, FILE_SIZE BIGINT, FILE_HASH VARCHAR(500) NOT NULL, + FULLTEXT_CREATED DATETIME, ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'Digital Data', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(30), @@ -1910,15 +2074,15 @@ AS BEGIN DECLARE @TERM_ID BIGINT, @RESULT_SING VARCHAR(900), @RESULT VARCHAR(5000) SEt @RESULT = '' - DECLARE c_REDO CURSOR FOR + DECLARE c_FNIDB_GET_TERM_TEXT_VECTOR CURSOR FOR SELECT T1.TERM_ID FROM TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_LANGUAGE_TERM T1 ON T.GUID = T1.[OBJECT_ID] INNER JOIN TBIDB_LANGUAGE LANG ON T1.LANG_ID = LANG.GUID INNER JOIN TBIDB_OBJECT OBJ ON T.IDB_OBJ_ID = OBJ.IDB_OBJ_ID WHERE T.IDB_OBJ_ID = @IDB_OBJ_ID and T.ATTR_ID = @ATTR_ID AND OBJ.ACTIVE = 1 AND LANG.LANG_CODE = @LANG_CODE - OPEN c_REDO - FETCH NEXT FROM c_REDO INTO @TERM_ID + OPEN c_FNIDB_GET_TERM_TEXT_VECTOR + FETCH NEXT FROM c_FNIDB_GET_TERM_TEXT_VECTOR INTO @TERM_ID WHILE @@FETCH_STATUS = 0 BEGIN SELECT @RESULT_SING = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @TERM_ID @@ -1926,23 +2090,23 @@ BEGIN SET @RESULT = @RESULT_SING ELSE SET @RESULT += '; ' + @RESULT_SING - FETCH NEXT FROM c_REDO INTO @TERM_ID + FETCH NEXT FROM c_FNIDB_GET_TERM_TEXT_VECTOR INTO @TERM_ID END - CLOSE c_REDO - DEALLOCATE c_REDO + CLOSE c_FNIDB_GET_TERM_TEXT_VECTOR + DEALLOCATE c_FNIDB_GET_TERM_TEXT_VECTOR RETURN @RESULT END GO -CREATE FUNCTION FNIDB_GET_TERM_INTEGER_VECTOR (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER) +CREATE OR ALTER FUNCTION FNIDB_GET_TERM_INTEGER_VECTOR (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER) RETURNS VARCHAR(5000) AS BEGIN DECLARE @TERM_ID BIGINT, @RESULT_SING VARCHAR(900), @RESULT VARCHAR(5000) SEt @RESULT = '' - DECLARE c_REDO CURSOR FOR + DECLARE c_FNIDB_GET_TERM_INTEGER_VECTOR CURSOR FOR SELECT INT_TERM_ID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID and ATTR_ID = @ATTR_ID - OPEN c_REDO - FETCH NEXT FROM c_REDO INTO @TERM_ID + OPEN c_FNIDB_GET_TERM_INTEGER_VECTOR + FETCH NEXT FROM c_FNIDB_GET_TERM_INTEGER_VECTOR INTO @TERM_ID WHILE @@FETCH_STATUS = 0 BEGIN SELECT @RESULT_SING = TERM_VALUE FROM TBIDB_TERM_VALUE_INTEGER WHERE GUID = @TERM_ID @@ -1950,10 +2114,10 @@ BEGIN SET @RESULT = @RESULT_SING ELSE SET @RESULT += '; ' + @RESULT_SING - FETCH NEXT FROM c_REDO INTO @TERM_ID + FETCH NEXT FROM c_FNIDB_GET_TERM_INTEGER_VECTOR INTO @TERM_ID END - CLOSE c_REDO - DEALLOCATE c_REDO + CLOSE c_FNIDB_GET_TERM_INTEGER_VECTOR + DEALLOCATE c_FNIDB_GET_TERM_INTEGER_VECTOR RETURN @RESULT END GO @@ -1997,6 +2161,19 @@ BEGIN RETURN @RESULT END GO +CREATE OR ALTER FUNCTION FNIDB_GET_TERM_DATE_TIME (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER) +RETURNS DATE +AS +BEGIN + DECLARE @RESULT DATE + SELECT @RESULT = TERM_VALUE + FROM + TBIDB_OBJECT_METADATA MD INNER JOIN TBIDB_TERM_VALUE_DATETIME DT ON MD.DATETIME_TERM_ID = DT.GUID + WHERE + MD.IDB_OBJ_ID = @IDB_OBJ_ID and MD.ATTR_ID = @ATTR_ID + RETURN @RESULT +END +GO CREATE FUNCTION FNIDB_GET_TERM_DECIMAL (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER) RETURNS DECIMAL(19,0) AS @@ -2994,10 +3171,28 @@ WHERE GROUP BY TERM.TERM_VALUE GO + +CREATE OR ALTER VIEW VWIDB_LANGUAGE_TERM AS +SELECT + MD.GUID as MD_ID + ,MD.IDB_OBJ_ID + ,MD.ATTR_ID + ,TERM.TERM_VALUE + ,LTERM.LANG_ID + ,LANG.LANG_CODE + ,MD.ADDED_WHEN [Added When] + ,MD.ADDED_WHO [Added Who] + ,MD.CHANGED_WHEN [Changed When] + ,MD.CHANGED_WHO [Changed Who] +FROM + TBIDB_OBJECT_METADATA MD + INNER JOIN TBIDB_LANGUAGE_TERM LTERM ON MD.GUID = LTERM.OBJECT_ID + INNER JOIN TBIDB_LANGUAGE LANG ON LTERM.LANG_ID = LANG.GUID + INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON LTERM.TERM_ID = TERM.GUID /*########################################### ############## PROCEDURES ################### #############################################*/ - +GO CREATE PROCEDURE [dbo].[PRIDB_NEW_STATE_OBJECT] @pIDB_OBJ_ID BIGINT, @pSYSSTATE VARCHAR(100),@pWHO VARCHAR(100) AS BEGIN @@ -3654,7 +3849,9 @@ BEGIN END GO -CREATE PROCEDURE [dbo].[PRIDB_CREATE_VIEW_DOC_DATA] @pLANGCODE VARCHAR(5) + + +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_CREATE_VIEW_DOC_DATA] @pLANGCODE VARCHAR(5) ,@pVar VARCHAR(15) = 'DEFAULT' AS DECLARE @ATTR_ID INT, @@ -3666,13 +3863,24 @@ DECLARE @Integer24 Varchar(20), @Float Varchar(20), @RELPATH Varchar(200), - @SEQUENCE Integer - - SET @SQL1 = 'CREATE VIEW VWIDB_DOC_DATA_' + UPPER(LEFT(@pLANGCODE,2)) + ' AS '+ char(10) + 'SELECT ' + char(10) + ' T.IDB_OBJ_ID' + char(10) + @SEQUENCE Integer, + @NAME_VIEW VARCHAR(20) + + IF @pVar = 'DEFAULT' + SET @NAME_VIEW = 'VWIDB_DOC_DATA_' + ELSE + SET @NAME_VIEW = 'VWIDB_DOCRESULT_' + SET @SQL1 = 'CREATE VIEW ' + @NAME_VIEW + UPPER(LEFT(@pLANGCODE,2)) + ' AS '+ char(10) + 'SELECT ' + char(10) + char(9) + + IF @pVar = 'DEFAULT' + SET @SQL1 += +'T.IDB_OBJ_ID' + char(10) + ELSE + SET @SQL1 += +'T.IDB_OBJ_ID as DocID' + char(10) BEGIN DECLARE c_PRIDB_CREATE_VIEW_DOC_DATA CURSOR FOR SELECT DISTINCT ATTR_ID,ATTR_TITLE,TYPE_ID,VIEW_SEQUENCE FROM VWIDB_BE_ATTRIBUTE WHERE VIEW_VISIBLE = 1 AND LANG_CODE = @pLANGCODE AND ATTR_ID IS NOT NULL + AND SYS_ATTRIBUTE = 0 ORDER BY VIEW_SEQUENCE OPEN c_PRIDB_CREATE_VIEW_DOC_DATA @@ -3680,9 +3888,17 @@ BEGIN WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @FN_COMMAND as VARCHAR(100), @FN_TYP as VARCHAR(50) - SET @FN_COMMAND = '(SELECT [dbo].[FNIDB_GET_TERM_@TYPE] (@OBJ_ID,@ATTR_ID))' + IF @TYPID IN (1,8) + BEGIN + SET @FN_COMMAND = '(SELECT [dbo].[FNIDB_GET_TERM_@TYPE] (@OBJ_ID,@ATTR_ID,''@LANG_CODE''))' + SET @FN_COMMAND = REPLACE(@FN_COMMAND,'@LANG_CODE',@pLANGCODE) + END + ELSE + SET @FN_COMMAND = '(SELECT [dbo].[FNIDB_GET_TERM_@TYPE] (@OBJ_ID,@ATTR_ID))' SET @FN_COMMAND = REPLACE(@FN_COMMAND,'@OBJ_ID','T.IDB_OBJ_ID') SET @FN_COMMAND = REPLACE(@FN_COMMAND,'@ATTR_ID',@ATTR_ID) + + IF @TYPID = 1 SET @FN_TYP = 'TEXT' ELSE IF @TYPID = 2 @@ -3693,6 +3909,8 @@ BEGIN SET @FN_TYP = 'DECIMAL' ELSE IF @TYPID = 5 SET @FN_TYP = 'DATE' + ELSE IF @TYPID = 6 + SET @FN_TYP = 'DATE_TIME' ELSE IF @TYPID = 7 SET @FN_TYP = 'BIT' ELSE IF @TYPID = 8 @@ -3701,38 +3919,51 @@ BEGIN SET @FN_TYP = 'INTEGER_VECTOR' SET @FN_COMMAND = REPLACE(@FN_COMMAND,'@TYPE',@FN_TYP) - PRINT @FN_COMMAND + + --PRINT '@FN_COMMAND: ' + @FN_COMMAND SET @SQL1 += char(9) + ',' + @FN_COMMAND + char(9) + char(9) + ' AS ''' + @TITLE + '''' + char(10) --PRINT @SQL1 FETCH NEXT FROM c_PRIDB_CREATE_VIEW_DOC_DATA INTO @ATTR_ID,@TITLE,@TYPID,@SEQUENCE END CLOSE c_PRIDB_CREATE_VIEW_DOC_DATA DEALLOCATE c_PRIDB_CREATE_VIEW_DOC_DATA - SET @SQL1 += char(9) + ',T5.TERM_VALUE AS DocExtension' + char(10) - + char(9) + ',T5.TERM_VALUE AS DocName' + char(10) - + char(9) + ',CONCAT(T4.TERM_VALUE,''\'',T5.TERM_VALUE) AS DocRelativePath' + char(10) - + char(9) + ',T4.TERM_VALUE AS DocRelativePathOnly' + char(10) - + char(9) + ',T2.ADDED_WHEN' + char(10) - + char(9) + ',T2.ADDED_WHO' + char(10) - + char(9) + ',T2.CHANGED_WHO' + char(10) - + char(9) + ',T2.CHANGED_WHEN' + char(10) - + 'FROM' + char(10) - + char(9) + 'TBIDB_OBJECT T INNER JOIN TBIDB_FILE_OBJECT T2 ON T.IDB_OBJ_ID = T2.IDB_OBJ_ID' + char(10) + IF @pVar = 'DEFAULT' + BEGIN + SET @SQL1 += char(9) + ',T5.TERM_VALUE AS DocExtension' + char(10) + + char(9) + ',T5.TERM_VALUE AS DocName' + char(10) + + char(9) + ',CONCAT(T4.TERM_VALUE,''\'',T5.TERM_VALUE) AS DocRelativePath' + char(10) + + char(9) + ',T4.TERM_VALUE AS DocRelativePathOnly' + char(10) + END + SET @SQL1 += char(9) + ',T.ADDED_WHEN AS [Added when]' + char(10) + + char(9) + ',T.ADDED_WHO AS [Added who]' + char(10) + + char(9) + ',T.CHANGED_WHEN AS [Changed when]' + char(10) + + char(9) + ',T.CHANGED_WHO AS [Changed who]' + char(10) + + SET @SQL1 += 'FROM' + char(10) + IF @pVar = 'DEFAULT' + SET @SQL1 += char(9)+'TBIDB_OBJECT T INNER JOIN TBIDB_FILE_OBJECT T2 ON T.IDB_OBJ_ID = T2.IDB_OBJ_ID' + char(10) + char(9) + 'INNER JOIN TBIDB_OBJECT_STORE T3 ON T2.OBJ_ST_ID = T3.GUID' + char(10) + char(9) + 'INNER JOIN TBIDB_TERM_VALUE_VARCHAR T4 ON T2.RELPATH_TERM_ID = T4.GUID' + char(10) + char(9) + 'INNER JOIN TBIDB_TERM_VALUE_VARCHAR T5 ON T2.FILENAME_TERM_ID = T5.GUID' + char(10) - + 'WHERE KIND_TYPE_ID = 1 AND DELETED = 0 AND ACTIVE = 1' + ELSE + SET @SQL1 += char(9) + 'TBIDB_OBJECT T ' + char(10) + + SET @SQL1 += 'WHERE ' + char(10) + char(9) + 'T.KIND_TYPE_ID = 1 AND T.DELETED = 0 AND T.ACTIVE = 1' PRINT @SQL1 - IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'VWIDB_DOC_DATA_' + UPPER(LEFT(@pLANGCODE,2))) + IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = @NAME_VIEW + UPPER(LEFT(@pLANGCODE,2))) BEGIN DECLARE @DELETE NVARCHAR(100) - SET @DELETE = 'DROP VIEW [dbo].[VWIDB_DOC_DATA_' + UPPER(LEFT(@pLANGCODE,2)) + ']' + SET @DELETE = 'DROP VIEW [dbo].[' + @NAME_VIEW + UPPER(LEFT(@pLANGCODE,2)) + ']' EXEC sp_executesql @DELETE END EXEC sp_executesql @SQL1 END GO - +GO +--EXEC PRIDB_CREATE_VIEW_DOC_DATA 'de-DE','DEFAULT' +--GO +--EXEC PRIDB_CREATE_VIEW_DOC_DATA 'de-DE','' +--GO CREATE OR ALTER PROCEDURE [dbo].[PRIDB_DELETE_TERM_OBJECT_METADATA] @IDB_OBJ_ID BIGINT, @ATTRIBUTE VARCHAR(100), @TERM VARCHAR(900), @WHO VARCHAR(100),@LANG_CODE VARCHAR(5) = 'de-DE',@ID_ISFOREIGN as BIT = False AS BEGIN @@ -3821,12 +4052,12 @@ BEGIN END GO -CREATE OR ALTER PROCEDURE [dbo].[PRIDB_DELETE_ATTRIBUTE] @ATTRIBUTE VARCHAR(100), @WHO VARCHAR(100) +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_DELETE_ATTRIBUTE] @ATTR_ID INTEGER, @WHO VARCHAR(100) AS BEGIN DECLARE - @ATTR_ID INTEGER, @ATTR_TYP_ID TINYINT, + @ATTRIBUTE VARCHAR(100), @IDB_OBJ_ID BIGINT, @TYP_DESCR VARCHAR(100), @MULTI BIT, @@ -3834,9 +4065,9 @@ BEGIN @USER_DELETE_ID INTEGER, @ERROR as BIT SET @ERROR = 0 - SELECT @USER_DELETE_ID = COALESCE(MAX(USER_DELETE_ID),0) + 1 FROM TBIDB_OBJECT_METADATA_DELETE WHERE UPPER(DELETED_WHO) = UPPER(@WHO) + SELECT @USER_DELETE_ID = GUID FROM DD_ECM.dbo.TBDD_USER WHERE USERNAME = @WHO - SELECT @ATTR_ID = T.GUID,@ATTR_TYP_ID = T.TYP_ID FROM TBIDB_ATTRIBUTE T WHERE UPPER(T.TITLE) = UPPER(@ATTRIBUTE) + SELECT @ATTR_TYP_ID = T.TYP_ID, @ATTRIBUTE = TITLE FROM TBIDB_ATTRIBUTE T WHERE GUID = @ATTR_ID; IF @ATTR_TYP_ID IN (1,8) --VARCHAR BEGIN TRY @@ -4141,92 +4372,83 @@ BEGIN SELECT * FROM @TBTYPE_RESULT END GO ---CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_RESULT_ATTRIBUTE] @pSEARCHID INTEGER,@pATTRIBUTE_ID INTEGER,@pWHO_TERM_ID BIGINT,@pSequence INTEGER = 0 ---AS ---BEGIN --- IF @pSequence = 0 --- SELECT @pSEQUENCE = COALESCE(MAX([SEQUENCE]),0) + 1 FROM TBIDB_SEARCH_RESULT_ATTRIBUTES --- WHERE SEARCH_PROFIL_ID = @pSEARCHID --- IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_RESULT_ATTRIBUTES WHERE ATTRIBUTE_ID = @pATTRIBUTE_ID AND SEARCH_PROFIL_ID = @pSEARCHID) --- BEGIN --- INSERT INTO TBIDB_SEARCH_RESULT_ATTRIBUTES (SEARCH_PROFIL_ID,ATTRIBUTE_ID,SEQUENCE,ADDED_WHO) VALUES (@pSEARCHID,@pATTRIBUTE_ID,@pSequence, @pWHO_TERM_ID) --- EXEC [dbo].[PRIDB_NEW_SEARCH_ATTRIBUTE] @pSEARCHID,@pATTRIBUTE_ID,@pWHO_TERM_ID,0 --- END +CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_RESULT_ATTRIBUTE] @pSEARCHID INTEGER,@pATTRIBUTE_ID INTEGER,@pWHO_TERM_ID BIGINT,@pSequence INTEGER = 0 +AS +BEGIN + IF @pSequence = 0 + SELECT @pSEQUENCE = COALESCE(MAX([SEQUENCE]),0) + 1 FROM TBIDB_SEARCH_RESULT_ATTRIBUTES + WHERE SEARCH_PROFIL_ID = @pSEARCHID + IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_RESULT_ATTRIBUTES WHERE ATTRIBUTE_ID = @pATTRIBUTE_ID AND SEARCH_PROFIL_ID = @pSEARCHID) + BEGIN + INSERT INTO TBIDB_SEARCH_RESULT_ATTRIBUTES (SEARCH_PROFIL_ID,ATTRIBUTE_ID,SEQUENCE,ADDED_WHO) VALUES (@pSEARCHID,@pATTRIBUTE_ID,@pSequence, @pWHO_TERM_ID) + EXEC [dbo].[PRIDB_NEW_SEARCH_ATTRIBUTE] @pSEARCHID,@pATTRIBUTE_ID,@pWHO_TERM_ID,0 + END --- ELSE --- UPDATE TBIDB_SEARCH_RESULT_ATTRIBUTES SET SEQUENCE = @pSequence --- WHERE ATTRIBUTE_ID = @pATTRIBUTE_ID AND SEARCH_PROFIL_ID = @pSEARCHID --- --SELECT --- -- T.GUID, --- -- T.ATTRIBUTE_ID, --- -- T1.TITLE --- -- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO --- -- ,T.ADDED_WHEN --- --FROM TBIDB_SEARCH_RESULT_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID --- --WHERE SEARCH_PROFIL_ID = @pSEARCHID ---END ---GO + ELSE + UPDATE TBIDB_SEARCH_RESULT_ATTRIBUTES SET SEQUENCE = @pSequence + WHERE ATTRIBUTE_ID = @pATTRIBUTE_ID AND SEARCH_PROFIL_ID = @pSEARCHID + --SELECT + -- T.GUID, + -- T.ATTRIBUTE_ID, + -- T1.TITLE + -- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO + -- ,T.ADDED_WHEN + --FROM TBIDB_SEARCH_RESULT_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID + --WHERE SEARCH_PROFIL_ID = @pSEARCHID +END +GO ---CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_PROFILE] @BE_ID INT, @pTITLE VARCHAR(512),@pWHO_TERMID BIGINT,@pCOMMENT VARCHAR(900) = NULL, @pLANG_CODE VARCHAR(5) = 'de-DE' ---AS ---BEGIN --- DECLARE --- @LANG_ID INTEGER, @SQL_RESULT VARCHAR(912), --- @SEARCH_ID INTEGER, --- @WHO_TERM VARCHAR(100) +CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_PROFILE] @BE_ID INT, @pTITLE VARCHAR(512),@pWHO VARCHAR(100),@pCOMMENT VARCHAR(900) = NULL, @pLANG_CODE VARCHAR(5) = 'de-DE' +AS +BEGIN + DECLARE + @LANG_ID INTEGER, @SQL_RESULT VARCHAR(912), + @SEARCH_ID INTEGER, + @WHO_TERM_ID BIGINT + EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT; --- SELECT @WHO_TERM = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @pWHO_TERMID + SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE + DECLARE @MY_TITLE_TERM_ID BIGINT,@MY_LANG_TERM_ID BIGINT,@MY_RESULT_SQL_TERM_ID BIGINT + EXEC PRIDB_NEW_TERM 'VARCHAR',@pTITLE,@pWHO,@TERM_ID = @MY_TITLE_TERM_ID OUTPUT; --- SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE --- DECLARE @MY_TITLE_TERM_ID BIGINT,@MY_LANG_TERM_ID BIGINT,@oLANGUAGE_TERM_METADATA_GUID BIGINT,@MY_RESULT_SQL_TERM_ID BIGINT --- EXEC PRIDB_NEW_TERM 'VARCHAR',@pTITLE,@WHO_TERM,@TERM_ID = @MY_TITLE_TERM_ID OUTPUT; --- EXEC PRIDB_NEW_TERM_LANGUAGE @LANG_ID,@MY_TITLE_TERM_ID,@WHO_TERM,@TERM_LANGUAGE_GUID = @MY_LANG_TERM_ID OUTPUT --- EXEC PRIDB_NEW_LANGUAGE_TERM_METADATA_GUID @MY_LANG_TERM_ID,@pWHO_TERMID,@oLANG_TERM_GUID = @oLANGUAGE_TERM_METADATA_GUID OUTPUT - --- IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE WHERE TITLE_ID = @oLANGUAGE_TERM_METADATA_GUID) --- INSERT INTO TBIDB_SEARCH_PROFILE (TITLE_ID,ADDED_WHO,COMMENT) VALUES (@oLANGUAGE_TERM_METADATA_GUID,@pWHO_TERMID,@pCOMMENT) --- ELSE --- UPDATE TBIDB_SEARCH_PROFILE SET --- COMMENT = @pCOMMENT,CHANGED_WHO = @pWHO_TERMID WHERE TITLE_ID = @oLANGUAGE_TERM_METADATA_GUID AND COMMENT <> @pCOMMENT + IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE WHERE COMMENT = @pCOMMENT) + INSERT INTO TBIDB_SEARCH_PROFILE (ADDED_WHO,COMMENT) VALUES (@WHO_TERM_ID,@pCOMMENT) --- SELECT @SEARCH_ID = MAX(GUID) FROM TBIDB_SEARCH_PROFILE T --- WHERE T.TITLE_ID = @oLANGUAGE_TERM_METADATA_GUID + SELECT @SEARCH_ID = MAX(GUID) FROM TBIDB_SEARCH_PROFILE T + WHERE COMMENT = @pCOMMENT --- SET @SQL_RESULT = 'SELECT T.IDB_OBJ_ID as DocID, [dbo].[FNIDB_GET_FILE_PATH] (T.IDB_OBJ_ID) as FULL_FILENAME, T.DocName as Filename, * FROM VWIDB_DOC_DATA WHERE ' --- DECLARE @ATTR_ID INT,@SEQUENCE TINYINT --- SET @SEQUENCE = 0 - --- DECLARE cursorDefaultAttributes CURSOR FOR --- SELECT --- T1.GUID --- FROM TBIDB_ATTRIBUTE T1 INNER JOIN TBIDB_BE_ATTRIBUTE T2 ON T1.GUID = T2.ATTR_ID --- WHERE T2.BE_ID = @BE_ID AND DEFAULT_SEARCH_ATTRIBUTE = 1 --- ORDER BY T1.VIEW_SEQUENCE --- OPEN cursorDefaultAttributes --- FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID --- WHILE @@FETCH_STATUS = 0 --- BEGIN --- IF NOT EXISTS (SELECT GUID FROM TBIDB_SEARCH_RESULT_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND ATTRIBUTE_ID = @ATTR_ID) --- EXEC PRIDB_NEW_SEARCH_RESULT_ATTRIBUTE @SEARCH_ID,@ATTR_ID,@pWHO_TERMID,@SEQUENCE --- SET @SEQUENCE += 1 --- FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID --- END --- CLOSE cursorDefaultAttributes --- DEALLOCATE cursorDefaultAttributes + DECLARE @VIEW_LANG VARCHAR(50) --- SELECT --- T.GUID,T.TITLE_ID --- ,dbo.[FNIDB_GET_TERM_FOR_LANGUAGE_TERM_METADATA_GUID ] (T.TITLE_ID,@pLANG_CODE) AS TITLE --- --,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.RESULT_SQL) AS RESULT_SQL --- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO --- ,T.ADDED_WHEN --- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO --- ,T.CHANGED_WHEN --- FROM TBIDB_SEARCH_PROFILE T --- WHERE GUID = @SEARCH_ID ---END ---GO + IF @pLANG_CODE = 'de-DE' + SET @VIEW_LANG = 'VWIDB_DOC_DATA_DE' + ELSE + SET @VIEW_LANG = 'VWIDB_DOC_DATA_EN' + + SET @SQL_RESULT = 'SELECT T.IDB_OBJ_ID as DocID, [dbo].[FNIDB_GET_FILE_PATH] (T.IDB_OBJ_ID) as FULL_FILENAME, T.DocName as Filename, * FROM ' + @VIEW_LANG + ' WHERE ' + DECLARE @ATTR_ID INT,@SEQUENCE TINYINT + SET @SEQUENCE = 0 + + DECLARE cursorDefaultAttributes CURSOR FOR + SELECT + T1.GUID + FROM TBIDB_ATTRIBUTE T1 INNER JOIN TBIDB_BE_ATTRIBUTE T2 ON T1.GUID = T2.ATTR_ID + WHERE T2.BE_ID = @BE_ID AND DEFAULT_SEARCH_ATTRIBUTE = 1 + ORDER BY T1.VIEW_SEQUENCE + OPEN cursorDefaultAttributes + FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID + WHILE @@FETCH_STATUS = 0 + BEGIN + IF NOT EXISTS (SELECT GUID FROM TBIDB_SEARCH_RESULT_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND ATTRIBUTE_ID = @ATTR_ID) + EXEC PRIDB_NEW_SEARCH_RESULT_ATTRIBUTE @SEARCH_ID,@ATTR_ID,@pWHO_TERMID,@SEQUENCE + SET @SEQUENCE += 1 + FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID + END + CLOSE cursorDefaultAttributes + DEALLOCATE cursorDefaultAttributes +END +GO +GO --CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_SQL_RESULT] @SEARCH_ID INT,@pWHO_TERMID BIGINT --AS --BEGIN @@ -4306,113 +4528,113 @@ GO --END --GO ---CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_ATTRIBUTE] @pSEARCH_PROFIL_ID INTEGER,@pATTRIBUTE_ID INTEGER,@MULTISELECT BIT, @WHO_TERM_ID INTEGER, @pSEQUENCE INTEGER,@pHEIGHT SMALLINT = 0,@pWIDTH SMALLINT = 0 ---AS ---BEGIN --- DECLARE @pWHO_USERNAME VARCHAR(100),@USER_LANGUAGE VARCHAR(5),@USER_LANGUAGE_ID INT, @ATTRTYPE as VARCHAR(20)--,@USER_ID INTEGER --- SELECT @pWHO_USERNAME = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @WHO_TERM_ID --- SELECT @USER_LANGUAGE = LANGUAGE,@USER_LANGUAGE_ID = T1.GUID FROM @MY_DD_ECM_DB.dbo.TBDD_USER T INNER JOIN IDB.dbo.TBIDB_LANGUAGE T1 ON T.LANGUAGE = T1.LANG_CODE WHERE UPPER(USERNAME) = UPPER(@pWHO_USERNAME) +CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_ATTRIBUTE] @pSEARCH_PROFIL_ID INTEGER,@pATTRIBUTE_ID INTEGER,@MULTISELECT BIT, @WHO_TERM_ID INTEGER, @pSEQUENCE INTEGER,@pHEIGHT SMALLINT = 0,@pWIDTH SMALLINT = 0 +AS +BEGIN + DECLARE @pWHO_USERNAME VARCHAR(100),@USER_LANGUAGE VARCHAR(5),@USER_LANGUAGE_ID INT, @ATTRTYPE as VARCHAR(20)--,@USER_ID INTEGER + SELECT @pWHO_USERNAME = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @WHO_TERM_ID + SELECT @USER_LANGUAGE = LANGUAGE,@USER_LANGUAGE_ID = T1.GUID FROM DD_ECM.dbo.TBDD_USER T INNER JOIN IDB.dbo.TBIDB_LANGUAGE T1 ON T.LANGUAGE = T1.LANG_CODE WHERE UPPER(USERNAME) = UPPER(@pWHO_USERNAME) --- SELECT @ATTRTYPE = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T INNER JOIN TBIDB_ATTRIBUTE_TYPE T1 ON T.TYP_ID = T1.GUID WHERE T.GUID = @pATTRIBUTE_ID + SELECT @ATTRTYPE = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T INNER JOIN TBIDB_ATTRIBUTE_TYPE T1 ON T.TYP_ID = T1.GUID WHERE T.GUID = @pATTRIBUTE_ID --- IF @ATTRTYPE IN ('VARCHAR','BIG INTEGER') --- BEGIN --- IF @pHEIGHT = 0 --- SET @pHEIGHT = 200 --- IF @pWIDTH = 0 --- SET @pWIDTH = 200 --- END --- ELSE IF @ATTRTYPE ='DATE' --- BEGIN --- IF @pHEIGHT = 0 --- SET @pHEIGHT = 20 --- IF @pWIDTH = 0 --- SET @pWIDTH = 100 --- END --- ELSE IF @ATTRTYPE ='BIT' --- BEGIN --- IF @pHEIGHT = 0 --- SET @pHEIGHT = 20 --- IF @pWIDTH = 0 --- SET @pWIDTH = 200 --- END + IF @ATTRTYPE IN ('VARCHAR','BIG INTEGER') + BEGIN + IF @pHEIGHT = 0 + SET @pHEIGHT = 200 + IF @pWIDTH = 0 + SET @pWIDTH = 200 + END + ELSE IF @ATTRTYPE ='DATE' + BEGIN + IF @pHEIGHT = 0 + SET @pHEIGHT = 20 + IF @pWIDTH = 0 + SET @pWIDTH = 100 + END + ELSE IF @ATTRTYPE ='BIT' + BEGIN + IF @pHEIGHT = 0 + SET @pHEIGHT = 20 + IF @pWIDTH = 0 + SET @pWIDTH = 200 + END --- DECLARE @SOURCE_TERM_ID BIGINT,@SOURCE_DEFAULT_SQL VARCHAR(900) --- SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE --- 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_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID --- WHERE --- MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' AND TLANG.LANGUAGE_ID = ' + CONVERT(VARCHAR(3),@USER_LANGUAGE_ID) + ' --- AND OBJ.DELETED = 0 AND ACTIVE = 1' - --- --IF @pDEPENDING_ATTRIBUTE1 <> 0 --- -- SET @SOURCE_DEFAULT_SQL = REPLACE(@SOURCE_DEFAULT_SQL,'@pUSER_ID) ','@pUSER_ID) where IDB_OBJECT_ID = @DEPENDING_IDB_OBJECT ') --- --ELSE --- -- SET @SOURCE_DEFAULT_SQL = REPLACE(@SOURCE_DEFAULT_SQL,'@JOIN ','') --- IF @ATTRTYPE = 'DATE' --- SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE --- FROM --- TBIDB_TERM_VALUE_DATE TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.DATE_TERM_ID --- INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID --- WHERE --- MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' --- AND OBJ.DELETED = 0 AND ACTIVE = 1' --- ELSE IF @ATTRTYPE = 'BIG INTEGER' --- SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE --- FROM --- TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID --- INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID --- WHERE --- MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' --- AND OBJ.DELETED = 0 AND ACTIVE = 1' --- ELSE IF @ATTRTYPE = 'BIT' --- SET @SOURCE_DEFAULT_SQL = 'select DISTINCT CONVERT(BIT,TERM.TERM_VALUE) AS @RESULT_TITLE --- FROM --- TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID --- INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID --- WHERE --- MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' --- AND OBJ.DELETED = 0 AND ACTIVE = 1' --- EXEC PRIDB_NEW_TERM 'VARCHAR',@SOURCE_DEFAULT_SQL,@pWHO_USERNAME,@TERM_ID = @SOURCE_TERM_ID OUTPUT; --- IF @pSEQUENCE = 0 --- SELECT @pSEQUENCE = COALESCE(MAX([SEQUENCE]),0) + 1 FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID --- IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID AND ATTRIBUTE_ID = @pATTRIBUTE_ID) --- INSERT INTO TBIDB_SEARCH_PROFILE_ATTRIBUTES (SEARCH_PROFIL_ID,ATTRIBUTE_ID,SOURCE_SQL, [SEQUENCE], ADDED_WHO,HEIGHT,WIDTH,MULTISELECT) --- VALUES (@pSEARCH_PROFIL_ID,@pATTRIBUTE_ID,@SOURCE_TERM_ID,@pSEQUENCE, @WHO_TERM_ID,@pHEIGHT,@pWIDTH,@MULTISELECT) --- ELSE --- BEGIN + DECLARE @SOURCE_TERM_ID BIGINT,@SOURCE_DEFAULT_SQL VARCHAR(900) + SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE + 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_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID + WHERE + MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' AND TLANG.LANGUAGE_ID = ' + CONVERT(VARCHAR(3),@USER_LANGUAGE_ID) + ' + AND OBJ.DELETED = 0 AND ACTIVE = 1' + + --IF @pDEPENDING_ATTRIBUTE1 <> 0 + -- SET @SOURCE_DEFAULT_SQL = REPLACE(@SOURCE_DEFAULT_SQL,'@pUSER_ID) ','@pUSER_ID) where IDB_OBJECT_ID = @DEPENDING_IDB_OBJECT ') + --ELSE + -- SET @SOURCE_DEFAULT_SQL = REPLACE(@SOURCE_DEFAULT_SQL,'@JOIN ','') + IF @ATTRTYPE = 'DATE' + SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE + FROM + TBIDB_TERM_VALUE_DATE TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.DATE_TERM_ID + INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID + WHERE + MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' + AND OBJ.DELETED = 0 AND ACTIVE = 1' + ELSE IF @ATTRTYPE = 'BIG INTEGER' + SET @SOURCE_DEFAULT_SQL = 'select DISTINCT TERM.TERM_VALUE AS @RESULT_TITLE + FROM + TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID + INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID + WHERE + MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' + AND OBJ.DELETED = 0 AND ACTIVE = 1' + ELSE IF @ATTRTYPE = 'BIT' + SET @SOURCE_DEFAULT_SQL = 'select DISTINCT CONVERT(BIT,TERM.TERM_VALUE) AS @RESULT_TITLE + FROM + TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID + INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID + WHERE + MD.ATTR_ID = ' + CONVERT(VARCHAR(3),@pATTRIBUTE_ID) + ' + AND OBJ.DELETED = 0 AND ACTIVE = 1' + EXEC PRIDB_NEW_TERM 'VARCHAR',@SOURCE_DEFAULT_SQL,@pWHO_USERNAME,@TERM_ID = @SOURCE_TERM_ID OUTPUT; + IF @pSEQUENCE = 0 + SELECT @pSEQUENCE = COALESCE(MAX([SEQUENCE]),0) + 1 FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID + IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID AND ATTRIBUTE_ID = @pATTRIBUTE_ID) + INSERT INTO TBIDB_SEARCH_PROFILE_ATTRIBUTES (SEARCH_PROFIL_ID,ATTRIBUTE_ID,SOURCE_SQL, [SEQUENCE], ADDED_WHO,HEIGHT,WIDTH,MULTISELECT) + VALUES (@pSEARCH_PROFIL_ID,@pATTRIBUTE_ID,@SOURCE_TERM_ID,@pSEQUENCE, @WHO_TERM_ID,@pHEIGHT,@pWIDTH,@MULTISELECT) + ELSE + BEGIN --- UPDATE TBIDB_SEARCH_PROFILE_ATTRIBUTES SET --- SOURCE_SQL = @SOURCE_TERM_ID --- ,[SEQUENCE] = @pSEQUENCE --- ,HEIGHT = @pHEIGHT --- ,WIDTH = @pWIDTH --- ,MULTISELECT = @MULTISELECT --- WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID AND ATTRIBUTE_ID = @pATTRIBUTE_ID --- END --- SELECT --- T.SEARCH_PROFIL_ID, --- T.GUID, --- T.ATTRIBUTE_ID, --- T1.TITLE AS ATTRIBUTE_TITLE, --- T.MULTISELECT, --- T.HEIGHT, --- T.WIDTH, --- T2.NAME_TYPE AS ATTRIBUTE_TYPE --- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.SOURCE_SQL) AS SOURCE_SQL --- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO --- ,T.ADDED_WHEN --- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO --- ,T.CHANGED_WHEN --- FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID --- INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID --- WHERE T.SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID --AND ATTRIBUTE_ID = @pATTRIBUTE_ID --- ORDER BY [SEQUENCE] ---END ---GO + UPDATE TBIDB_SEARCH_PROFILE_ATTRIBUTES SET + SOURCE_SQL = @SOURCE_TERM_ID + ,[SEQUENCE] = @pSEQUENCE + ,HEIGHT = @pHEIGHT + ,WIDTH = @pWIDTH + ,MULTISELECT = @MULTISELECT + WHERE SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID AND ATTRIBUTE_ID = @pATTRIBUTE_ID + END + SELECT + T.SEARCH_PROFIL_ID, + T.GUID, + T.ATTRIBUTE_ID, + T1.TITLE AS ATTRIBUTE_TITLE, + T.MULTISELECT, + T.HEIGHT, + T.WIDTH, + T2.NAME_TYPE AS ATTRIBUTE_TYPE + ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.SOURCE_SQL) AS SOURCE_SQL + ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.ADDED_WHO) AS ADDED_WHO + ,T.ADDED_WHEN + ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO + ,T.CHANGED_WHEN + FROM TBIDB_SEARCH_PROFILE_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID + INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID + WHERE T.SEARCH_PROFIL_ID = @pSEARCH_PROFIL_ID --AND ATTRIBUTE_ID = @pATTRIBUTE_ID + ORDER BY [SEQUENCE] +END +GO -- ============================================= -- Author: DD MS -- Create date 05.11.2020 @@ -5060,6 +5282,10 @@ BEGIN END GO + + + + INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('Doctype',1,1); INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('OriginFileName',1,1); INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('OriginCreationDatetime',6,1); @@ -5072,12 +5298,30 @@ INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('EmailSubject', INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('EmailFrom',1,1); INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('EmailDate',5,1); INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,MULTI_CONTEXT) VALUES ('PM-LOGGING',8,0,1); -INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,MULTI_CONTEXT) VALUES ('ObjectEvents',1,1,1); +--INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,MULTI_CONTEXT) VALUES ('ObjectEvents',1,1,1); INSERT INTO TBIDB_BE_ATTRIBUTE (BE_ID,ATTR_ID,DEFAULT_SEARCH_ATTRIBUTE) SELECT 1,GUID, 1 FROM TBIDB_ATTRIBUTE WHERE TITLE NOT IN ('PM-LOGGING','ObjectEvents') ; INSERT INTO TBIDB_BE_ATTRIBUTE (BE_ID,ATTR_ID,DEFAULT_SEARCH_ATTRIBUTE) SELECT 1,GUID, 0 FROM TBIDB_ATTRIBUTE where TITLE IN ('PM-LOGGING','ObjectEvents') ; - GO +CREATE OR ALTER PROCEDURE PRIDB_NEW_CATALOG_USER @USRID INTEGER +AS +BEGIN + IF NOT EXISTS(SELECT GUID FROM TBIDB_CATALOG_USER WHERE USR_ID = @USRID AND CAT_TITLE = 'QUICKSEARCH1_TITLE') + INSERT INTO TBIDB_CATALOG_USER (USR_ID,CAT_TITLE,CAT_STRING,ADDED_WHO) VALUES ( + @USRID,'QUICKSEARCH1_TITLE','Schnellsuche1','System'); + IF NOT EXISTS(SELECT GUID FROM TBIDB_CATALOG_USER WHERE USR_ID = @USRID AND CAT_TITLE = 'QUICKSEARCH1_POS') + INSERT INTO TBIDB_CATALOG_USER (USR_ID,CAT_TITLE,CAT_STRING,ADDED_WHO) VALUES ( + @USRID,'QUICKSEARCH1_POS','Top','System'); + IF NOT EXISTS(SELECT GUID FROM TBIDB_CATALOG_USER WHERE USR_ID = @USRID AND CAT_TITLE = 'APPLICATION_THEME') + INSERT INTO TBIDB_CATALOG_USER (USR_ID,CAT_TITLE,CAT_STRING,ADDED_WHO) VALUES ( + @USRID,'APPLICATION_THEME','DEFAULT','System'); + IF NOT EXISTS(SELECT GUID FROM TBIDB_CATALOG_USER WHERE USR_ID = @USRID AND CAT_TITLE = 'GLOBIX_DROPAREA') + INSERT INTO TBIDB_CATALOG_USER (USR_ID,CAT_TITLE,CAT_STRING,ADDED_WHO) VALUES ( + @USRID,'GLOBIX_DROPAREA','PROGRESSIVE','System'); +END +GO + + CREATE VIEW [dbo].[VWGI_ADMIN_OVERVIEW] AS SELECT T3.GUID as ID, @@ -5123,5 +5367,17 @@ WHERE T4.IDB_OBJECT_STORE_ID = T5.GUID AND T4.GUID in (SELECT DOKART_ID FROM DD_ECM.dbo.TBDD_DOKUMENTART_MODULE WHERE MODULE_ID = (SELECT GUID FROM DD_ECM.dbo.TBDD_MODULES WHERE UPPER(SHORT_NAME) = ('GLOBIX'))) GO +DECLARE @USR_GUID INTEGER +DECLARE c_CATALOG_USR CURSOR FOR + select GUID FROM DD_ECM.dbo.TBDD_USER +OPEN c_CATALOG_USR + FETCH NEXT FROM c_CATALOG_USR INTO @USR_GUID + WHILE @@FETCH_STATUS = 0 + BEGIN + EXEC PRIDB_NEW_CATALOG_USER @USR_GUID; + FETCH NEXT FROM c_CATALOG_USR INTO @USR_GUID + END +CLOSE c_CATALOG_USR +DEALLOCATE c_CATALOG_USR diff --git a/00_IDB/Development/TextSearch.sql b/00_IDB/Development/TextSearch.sql new file mode 100644 index 0000000..d6cb131 --- /dev/null +++ b/00_IDB/Development/TextSearch.sql @@ -0,0 +1,117 @@ +CREATE OR ALTER PROCEDURE PRIDB_SEARCH_TEXT_GET_RESULTS (@pUSR_ID as INTEGER,@pSEARCH_TERM as VARCHAR(900),@pDATE_RESTRICTION VARCHAR(500), @pLANG_CODE as VARCHAR(5) = 'de-DE') +AS +BEGIN + DECLARE @SRCH_VAR VARCHAR(900), @SQL NVARCHAR(MAX),@DateStr VARCHAR(100) + IF @pSEARCH_TERM like '%*%' + SET @SRCH_VAR = ' "' + @pSEARCH_TERM + '" ' + ELSE + SET @SRCH_VAR = @pSEARCH_TERM + PRINT '@SRCH_VAR [' + @SRCH_VAR + ']' + DELETE FROM TBIDB_SEARCH_RESULT_USER WHERE USR_ID = @pUSR_ID; + + IF LEN(@pDATE_RESTRICTION) > 0 + BEGIN + PRINT '@pDATE_RESTRICTION....' + DECLARE @IDX TINYINT, @ATTR_ID VARCHAR(100) + SET @IDX = CHARINDEX('~',@pDATE_RESTRICTION) + PRINT '@IDX: ' + CONVERT(VARCHAR(10),@IDX) + SET @ATTR_ID = LEFT(@pDATE_RESTRICTION,@IDX-1) + PRINT CONVERT(VARCHAR(10),@ATTR_ID) + SET @DateStr = SUBSTRING(@pDATE_RESTRICTION,@IDX + 1,LEN(@pDATE_RESTRICTION)-@IDX) + PRINT @DateStr + END + + SET @SQL = 'INSERT INTO TBIDB_SEARCH_RESULT_USER(MD_GUID,USR_ID) + select MD.GUID,' + CONVERT(VARCHAR(10),@pUSR_ID) + char(10) + + 'FROM TBIDB_TERM_VALUE_VARCHAR TERM + INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TERM.GUID = TLANG.TERM_ID + INNER JOIN TBIDB_LANGUAGE LANG ON TLANG.LANG_ID = LANG.GUID + INNER JOIN TBIDB_OBJECT_METADATA MD ON TLANG.OBJECT_ID = MD.GUID + INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID + WHERE + OBJ.ACTIVE = 1' + char(10) + IF @DateStr = 'DATEPART' + BEGIN + DECLARE @DATE1 DATE,@DATE2 DATE + SELECT @DATE1 = DATE_FROM ,@DATE2 = DATE_TILL FROM TBIDB_SEARCH_DATE_VALUE_USER WHERE USR_ID = @pUSR_ID; + SET @SQL += 'AND CONVERT(DATE,OBJ.ADDED_WHEN) >= CONVERT(DATE,''' + CONVERT(VARCHAR(10),@DATE1) + ''') AND CONVERT(DATE,OBJ.ADDED_WHEN) <= CONVERT(DATE,''' + CONVERT(VARCHAR(10),@DATE2) + ''')' + char(10) + END + ELSE IF @DateStr = 'ECM_CREATED_TODAY' + SET @SQL += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) = 0' + char(10) + ELSE IF @DateStr = 'ECM_CREATED_YESTERDAY' + SET @SQL += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) = 1' + char(10) + ELSE IF @DateStr = 'ECM_CREATED_LAST7DAYS' + SET @SQL += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) <= 7' + char(10) + ELSE IF @DateStr = 'ECM_YEAR_CURRENT' + SET @SQL += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10) + ELSE IF @DateStr = 'ECM_YEAR_LAST' + SET @SQL += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10) + ELSE IF @DateStr = 'ECM_CREATED_MONTH_CURRENT' + BEGIN + SET @SQL += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10) + SET @SQL += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = DATEPART(MONTH,GETDATE())' + char(10) + END + ELSE IF @DateStr = 'ECM_CREATED_MONTH_LAST' + BEGIN + IF DATEPART(MONTH,GETDATE()) = 1 + BEGIN + SET @SQL += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10) + SET @SQL += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = 12' + char(10) + END + ELSE + BEGIN + SET @SQL += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10) + SET @SQL += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = DATEPART(MONTH,GETDATE())-1' + char(10) + END + END + + + IF LEN(@SRCH_VAR) > 0 + BEGIN + IF @pSEARCH_TERM like '%*%' + SET @SQL += 'AND CONTAINS(TERM.TERM_VALUE,''' + @SRCH_VAR + ''')' + char(10) + ELSE + SET @SQL += 'AND TERM.TERM_VALUE = ''' + @SRCH_VAR + '''' + char(10) + END + + SET @SQL += 'AND LANG.LANG_CODE = ''' + @pLANG_CODE + '''' + PRINT @SQL + EXEC sp_executesql @SQL +END +GO +EXEC PRIDB_SEARCH_TEXT_GET_RESULTS 1,'strun*','' --doct* +GO + +SELECT + DOC.* +FROM + TBIDB_SEARCH_RESULT_USER RES INNER JOIN VWIDB_LANGUAGE_TERM VWLTERM ON RES.MD_GUID = VWLTERM.MD_ID + INNER JOIN VWIDB_DOCRESULT_DE DOC ON VWLTERM.IDB_OBJ_ID = DOC.DocID +WHERE + RES.USR_ID = 1 AND VWLTERM.LANG_CODE = '@LANG_CODE' + + + +--' "doct*" +EXEC PRIDB_SEARCH_TEXT_GET_RESULTS 1,'','ADDED_WHEN~ECM_CREATED_MONTH_CURRENT' + +select * from TBIDB_OBJECT order by IDB_OBJ_ID desc + +CREATE TABLE TBIDB_SEARCH_DATE_VALUE_USER +( + USR_ID INTEGER + ,DATE_FROM DATE NOT NULL + ,DATE_TILL DATE + + CONSTRAINT PK_TBIDB_SEARCH_DATE_VALUE_USER PRIMARY KEY (USR_ID) +) +GO + +CREATE PROCEDURE PRIDB_SEARCH_ADD_USR_DATE @USERID INT,@DATE1 DATE, @DATE2 DATE +AS +BEGIN + DELETE FROM TBIDB_SEARCH_DATE_VALUE_USER WHERE USR_ID = @USERID; + INSERT INTO TBIDB_SEARCH_DATE_VALUE_USER (USR_ID,DATE_FROM,DATE_TILL) VALUES + (@USERID,@DATE1,@DATE2); + +END \ No newline at end of file diff --git a/00_IDB/Fulltext.sql b/00_IDB/Fulltext.sql new file mode 100644 index 0000000..3d49e8c --- /dev/null +++ b/00_IDB/Fulltext.sql @@ -0,0 +1,19 @@ +--Prüfung Volltext is enabled +SELECT name as [DBName], is_fulltext_enabled +FROM sys.databases +--volltextcatalog vorhanden +SELECT * FROM sys.fulltext_catalogs; +--Prüfen wieviele Tabellen enthalten +EXEC sp_help_fulltext_catalogs; + +--###### SUCHEN ##### +--SUCHEN NACH GANZEN WORTEN +select * from TBIDB_FULLTEXT_OBJECT A +WHERE CONTAINS(FULL_TEXT,'Kabel') +--SUCHEN NACH Teilen +--BEGINNEND MIT +select * from TBIDB_FULLTEXT_OBJECT A +WHERE CONTAINS(FULL_TEXT,' "do*" ') +--ENDEND MIT +select * from TBIDB_FULLTEXT_OBJECT A +WHERE CONTAINS(FULL_TEXT,' "*ut" ') diff --git a/04_APPSERV/INSERT_JOBS.sql b/04_APPSERV/INSERT_JOBS.sql index 383bc03..cd22a3d 100644 --- a/04_APPSERV/INSERT_JOBS.sql +++ b/04_APPSERV/INSERT_JOBS.sql @@ -256,6 +256,13 @@ INSERT INTO [dbo].[TBAPPSERV_CRON_DETAIL]( CRON_ID, CON_ID, TITLE ,DT_NAME, RUN_ON_STARTUP, COMMAND) VALUES ( 3, 2, 'VWIDB_DOCTYPE_HANDLING', 'VWIDB_DOCTYPE_HANDLING', 1,'SELECT * FROM VWIDB_DOCTYPE_HANDLING'); GO +INSERT INTO [dbo].[TBAPPSERV_CRON_DETAIL]( +CRON_ID, CON_ID, TITLE ,DT_NAME, RUN_ON_STARTUP, COMMAND) VALUES ( +3, 2, 'TBIDB_CATALOG_USER', 'TBIDB_CATALOG_USER', 1,'SELECT * FROM TBIDB_CATALOG_USER'); +GO + + + --Insert Into TBAPPSERV_CRON_DETAIL ( --CRON_ID, CON_ID, TITLE, DT_NAME, RUN_ON_STARTUP, COMMAND) VALUES ( --2, 2, 'TBIDB_DOC_INFO', 'TBIDB_DOC_INFO', 1, diff --git a/10_Monitor/CreateDBObjects.sql b/10_Monitor/CreateDBObjects.sql new file mode 100644 index 0000000..ee09a3e --- /dev/null +++ b/10_Monitor/CreateDBObjects.sql @@ -0,0 +1,55 @@ +DROP TABLE TBMON_PROFILE_PARAM; +DROP TABLE TBMON_PROFILE; +CREATE TABLE TBMON_PROFILE +( + GUID INTEGER NOT NULL IDENTITY (1, 1), + TITLE VARCHAR(250) NOT NULL, + CAPTION VARCHAR(250), + EXEC_SQL NVARCHAR(MAX), + RETURN_TYPE VARCHAR(100) NOT NULL, + COMMENT VARCHAR(500), + ACTIVE BIT NOT NULL DEFAULT 1, + ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'System', + ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), + CHANGED_WHO VARCHAR(100), + CHANGED_WHEN DATETIME, + CONSTRAINT PK_TBMON_PROFILE PRIMARY KEY (GUID), + --CONSTRAINT FK_OS_CAT_ID FOREIGN KEY (CAT_ID) REFERENCES TBIDB_CATALOG (GUID) , + CONSTRAINT UQ1_TBMON_PROFILE UNIQUE (TITLE), +) +GO +CREATE TRIGGER TBIDB_OBJECT_STORE_AFT_UPD ON TBMON_PROFILE +FOR UPDATE +AS + UPDATE TBMON_PROFILE SET CHANGED_WHEN = GETDATE() + FROM INSERTED + WHERE TBMON_PROFILE.GUID = INSERTED.GUID +GO + +CREATE TABLE TBMON_PROFILE_PARAM +( + GUID INTEGER NOT NULL IDENTITY (1, 1), + PROFILE_ID INTEGER NOT NULL, + CAPTION VARCHAR(250) NOT NULL, + P_TYPE VARCHAR(50) NOT NULL DEFAULT 'TEXT', + ITEMS NVARCHAR(MAX), + SEQUENCE TINYINT NOT NULL DEFAULT 0, + OPTIONAL BIT NOT NULL DEFAULT 0, + COMMENT VARCHAR(500), + ACTIVE BIT NOT NULL DEFAULT 1, + ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'System', + ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), + CHANGED_WHO VARCHAR(100), + CHANGED_WHEN DATETIME, + CONSTRAINT PK_TBMON_PROFILE_PARAM PRIMARY KEY (GUID), + CONSTRAINT FK_TBMON_PROFILE_PARAM_OID FOREIGN KEY (PROFILE_ID) REFERENCES TBMON_PROFILE (GUID) , + CONSTRAINT UQ1_TBMON_PROFILE_PARAM UNIQUE (CAPTION), +) +GO +CREATE TRIGGER TBMON_PROFILE_PARAM_AFT_UPD ON TBMON_PROFILE_PARAM +FOR UPDATE +AS + UPDATE TBMON_PROFILE_PARAM SET CHANGED_WHEN = GETDATE() + FROM INSERTED + WHERE TBMON_PROFILE_PARAM.GUID = INSERTED.GUID +GO \ No newline at end of file