diff --git a/00_IDB/CreateDBObjects.sql b/00_IDB/CreateDBObjects.sql index c912237..719fd31 100644 --- a/00_IDB/CreateDBObjects.sql +++ b/00_IDB/CreateDBObjects.sql @@ -451,6 +451,7 @@ CREATE TABLE TBIDB_OBJECT_KIND GO INSERT INTO TBIDB_OBJECT_KIND (KIND_NAME) VALUES ('DOC'); INSERT INTO TBIDB_OBJECT_KIND (KIND_NAME) VALUES ('OBJECT'); +INSERT INTO TBIDB_OBJECT_KIND (KIND_NAME) VALUES ('DYNAMIC_FOLDER'); GO CREATE TRIGGER TBIDB_OBJECT_KIND_AFT_UPD ON TBIDB_OBJECT_KIND FOR UPDATE @@ -526,8 +527,9 @@ CREATE TABLE TBIDB_OBJECT ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(30), CHANGED_WHEN DATETIME, - CONSTRAINT PK_TBIDB_OBJECT PRIMARY KEY (IDB_OBJ_ID), - CONSTRAINT UQ_TBIDB_OBJECT UNIQUE (REFERENCE_KEY), + CHANGED_WHEN_SUBSTRUCTURE DATETIME, + CHANGED_WHO_SUBSTRUCTURE VARCHAR(100), + CONSTRAINT PK_TBIDB_OBJECT PRIMARY KEY (IDB_OBJ_ID), CONSTRAINT FK_KIND_TYPE_ID FOREIGN KEY (KIND_TYPE_ID) REFERENCES TBIDB_OBJECT_KIND (GUID) ) GO @@ -584,12 +586,15 @@ AS FROM INSERTED WHERE TBIDB_STRUCTURE_TYPE.GUID = INSERTED.GUID GO +INSERT INTO TBIDB_STRUCTURE_TYPE (TITLE) VALUES ('DOC_DOCTYPE'); +GO + CREATE TABLE TBIDB_OBJECT_STRUCTURE_TYPE ( GUID BIGINT NOT NULL IDENTITY (1, 1), IDB_OBJ_ID BIGINT NOT NULL, STRUCTURE_ID INTEGER NOT NULL, - PARENT_OBJ_ID BIGINT NOT NULL DEFAULT 0, + RELATION_ID INTEGER NOT NULL, COMMENT VARCHAR(1000), ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), @@ -609,6 +614,10 @@ AS WHERE TBIDB_OBJECT_STRUCTURE_TYPE.GUID = INSERTED.GUID GO +INSERT INTO TBIDB_OBJECT_STRUCTURE_TYPE (IDB_OBJ_ID,STRUCTURE_ID,RELATION_ID) VALUES (12031,1 ,(SELECT GUID FROM TBIDB_DOCTYPE WHERE TITLE = 'Projektunterlage')) +INSERT INTO TBIDB_OBJECT_STRUCTURE_TYPE (IDB_OBJ_ID,STRUCTURE_ID,RELATION_ID) VALUES (12037,1 ,(SELECT GUID FROM TBIDB_DOCTYPE WHERE TITLE = 'Lieferschein')) +INSERT INTO TBIDB_OBJECT_STRUCTURE_TYPE (IDB_OBJ_ID,STRUCTURE_ID,RELATION_ID) VALUES (12035,1 ,(SELECT GUID FROM TBIDB_DOCTYPE WHERE TITLE = 'Gutschrift')) + CREATE TABLE TBIDB_DOC_INFO ( GUID BIGINT NOT NULL IDENTITY (1, 1), @@ -699,7 +708,7 @@ AS WHERE TBIDB_ATTRIBUTE.GUID = INSERTED.GUID GO -CREATE TRIGGER [dbo].[TBIDB_ATTRIBUTE_AFT_INS] ON [dbo].[TBIDB_ATTRIBUTE] +CREATE OR ALTER TRIGGER [dbo].[TBIDB_ATTRIBUTE_AFT_INS] ON [dbo].[TBIDB_ATTRIBUTE] FOR INSERT AS DECLARE @@ -737,16 +746,14 @@ AS ,@LANG_ID ,@NEW_TERM_ID ,@ADDED_WHO); - --BEGIN TRY - -- EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE - --END TRY - --BEGIN CATCH - --END CATCH + EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'DEFAULT' + EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'' FETCH NEXT FROM cursorIDBLANGUAGE_ATTR INTO @LANG_ID,@LANG_CODE END CLOSE cursorIDBLANGUAGE_ATTR DEALLOCATE cursorIDBLANGUAGE_ATTR + GO CREATE TABLE TBIDB_BE_ATTRIBUTE @@ -1351,7 +1358,7 @@ CREATE TABLE TBIDB_COMMON_SQL CONSTRAINT PK_TBIDB_COMMON_SQL PRIMARY KEY (GUID) ) GO - +DELETE FROM [TBIDB_COMMON_SQL] WHERE TITLE = 'FLOW_SEARCH_SQL_BASE'; INSERT INTO [dbo].[TBIDB_COMMON_SQL] ([TITLE] ,[SQL_COMMAND] @@ -1359,16 +1366,24 @@ INSERT INTO [dbo].[TBIDB_COMMON_SQL] 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') + DOC.* + FROM + TBIDB_SEARCH_RESULT_TERM_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''' + CHAR(10) + + 'UNION + SELECT + DOC.* + FROM + TBIDB_SEARCH_RESULT_STRUCT_TYPE_USER RES INNER JOIN VWIDB_DOC_DOCTYPE VWDT ON RES.STRUCTURE_ID = VWDT.STRUCTURE_ID AND RES.IDB_OBJ_ID = VWDT.IDB_OBJ_ID + INNER JOIN VWIDB_DOCRESULT_DE DOC ON RES.IDB_OBJ_ID = DOC.DocID + WHERE + RES.USR_ID = @USER_ID AND VWDT.LANG_CODE = ''@LANG_CODE''','SYSTEM') GO -CREATE TABLE TBIDB_SEARCH_RESULT_USER +CREATE TABLE TBIDB_SEARCH_RESULT_TERM_USER ( GUID BIGINT NOT NULL IDENTITY (1, 1), MD_GUID BIGINT @@ -1376,6 +1391,16 @@ CREATE TABLE TBIDB_SEARCH_RESULT_USER CONSTRAINT FK_TBIDB_SEARCH_RESULT_USER_MD_GUID FOREIGN KEY (MD_GUID) REFERENCES TBIDB_OBJECT_METADATA (GUID) ) GO +CREATE TABLE TBIDB_SEARCH_RESULT_STRUCT_TYPE_USER +( + GUID BIGINT NOT NULL IDENTITY (1, 1), + IDB_OBJ_ID BIGINT NOT NULL, + STRUCTURE_ID INTEGER NOT NULL, + USR_ID INTEGER + CONSTRAINT FK_TBIDB_SEARCH_RESULT_STRUCT_TYPE_USER_IDBOBJID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID), + CONSTRAINT FK_TBIDB_SEARCH_RESULT_STRUCT_TYPE_USER_STRUCTURE_ID FOREIGN KEY (STRUCTURE_ID) REFERENCES TBIDB_STRUCTURE_TYPE (GUID) +) +GO CREATE TABLE TBIDB_SEARCH_DATE_VALUE_USER ( @@ -1938,7 +1963,52 @@ AS FROM INSERTED WHERE TBIDB_TERM_TYPE.GUID = INSERTED.GUID GO - +CREATE TABLE TBIDB_OBJECT_DYNAMIC_FOLDER +( + GUID BIGINT NOT NULL IDENTITY (1, 1), + IDB_OBJ_ID BIGINT NOT NULL, + DYN_FOLD_ID BIGINT NOT NULL, + COMMENT VARCHAR(1000), + ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', + ADDED_WHEN DATETIME DEFAULT (GETDATE()), + CHANGED_WHO VARCHAR(100), + CHANGED_WHEN DATETIME, + CONSTRAINT PK_TBIDB_OBJECT_DYNAMIC_FOLDER PRIMARY KEY (GUID), + CONSTRAINT UQ_TBIDB_OBJECT_DYNAMIC_FOLDER UNIQUE (IDB_OBJ_ID,DYN_FOLD_ID), + CONSTRAINT FK_TBIDB_OBJECT_DYNAMIC_FOLDER_IDBOBJID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID), + CONSTRAINT FK_TBIDB_OBJECT_DYNAMIC_FOLDER_DYNFOLDID FOREIGN KEY (DYN_FOLD_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID) +) +GO +CREATE TRIGGER TBIDB_OBJECT_DYNAMIC_FOLDER_AFT_UPD ON TBIDB_OBJECT_DYNAMIC_FOLDER +FOR UPDATE +AS + UPDATE TBIDB_OBJECT_DYNAMIC_FOLDER SET CHANGED_WHEN = GETDATE() + FROM INSERTED + WHERE TBIDB_OBJECT_DYNAMIC_FOLDER.GUID = INSERTED.GUID +GO +DROP TABLE TBIDB_OBJECT_CHECK_IN_OUT +CREATE TABLE TBIDB_OBJECT_CHECK_IN_OUT +( + GUID BIGINT NOT NULL IDENTITY (1, 1), + IDB_OBJ_ID BIGINT NOT NULL, + CHECKED_OUT_WHEN DATETIME NOT NULL, + CHECKED_IN_WHEN DATETIME, + COMMENT VARCHAR(1000), + ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', + ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), + CHANGED_WHO VARCHAR(100), + CHANGED_WHEN DATETIME, + CONSTRAINT PK_TBIDB_OBJECT_CHECK_IN_OUT PRIMARY KEY (GUID), + CONSTRAINT FK_TBIDB_OBJECT_CHECK_IN_OUT_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID) +) +GO +CREATE TRIGGER TBIDB_OBJECT_CHECK_IN_OUT_AFT_UPD ON TBIDB_OBJECT_CHECK_IN_OUT +FOR UPDATE +AS + UPDATE TBIDB_OBJECT_CHECK_IN_OUT SET CHANGED_WHEN = GETDATE() + FROM INSERTED + WHERE TBIDB_OBJECT_CHECK_IN_OUT.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID +GO /*########################### ######### FUNCTIONS ######### #############################*/ @@ -3308,6 +3378,7 @@ SELECT LT.GUID as ID ,LT.OBJECT_ID as Doctype_ID ,DT.TITLE AS SYS_TITLE + ,LT.TERM_ID ,TERM.TERM_VALUE AS Doctype ,LT.LANG_ID ,LANG.LANG_CODE @@ -3370,6 +3441,53 @@ FROM WHERE C.KIND_TYPE = 3 GO +CREATE OR ALTER VIEW VWIDB_DOC_DOCTYPE AS +SELECT A.GUID, + + A.IDB_OBJ_ID + ,A.STRUCTURE_ID + ,B.TITLE AS STRUCTURE_TITLE + ,C.SYS_TITLE + ,C.Doctype_ID + ,C.Doctype + ,C.TERM_ID + ,C.LANG_CODE + ,C.LANG_ID + ,A.ADDED_WHO + ,A.ADDED_WHEN + ,B.CHANGED_WHO + ,B.CHANGED_WHEN + ,OBJ.ADDED_WHEN OBJ_ADDED_WHEN + ,OBJ.CHANGED_WHEN OBJ_CHANGED_WHEN + ,OBJ.ACTIVE OBJ_ACTIVE +FROM + TBIDB_OBJECT_STRUCTURE_TYPE A INNER JOIN TBIDB_STRUCTURE_TYPE B ON A.STRUCTURE_ID = B.GUID + INNER JOIN VWIDB_DOCTYPE_LANGUAGE C ON A.RELATION_ID = C.Doctype_ID + INNER JOIN TBIDB_OBJECT OBJ ON A.IDB_OBJ_ID = OBJ.IDB_OBJ_ID +WHERE B.TITLE = 'DOC_DOCTYPE' +GO +CREATE OR ALTER VIEW VWIDB_STRUCTURE_NODES AS +select + T.GUID AS MetadataID, + T1.GUID AS AttributID, + T.IDB_OBJ_ID, + OBJ.PARENT_OBJ_ID, + T1.TITLE as Attribut, + T3.GUID as TERM_GUID, + T3.TERM_VALUE, + T4.LANG_CODE, + T.ADDED_WHO, + T.ADDED_WHEN, + T.CHANGED_WHO [Geändert wer], + T.CHANGED_WHEN [Geändert wann] +from TBIDB_OBJECT_METADATA T + INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID + INNER JOIN TBIDB_LANGUAGE_TERM T2 ON T.GUID = T2.[OBJECT_ID] + INNER JOIN TBIDB_OBJECT OBJ ON T.IDB_OBJ_ID = OBJ.IDB_OBJ_ID + INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T2.TERM_ID = T3.GUID + INNER JOIN TBIDB_LANGUAGE T4 ON T2.LANG_ID = T4.GUID +WHERE OBJ.ACTIVE = 1 AND OBJ.KIND_TYPE_ID = 3 AND T1.GUID = (SELECT GUID FROM TBIDB_ATTRIBUTE WHERE TITLE = 'VIRTUAL_FOLDER_PART') +GO /*########################################### ############## PROCEDURES ################### #############################################*/ @@ -3438,6 +3556,7 @@ GO CREATE OR ALTER VIEW [dbo].[VWIDB_STATES_LANGUAGE] AS SELECT A.GUID AS STATE_ID, + B.GUID LANG_TERM_ID, A.TITLE AS STATE_TITLE, D.TERM_VALUE AS STATE_TERM, B.LANG_ID, @@ -3455,6 +3574,7 @@ INNER JOIN TBIDB_TERM_VALUE_VARCHAR D ON B.TERM_ID = D.GUID INNER JOIN TBIDB_LANGUAGE C ON B.LANG_ID = C.GUID INNER JOIN TBIDB_TERM_VALUE_VARCHAR E ON A.ADDED_WHO = E.GUID INNER JOIN TBIDB_TERM_VALUE_VARCHAR F ON B.CHANGED_WHO = F.GUID +WHERE B.KIND_TYPE = 3 GO -- ============================================= -- Author: DD MS @@ -3554,6 +3674,7 @@ BEGIN INSERT INTO TBIDB_LANGUAGE_TERM (KIND_TYPE, [OBJECT_ID],TERM_ID,LANG_ID,ADDED_WHO) VALUES(3, @STATE_ID,@STATE_TERM_ID,@LANG_ID,@ADDED_WHO_TERM_ID); ELSE UPDATE TBIDB_LANGUAGE_TERM SET TERM_ID = @STATE_TERM_ID,CHANGED_WHO = @ADDED_WHO_TERM_ID WHERE [OBJECT_ID] = @STATE_ID AND LANG_ID = @LANG_ID + AND TERM_ID <> @STATE_TERM_ID; FETCH NEXT FROM c_PRIDB_NEW_IDB_OBJECT_STATE INTO @LANG_ID,@pLANG_CODE END @@ -3562,19 +3683,23 @@ BEGIN END GO -CREATE OR ALTER PROCEDURE [dbo].[PRIDB_SET_IDB_STATE] @pSTATE_ID INTEGER, @pSTATE VARCHAR(100), @pLANG_CODE VARCHAR(5),@pWHO VARCHAR(100) +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_SET_IDB_STATE_LANG] @pSTATE VARCHAR(100),@pSTATE_LANG VARCHAR(100), @pLANG_CODE VARCHAR(5),@pWHO VARCHAR(100) AS BEGIN DECLARE - @LANG_ID INTEGER + @LANG_ID INTEGER, + @pSTATE_ID INTEGER SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE; - + SELECT @pSTATE_ID = GUID FROM TBIDB_STATES WHERE TITLE = @pSTATE DECLARE @STATE_TERM_ID BIGINT,@LANG_STATE_TERM_ID BIGINT - EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT; + EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE_LANG,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT; DECLARE @CHANGED_WHO_TERM_ID BIGINT EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @CHANGED_WHO_TERM_ID OUTPUT; - UPDATE TBIDB_LANGUAGE_TERM SET TERM_ID = @STATE_TERM_ID,CHANGED_WHO = @CHANGED_WHO_TERM_ID WHERE [OBJECT_ID] = @pSTATE_ID AND LANG_ID = @LANG_ID + IF NOT EXISTS(SELECT GUID FROM TBIDB_LANGUAGE_TERM WHERE [OBJECT_ID] = @pSTATE_ID AND LANG_ID = @LANG_ID AND KIND_TYPE = 3) + INSERT INTO TBIDB_LANGUAGE_TERM (KIND_TYPE, [OBJECT_ID],TERM_ID,LANG_ID,ADDED_WHO) VALUES(3, @pSTATE_ID,@STATE_TERM_ID,@LANG_ID,@CHANGED_WHO_TERM_ID); + ELSE + UPDATE TBIDB_LANGUAGE_TERM SET TERM_ID = @STATE_TERM_ID,CHANGED_WHO = @CHANGED_WHO_TERM_ID WHERE KIND_TYPE = 3 AND [OBJECT_ID] = @pSTATE_ID AND LANG_ID = @LANG_ID AND TERM_ID <> @STATE_TERM_ID; END GO EXEC PRIDB_NEW_IDB_STATE 'Started', 'SYSTEM'; @@ -3587,13 +3712,13 @@ EXEC PRIDB_NEW_IDB_STATE 'Metadata changed','SYSTEM'; EXEC PRIDB_NEW_IDB_STATE 'Attributevalue deleted','SYSTEM'; EXEC PRIDB_NEW_IDB_STATE 'File opened', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 3,'Datei versioniert', 'de-DE', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 4,'Datei erstellt', 'de-DE', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 5,'Datei geändert', 'de-DE', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 6,'Datei gelöscht', 'de-DE', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 7,'Attributwert geändert', 'de-DE', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 8,'Attributwert gelöscht', 'de-DE', 'SYSTEM'; -EXEC PRIDB_SET_IDB_STATE 9,'Datei geöffnet', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'File Versioned','Datei versioniert', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'File added','Datei erstellt', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'File changed','Datei geändert', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'File deleted','Datei gelöscht', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'Metadata changed','Attributwert geändert', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'Attributevalue deleted','Attributwert gelöscht', 'de-DE', 'SYSTEM'; +EXEC PRIDB_SET_IDB_STATE_LANG 'File opened','Datei geöffnet', 'de-DE', 'SYSTEM'; GO CREATE OR ALTER PROCEDURE [dbo].[PRIDB_DELETE_ATTRIBUTE_DATA] @IDB_OBJ_ID BIGINT, @ATTRIBUTE VARCHAR(100), @WHO VARCHAR(100) @@ -3982,9 +4107,9 @@ BEGIN ,@WHO) END ELSE - UPDATE TBIDB_OBJECT_METADATA SET [DATE_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID + UPDATE TBIDB_OBJECT_METADATA SET [DATE_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID; - SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID + SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID; END ELSE IF @TYP_ID = 6 --DATETIME BEGIN @@ -3999,20 +4124,18 @@ BEGIN (@IDB_OBJ_ID ,@ATTR_ID ,@MY_TERM_ID - ,@WHO) + ,@WHO); END ELSE - UPDATE TBIDB_OBJECT_METADATA SET [DATETIME_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID - - SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID + UPDATE TBIDB_OBJECT_METADATA SET [DATETIME_TERM_ID] = @MY_TERM_ID, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID; + EXEC PRIDB_OBJECT_CHANGED_SUBSTRUCTURE @IDB_OBJ_ID,@WHO; + SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID; END --PRINT 'PRIDB_NEW_OBJ_DATA - Got the new @OMD_ID: ' + CONVERT(VARCHAR(20),@OMD_ID) END GO - - -CREATE OR ALTER PROCEDURE [dbo].[PRIDB_CREATE_VIEW_DOC_DATA] @pLANGCODE VARCHAR(5) ,@pVar VARCHAR(15) = 'DEFAULT' +ALTER PROCEDURE [dbo].[PRIDB_CREATE_VIEW_DOC_DATA] @pLANGCODE VARCHAR(5) ,@pVar VARCHAR(15) = 'DEFAULT' AS DECLARE @ATTR_ID INT, @@ -4037,6 +4160,8 @@ DECLARE SET @SQL1 += +'T.IDB_OBJ_ID' + char(10) ELSE SET @SQL1 += +'T.IDB_OBJ_ID as DocID' + char(10) + + SET @SQL1 += char(9) + ',DT.Doctype as Doctype' + char(10) BEGIN DECLARE c_PRIDB_CREATE_VIEW_DOC_DATA CURSOR FOR SELECT DISTINCT ATTR_ID,ATTR_TITLE,TYPE_ID,VIEW_SEQUENCE @@ -4097,19 +4222,23 @@ BEGIN 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) + + char(9) + ',T.CHANGED_WHEN_SUBSTRUCTURE AS [Changed when]' + char(10) + + char(9) + ',T.CHANGED_WHO_SUBSTRUCTURE 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 VWIDB_DOC_DOCTYPE DT ON T.IDB_OBJ_ID = DT.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) ELSE SET @SQL1 += char(9) + 'TBIDB_OBJECT T ' + char(10) + + char(9) + 'INNER JOIN VWIDB_DOC_DOCTYPE DT ON T.IDB_OBJ_ID = DT.IDB_OBJ_ID' + char(10) - SET @SQL1 += 'WHERE ' + char(10) + char(9) + 'T.KIND_TYPE_ID = 1 AND T.DELETED = 0 AND T.ACTIVE = 1' + SET @SQL1 += 'WHERE' + char(10) + + char(9) + 'DT.LANG_CODE = ''' + @pLANGCODE + ''' AND' + 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 = @NAME_VIEW + UPPER(LEFT(@pLANGCODE,2))) BEGIN @@ -4120,7 +4249,6 @@ BEGIN 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','' @@ -4913,44 +5041,68 @@ GO -- ,@WHO_TERM_ID FROM TBIDB_USER_SEARCH_CRITERIA WHERE USERID = @pUserID AND SEARCH_PROFIL_ID = @pSEARCHID --END --GO --- ============================================= --- Author: DD MS 15.03.2021 --- Change date: --- ============================================= -CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_OBJECT] @KIND_TYPE VARCHAR(20),@WHO VARCHAR(100),@IDB_DOCTYPE_ID INTEGER,@FOREIGN_REFID Bigint = 0, @IDB_OBJ_ID BIGINT OUTPUT +ALTER PROCEDURE [dbo].[PRIDB_NEW_OBJECT] @KIND_TYPE VARCHAR(20),@WHO VARCHAR(100),@FOREIGN_REFID Bigint = 0,@PARENT_OBJ_ID BIGINT = 0, @IDB_OBJ_ID BIGINT OUTPUT AS BEGIN DECLARE @KINDTYPE_ID TINYINT - SELECT @KINDTYPE_ID = GUID FROM TBIDB_OBJECT_KIND WHERE UPPER(KIND_NAME) = UPPER(@KIND_TYPE); + SELECT @KINDTYPE_ID = GUID FROM TBIDB_OBJECT_KIND WHERE KIND_NAME = @KIND_TYPE; 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 + BEGIN + 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],PARENT_OBJ_ID,[ADDED_WHO]) VALUES (@KINDTYPE_ID,@FOREIGN_REFID,@PARENT_OBJ_ID,@WHO); + END + END ELSE BEGIN INSERT INTO [dbo].[TBIDB_OBJECT] - ([KIND_TYPE_ID],[ADDED_WHO]) VALUES (@KINDTYPE_ID,@WHO); + ([KIND_TYPE_ID],[REFERENCE_KEY],PARENT_OBJ_ID,[ADDED_WHO]) VALUES (@KINDTYPE_ID,@FOREIGN_REFID,@PARENT_OBJ_ID,@WHO); END SELECT @IDB_OBJ_ID = MAX(IDB_OBJ_ID) FROM TBIDB_OBJECT WHERE ADDED_WHO = @WHO; - INSERT INTO TBIDB_OBJECT_BE (IDB_OBJ_ID,BE_ID, ADDED_WHO) - SELECT @IDB_OBJ_ID,BE_ID,@WHO FROM TBIDB_DOCTYPE_BE WHERE DOCTYPE_ID = @IDB_DOCTYPE_ID; +END +GO +-- ============================================= +-- Author: DD MS +-- ============================================= +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_DOC_DOCTYPE] @pIDB_OBJ_ID BIGINT,@pDoctypeID INTEGER, @pWHO VARCHAR(100) +AS +BEGIN + + IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_STRUCTURE_TYPE WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND STRUCTURE_ID = 1 AND RELATION_ID = @pDoctypeID ) + INSERT INTO TBIDB_OBJECT_STRUCTURE_TYPE (IDB_OBJ_ID,STRUCTURE_ID,RELATION_ID,ADDED_WHO) VALUES (@pIDB_OBJ_ID,1 ,@pDoctypeID,@pWHO); + UPDATE TBIDB_OBJECT_STRUCTURE_TYPE SET RELATION_ID = @pDoctypeID,CHANGED_WHO = @pWHO + WHERE + IDB_OBJ_ID = @pIDB_OBJ_ID AND STRUCTURE_ID = 1 + AND RELATION_ID <> @pDoctypeID; + EXEC PRIDB_OBJECT_CHANGED_SUBSTRUCTURE @pIDB_OBJ_ID,@pWHO +END +GO +-- ============================================= +-- Author: DD MS +-- ============================================= +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_OBJECT_CHANGED_SUBSTRUCTURE] @pIDB_OBJ_ID BIGINT,@pWHO VARCHAR(100) +AS +BEGIN + + UPDATE TBIDB_OBJECT SET + CHANGED_WHEN_SUBSTRUCTURE = GETDATE() + ,CHANGED_WHO_SUBSTRUCTURE = @pWHO WHERE IDB_OBJ_ID = @pIDB_OBJ_ID END GO -- ============================================= -- Author: DD MS 15.03.2021 -- Change: 13.07.2021 Filesize -- ============================================= -CREATE PROCEDURE [dbo].[PRIDB_NEW_IDBFO] @REL_PATH VARCHAR(512),@FILE_NAME VARCHAR(200),@FILE_EXT VARCHAR(10), @FILE_SIZE BIGINT, @FILE_HASH VARCHAR(500), - @WHO VARCHAR(100), @IDB_OBJ_ID BIGINT,@OBJ_ST_ID INT +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_IDBFO] @REL_PATH VARCHAR(512),@FILE_NAME VARCHAR(200),@FILE_EXT VARCHAR(10), @FILE_SIZE BIGINT, @FILE_HASH VARCHAR(500), + @WHO VARCHAR(100), @IDB_OBJ_ID BIGINT,@OBJ_ST_ID INT,@IDB_DOCTYPE_ID INTEGER AS BEGIN DECLARE @@ -4969,7 +5121,11 @@ BEGIN --SELECT @FILENAME_ONLY = [dbo].[FNGetFileNameWithoutExtension] (@REL_PATH); --SELECT @EXT = UPPER([dbo].[FNGetExtension] (@REL_PATH)); --PRINT 'PRIDB_NEW_IDBFO: ' + @REL_PATH - + INSERT INTO TBIDB_OBJECT_BE (IDB_OBJ_ID,BE_ID, ADDED_WHO) + SELECT @IDB_OBJ_ID,BE_ID,@WHO FROM TBIDB_DOCTYPE_BE WHERE DOCTYPE_ID = @IDB_DOCTYPE_ID; + --ADD THE DOCTYPE + EXEC PRIDB_NEW_DOC_DOCTYPE @IDB_OBJ_ID,@IDB_DOCTYPE_ID, @WHO; + 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] @@ -5298,7 +5454,7 @@ GO -- Changed: 01.11.2021 MS TERM_COLUMNS -- Changed: 10.08.2020 MS Anpassung -- ============================================= -CREATE 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 +CREATE OR 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 @@ -5333,7 +5489,7 @@ BEGIN 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; + EXEC PRIDB_NEW_OBJECT 'DOC',@WHO,@BE,@REF_DOCID, 0,@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) @@ -5441,10 +5597,69 @@ BEGIN END GO +-- ============================================= +-- Author: DD MS +-- Changed: +-- ============================================= +CREATE PROCEDURE PRIDB_NEW_DYNAMIC_FOLDER_FOR_OBJECT @pIDB_OBJ_ID BIGINT, @pDYNAMIC_FOLDER VARCHAR(900),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) +AS +DECLARE + @FOLD_PART VARCHAR(250) +BEGIN + + DECLARE @FOLDER_DEPTH TINYINT,@FOLDER_PART VARCHAR(900) + SET @FOLDER_DEPTH = 0 + DECLARE @PARENT_OBJ_ID BIGINT + --SPLIT FOR FOLDER PARTS + DECLARE cursSplitFolder CURSOR FOR + SELECT Item FROM [dbo].[FN_SPLIT_STRING] (@pDYNAMIC_FOLDER,'\') + OPEN cursSplitFolder + FETCH NEXT FROM cursSplitFolder INTO @FOLD_PART + WHILE @@FETCH_STATUS = 0 + BEGIN + --EACH FOLDER PART WORKED SEPERATELY + IF @FOLDER_DEPTH = 0 + BEGIN + SET @PARENT_OBJ_ID = 0 + SET @FOLDER_PART = @FOLD_PART + END + ELSE + BEGIN + SET @FOLDER_PART += '\' + @FOLD_PART + END + PRINT '##############################' + PRINT '@FOLDER_PART: ' + @FOLDER_PART + DECLARE @PATH_PART_ID BIGINT,@FOLDER_PART_ID BIGINT + EXEC PRIDB_NEW_TERM 'VARCHAR',@FOLD_PART,@pWHO,@TERM_ID = @PATH_PART_ID OUTPUT; + --EXEC PRIDB_NEW_TERM 'VARCHAR',@FOLDER_PART,'DD MS',@TERM_ID = @FOLDER_PART_ID OUTPUT; + DECLARE @FOLD_PART_IDB_OBJ_ID BIGINT + IF NOT EXISTS(SELECT * FROM VWIDB_STRUCTURE_NODES WHERE TERM_GUID = @PATH_PART_ID AND PARENT_OBJ_ID = @PARENT_OBJ_ID) + BEGIN + PRINT 'FOLDER-PART ' + @FOLD_PART + ' muss angelegt werden' + EXEC PRIDB_NEW_OBJECT 'DYNAMIC_FOLDER',@pWHO,0, @PARENT_OBJ_ID, @IDB_OBJ_ID = @FOLD_PART_IDB_OBJ_ID OUTPUT; + DECLARE @NEW_OBJ_MD_ID BIGINT + EXEC PRIDB_NEW_OBJ_DATA @FOLD_PART_IDB_OBJ_ID, 'VIRTUAL_FOLDER_PART', @pWHO, @FOLD_PART, @pLANG_CODE, 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT + END + ELSE + BEGIN + SELECT @FOLD_PART_IDB_OBJ_ID = MAX(IDB_OBJ_ID) FROM VWIDB_STRUCTURE_NODES WHERE TERM_GUID = @PATH_PART_ID AND PARENT_OBJ_ID = @PARENT_OBJ_ID + PRINT 'FOLDER-PART ' + @FOLD_PART + ' EXISTIERT BEREITS' + END + SET @PARENT_OBJ_ID = @FOLD_PART_IDB_OBJ_ID + + SET @FOLDER_DEPTH += 1 + FETCH NEXT FROM cursSplitFolder INTO @FOLD_PART + END + CLOSE cursSplitFolder + DEALLOCATE cursSplitFolder + + IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_DYNAMIC_FOLDER WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND DYN_FOLD_ID = @FOLD_PART_IDB_OBJ_ID) + INSERT INTO TBIDB_OBJECT_DYNAMIC_FOLDER (IDB_OBJ_ID,DYN_FOLD_ID,ADDED_WHO) VALUES (@pIDB_OBJ_ID,@FOLD_PART_IDB_OBJ_ID,@pWHO); +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 ('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); INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('OriginChangedDatetime',6,1); @@ -5456,6 +5671,8 @@ 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) VALUES ('VIRTUAL_FOLDER',1,1); +INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE) VALUES ('VIRTUAL_FOLDER_PART',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') ; @@ -5478,7 +5695,7 @@ BEGIN @USRID,'GLOBIX_DROPAREA','PROGRESSIVE','System'); END GO -ALTER PROCEDURE [dbo].[PRIDB_NEW_DOCTYPE] @pDoctypeUnique VARCHAR(100),@pDoctype_Lang VARCHAR(100),@pWHO VARCHAR(100),@LANG_CODE VARCHAR(5) = 'de-DE' +CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_DOCTYPE] @pDoctypeUnique VARCHAR(100),@pDoctype_Lang VARCHAR(100),@pWHO VARCHAR(100),@LANG_CODE VARCHAR(5) = 'de-DE' AS BEGIN DECLARE @@ -5520,7 +5737,7 @@ BEGIN IF EXISTS(SELECT GUID FROM TBIDB_LANGUAGE_TERM WHERE OBJECT_ID = @DOCTYPE_ID AND LANG_ID = @LANG_ID AND TERM_ID <> @MY_DOCTYPE_TERM_ID AND KIND_TYPE = 2) BEGIN UPDATE [dbo].[TBIDB_LANGUAGE_TERM] SET TERM_ID = @MY_DOCTYPE_TERM_ID, CHANGED_WHO = @WHO_TERM_ID - WHERE OBJECT_ID = @DOCTYPE_ID AND LANG_ID = @LANG_ID AND KIND_TYPE = 2; + WHERE OBJECT_ID = @DOCTYPE_ID AND LANG_ID = @LANG_ID AND KIND_TYPE = 2 AND TERM_ID <> @MY_DOCTYPE_TERM_ID; END END diff --git a/00_IDB/Search_Logic.sql b/00_IDB/Search_Logic.sql new file mode 100644 index 0000000..909ace0 Binary files /dev/null and b/00_IDB/Search_Logic.sql differ diff --git a/00_IDB/Search_TEST.sql b/00_IDB/Search_TEST.sql new file mode 100644 index 0000000..a992f05 Binary files /dev/null and b/00_IDB/Search_TEST.sql differ diff --git a/00_IDB/StructureNode.sql b/00_IDB/StructureNode.sql new file mode 100644 index 0000000..b49ec29 --- /dev/null +++ b/00_IDB/StructureNode.sql @@ -0,0 +1,59 @@ +-- ============================================= +-- Author: DD MS +-- Changed: +-- ============================================= +CREATE PROCEDURE PRIDB_NEW_DYNAMIC_FOLDER_FOR_OBJECT @pIDB_OBJ_ID BIGINT, @pDYNAMIC_FOLDER VARCHAR(900),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) +AS +DECLARE + @FOLD_PART VARCHAR(250) +BEGIN + + DECLARE @FOLDER_DEPTH TINYINT,@FOLDER_PART VARCHAR(900) + SET @FOLDER_DEPTH = 0 + DECLARE @PARENT_OBJ_ID BIGINT + --SPLIT FOR FOLDER PARTS + DECLARE cursSplitFolder CURSOR FOR + SELECT Item FROM [dbo].[FN_SPLIT_STRING] (@pDYNAMIC_FOLDER,'\') + OPEN cursSplitFolder + FETCH NEXT FROM cursSplitFolder INTO @FOLD_PART + WHILE @@FETCH_STATUS = 0 + BEGIN + --EACH FOLDER PART WORKED SEPERATELY + IF @FOLDER_DEPTH = 0 + BEGIN + SET @PARENT_OBJ_ID = 0 + SET @FOLDER_PART = @FOLD_PART + END + ELSE + BEGIN + SET @FOLDER_PART += '\' + @FOLD_PART + END + PRINT '##############################' + PRINT '@FOLDER_PART: ' + @FOLDER_PART + DECLARE @PATH_PART_ID BIGINT,@FOLDER_PART_ID BIGINT + EXEC PRIDB_NEW_TERM 'VARCHAR',@FOLD_PART,@pWHO,@TERM_ID = @PATH_PART_ID OUTPUT; + --EXEC PRIDB_NEW_TERM 'VARCHAR',@FOLDER_PART,'DD MS',@TERM_ID = @FOLDER_PART_ID OUTPUT; + DECLARE @FOLD_PART_IDB_OBJ_ID BIGINT + IF NOT EXISTS(SELECT * FROM VWIDB_STRUCTURE_NODES WHERE TERM_GUID = @PATH_PART_ID AND PARENT_OBJ_ID = @PARENT_OBJ_ID) + BEGIN + PRINT 'FOLDER-PART ' + @FOLD_PART + ' muss angelegt werden' + EXEC PRIDB_NEW_OBJECT 'DYNAMIC_FOLDER',@pWHO,0, @PARENT_OBJ_ID, @IDB_OBJ_ID = @FOLD_PART_IDB_OBJ_ID OUTPUT; + DECLARE @NEW_OBJ_MD_ID BIGINT + EXEC PRIDB_NEW_OBJ_DATA @FOLD_PART_IDB_OBJ_ID, 'VIRTUAL_FOLDER_PART', @pWHO, @FOLD_PART, @pLANG_CODE, 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT + END + ELSE + BEGIN + SELECT @FOLD_PART_IDB_OBJ_ID = MAX(IDB_OBJ_ID) FROM VWIDB_STRUCTURE_NODES WHERE TERM_GUID = @PATH_PART_ID AND PARENT_OBJ_ID = @PARENT_OBJ_ID + PRINT 'FOLDER-PART ' + @FOLD_PART + ' EXISTIERT BEREITS' + END + SET @PARENT_OBJ_ID = @FOLD_PART_IDB_OBJ_ID + + SET @FOLDER_DEPTH += 1 + FETCH NEXT FROM cursSplitFolder INTO @FOLD_PART + END + CLOSE cursSplitFolder + DEALLOCATE cursSplitFolder + + IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_DYNAMIC_FOLDER WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND DYN_FOLD_ID = @FOLD_PART_IDB_OBJ_ID) + INSERT INTO TBIDB_OBJECT_DYNAMIC_FOLDER (IDB_OBJ_ID,DYN_FOLD_ID,ADDED_WHO) VALUES (@pIDB_OBJ_ID,@FOLD_PART_IDB_OBJ_ID,@pWHO); +END diff --git a/04_APPSERV/INSERT_JOBS.sql b/04_APPSERV/INSERT_JOBS.sql index cd22a3d..0cc08ca 100644 --- a/04_APPSERV/INSERT_JOBS.sql +++ b/04_APPSERV/INSERT_JOBS.sql @@ -260,6 +260,12 @@ 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 [dbo].[TBAPPSERV_CRON_DETAIL]( +CRON_ID, CON_ID, TITLE ,DT_NAME, RUN_ON_STARTUP, COMMAND) VALUES ( +3, 1, 'VWGI_DOCTYPE_USER', 'VWGI_DOCTYPE_USER', 1,'SELECT A.DOCTYPE_ID,A.USERNAME,DL.Doctype,A.OBJECT_ST_NAME, DL.Doctype_ID as IDBDoctype_ID,DL.LANG_CODE,A.SEQUENCE +FROM VWGI_DOCTYPE_USER A INNER JOIN TBDD_DOKUMENTART DT ON A.DOCTYPE_ID = DT.GUID +INNER JOIN IDB.dbo.VWIDB_DOCTYPE_LANGUAGE DL ON DT.IDB_DOCTYPE_ID = DL.Doctype_ID WHERE A.AKTIV = 1'); +GO