SqlScripts/01_IDB/CreateDBObjects.sql

6377 lines
244 KiB
Transact-SQL
Raw Blame History

--REPLACE @MY_DD_ECM_DB WITH REAL_DBNAME
USE IDB
GO
ALTER TABLE DD_ECM.dbo.TBDD_DOKUMENTART
ADD IDB_DOCTYPE_ID INT NOT NULL DEFAULT 0;
GO
CREATE TABLE TBIDB_DOCTYPE
(
GUID INT NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(100) NOT NULL,
COMMENT VARCHAR(500),
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'Systm',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_DOCTYPES PRIMARY KEY (GUID),
CONSTRAINT UN_TBIDB_DOCTYPES UNIQUE(TITLE))
GO
CREATE TRIGGER TBIDB_DOCTYPE_AFT_UPD ON TBIDB_DOCTYPE
FOR UPDATE
AS
UPDATE TBIDB_DOCTYPE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_DOCTYPE.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_DOCTYPE (TITLE) VALUES ('Ausgangsrechnung');
INSERT INTO TBIDB_DOCTYPE (TITLE) VALUES ('Eingangsrechnung');
INSERT INTO TBIDB_DOCTYPE (TITLE) VALUES ('Gutschrift');
INSERT INTO TBIDB_DOCTYPE (TITLE) VALUES ('Quittung');
--DROP TABLE TBIDB_CATALOG
CREATE TABLE TBIDB_CATALOG
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
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 PRIMARY KEY (GUID),
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_ACTION_OBJECT
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(100) 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_ACTION_OBJECT PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_ACTION_OBJECT UNIQUE (TITLE)
)
GO
CREATE TRIGGER TBIDB_ACTION_OBJECT_AFT_UPD ON TBIDB_ACTION_OBJECT
FOR UPDATE
AS
UPDATE TBIDB_ACTION_OBJECT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_ACTION_OBJECT.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_ACTION_OBJECT (TITLE) VALUES ('NEW_FILE');
CREATE TABLE TBIDB_ACTION_STEPS
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE_DESC VARCHAR(500) NOT NULL,
ACTION_ID INTEGER NOT NULL,
CRITERIA_DESC VARCHAR(100) NOT NULL,
PARAM1 VARCHAR(500) NOT NULL,
OPERATOR VARCHAR(100) NOT NULL,
PARAM2 VARCHAR(500) NOT NULL,
TASK VARCHAR(100) NOT NULL,
SQL1 NVARCHAR(MAX) NOT NULL,
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_ACTION_STEPS PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_ACTION_STEPS UNIQUE (ACTION_ID,PARAM1,OPERATOR,PARAM2),
CONSTRAINT FK_TBIDB_ACTION_STEPS_ACTID FOREIGN KEY (ACTION_ID) REFERENCES TBIDB_ACTION_OBJECT (GUID),
)
GO
CREATE TRIGGER TBIDB_ACTION_STEPS_AFT_UPD ON TBIDB_ACTION_STEPS
FOR UPDATE
AS
UPDATE TBIDB_ACTION_STEPS SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_ACTION_STEPS.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')
GO
INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('DOCTYPE_CHANGED','AUTO REPLACE')
GO
INSERT INTO TBIDB_CATALOG (CAT_TITLE,CAT_STRING) VALUES ('DOCTYPE_CHANGED1','QUESTION VERSION')
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
UPDATE TBIDB_CATALOG SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_CATALOG.GUID = INSERTED.GUID
GO
--DROP TABLE TBIDB_BUSINESS_ENTITY
CREATE TABLE TBIDB_BUSINESS_ENTITY
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(500) NOT NULL,
PARENT_ENT_ID INTEGER NOT NULL DEFAULT 0,
INHERITS_ATTRIBUTES BIT NOT NULL DEFAULT 1,
COMMENT VARCHAR(1000),
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_BUSINESS_ENTITY PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_BUSINESS_ENTITY UNIQUE (TITLE)
)
GO
CREATE TRIGGER TBIDB_BUSINESS_ENTITY_AFT_UPD ON TBIDB_BUSINESS_ENTITY
FOR UPDATE
AS
UPDATE TBIDB_BUSINESS_ENTITY SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_BUSINESS_ENTITY.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_BUSINESS_ENTITY (TITLE) VALUES ('DEFAULT');
--DROP TABLE TBIDB_OBJECT_STORE
CREATE TABLE TBIDB_OBJECT_STORE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
OBJECT_TITLE VARCHAR(250) NOT NULL,
CAT_ID INTEGER NOT NULL,
OBJ_PATH VARCHAR(250) NOT NULL,
IS_ARCHIVE BIT NOT NULL DEFAULT 0,
COMMENT VARCHAR(500),
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_OBJECT_STORE PRIMARY KEY (GUID),
CONSTRAINT FK_OS_CAT_ID FOREIGN KEY (CAT_ID) REFERENCES TBIDB_CATALOG (GUID) ,
CONSTRAINT UQ1_TBIDB_OBJECT_STORE UNIQUE (OBJECT_TITLE),
CONSTRAINT UQ2_TBIDB_OBJECT_STORE UNIQUE (OBJ_PATH)
)
GO
CREATE TRIGGER TBIDB_OBJECT_STORE_AFT_UPD ON TBIDB_OBJECT_STORE
FOR UPDATE
AS
UPDATE TBIDB_OBJECT_STORE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJECT_STORE.GUID = INSERTED.GUID
GO
--DROP TABLE TBIDB_DOCTYPE_OBJECT_STORE
CREATE TABLE TBIDB_DOCTYPE_OBJECT_STORE
(
GUID INT NOT NULL IDENTITY (1, 1),
DOCTYPE_ID INT NOT NULL,
OBJECT_ST_ID INT NOT NULL,
ACTIVE BIT NOT NULL DEFAULT 1,
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_DOCTYPE_OBJECT_STORE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_DOCTYPE_OBJECT_STORE UNIQUE (DOCTYPE_ID,OBJECT_ST_ID),
CONSTRAINT FK_TBIDB_DOCTYPE_OBJECT_STORE_DTID FOREIGN KEY (DOCTYPE_ID) REFERENCES TBIDB_DOCTYPE (GUID),
CONSTRAINT FK_TBIDB_DOCTYPE_OBJECT_STORE_OSTID FOREIGN KEY (OBJECT_ST_ID) REFERENCES TBIDB_OBJECT_STORE (GUID)
)
GO
CREATE TRIGGER TBIDB_DOCTYPE_OBJECT_STORE_AFT_UPD ON TBIDB_DOCTYPE_OBJECT_STORE
FOR UPDATE
AS
UPDATE TBIDB_DOCTYPE_OBJECT_STORE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_DOCTYPE_OBJECT_STORE.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_DOCTYPE_BE
(
GUID INT NOT NULL IDENTITY (1, 1),
DOCTYPE_ID INT NOT NULL,
BE_ID INT NOT NULL,
ACTIVE BIT NOT NULL DEFAULT 1,
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_DOCTYPE_BE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_DOCTYPE_BE_STORE UNIQUE (DOCTYPE_ID,BE_ID),
CONSTRAINT FK_TBIDB_DOCTYPE_BE_DTID FOREIGN KEY (DOCTYPE_ID) REFERENCES TBIDB_DOCTYPE (GUID),
CONSTRAINT FK_TBIDB_DOCTYPE_BE_BE_ID FOREIGN KEY (BE_ID) REFERENCES TBIDB_BUSINESS_ENTITY (GUID)
)
GO
CREATE TRIGGER TBIDB_DOCTYPE_BE_AFT_UPD ON TBIDB_DOCTYPE_BE
FOR UPDATE
AS
UPDATE TBIDB_DOCTYPE_BE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_DOCTYPE_BE.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_DOCTYPE_HANDLING
(
GUID INT NOT NULL IDENTITY (1, 1),
DOCTYPE VARCHAR(100) NOT NULL,
CHANGED_ACTION INT NOT NULL,
ACTIVE BIT NOT NULL DEFAULT 1,
COMMENT VARCHAR(1000),
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_DOCTYPE_HANDLING PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_DOCTYPE_HANDLING UNIQUE (DOCTYPE),
CONSTRAINT FK_TBIDB_DOCTYPE_HANDLING_CHNGACT FOREIGN KEY (CHANGED_ACTION) REFERENCES TBIDB_CATALOG (GUID)
)
GO
CREATE TRIGGER TBIDB_DOCTYPE_HANDLING_AFT_UPD ON TBIDB_DOCTYPE_HANDLING
FOR UPDATE
AS
UPDATE TBIDB_DOCTYPE_HANDLING SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_DOCTYPE_HANDLING.GUID = INSERTED.GUID
GO
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 'SYSTEM',
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_REV UNIQUE (TERM_VALUE_REVERSE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_VARCHAR_AFT_UPD ON TBIDB_TERM_VALUE_VARCHAR
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_VARCHAR SET CHANGED_WHEN = GETDATE()
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),
TERM_VALUE BIGINT NOT NULL,
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_TERM_VALUE_INTEGER PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_INTEGER UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_INTEGER_AFT_UPD ON TBIDB_TERM_VALUE_INTEGER
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_INTEGER SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_INTEGER.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE) VALUES (0);
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE) VALUES (1);
CREATE TABLE TBIDB_TERM_VALUE_FLOAT
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE FLOAT NOT NULL,
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_TERM_VALUE_FLOAT PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_FLOAT UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_FLOAT_AFT_UPD ON TBIDB_TERM_VALUE_FLOAT
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_FLOAT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_FLOAT.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_TERM_VALUE_DECIMAL
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE DECIMAL(19, 0) NOT NULL,
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_TERM_VALUE_DECIMAL PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_DECIMAL UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_DECIMAL_AFT_UPD ON TBIDB_TERM_VALUE_DECIMAL
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_DECIMAL SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_DECIMAL.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_TERM_VALUE_DATE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE DATE NOT NULL,
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_TERM_VALUE_DATE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_DATE UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_DATE_AFT_UPD ON TBIDB_TERM_VALUE_DATE
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_DATE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_DATE.GUID = INSERTED.GUID
GO
--DELETE FROM TBIDB_OBJECT_METADATA
--DELETE FROM TBIDB_LANGUAGE_TERM_METADATA
--DELETE FROM TBIDB_FILE_OBJECT
--DELETE FROM TBIDB_OBJECT_BE
--DELETE FROM TBIDB_OBJECT_METADATA_CHANGE
--DELETE FROM TBIDB_OBJECT
--DROP TABLE TBIDB_TERM_VALUE_DATETIME
CREATE TABLE TBIDB_TERM_VALUE_DATETIME
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TERM_VALUE DATETIME NOT NULL,
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_TERM_VALUE_DATETIME PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_VALUE_DATETIME UNIQUE (TERM_VALUE)
)
GO
CREATE TRIGGER TBIDB_TERM_VALUE_DATETIME_UPD ON TBIDB_TERM_VALUE_DATETIME
FOR UPDATE
AS
UPDATE TBIDB_TERM_VALUE_DATETIME SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_TERM_VALUE_DATETIME.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
--DROP TABLE TBIDB_ATTRIBUTE_TYPE
CREATE TABLE TBIDB_ATTRIBUTE_TYPE
(
GUID TINYINT NOT NULL IDENTITY (1, 1),
NAME_TYPE VARCHAR(100) NOT NULL,
COMMENT VARCHAR(500),
BIT1 BIT NOT NULL DEFAULT 0,
BIT2 BIT NOT NULL DEFAULT 0,
BIT3 BIT NOT NULL DEFAULT 0,
BIT4 BIT NOT NULL DEFAULT 0,
DELETED BIT NOT NULL DEFAULT 0,
DELETED_WHO VARCHAR(100),
DELETED_WHEN DATETIME,
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_ATTRIBUTE_TYPE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_ATTRIBUTE_TYPE UNIQUE (NAME_TYPE)
)
GO
CREATE TRIGGER TBIDB_ATTRIBUTE_TYPE_AFT_UPD ON TBIDB_ATTRIBUTE_TYPE
FOR UPDATE
AS
UPDATE TBIDB_ATTRIBUTE_TYPE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_ATTRIBUTE_TYPE.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VARCHAR'); --1
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('BIG INTEGER');--2
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('FLOAT');--3
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DECIMAL');--4
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DATE');--5
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DATETIME');--6
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('BIT');--7
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VECTOR STRING');--8
INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VECTOR INTEGER');--9
--DROP TABLE TBIDB_OBJECT_KIND
CREATE TABLE TBIDB_OBJECT_KIND
(
GUID TINYINT NOT NULL IDENTITY (1, 1),
KIND_NAME VARCHAR(100) 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_OBJECT_KIND PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_OBJECT_KIND UNIQUE (KIND_NAME)
)
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
AS
UPDATE TBIDB_OBJECT_KIND SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJECT_KIND.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_LANGUAGE
(
GUID TINYINT NOT NULL IDENTITY (1, 1),
LANG_CODE VARCHAR(10) NOT NULL,
CREATE_DEFAULT_ENTRY BIT NOT NULL DEFAULT 0,
COMMENT VARCHAR(1000),
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_LANGUAGE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_LANGUAGE UNIQUE (LANG_CODE)
)
GO
CREATE TRIGGER TBIDB_LANGUAGE_AFT_UPD ON TBIDB_LANGUAGE
FOR UPDATE
AS
UPDATE TBIDB_LANGUAGE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_LANGUAGE.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_LANGUAGE (LANG_CODE,CREATE_DEFAULT_ENTRY) VALUES ('de-DE',1);
INSERT INTO TBIDB_LANGUAGE (LANG_CODE,CREATE_DEFAULT_ENTRY) VALUES ('en-EN',1);
GO
--DROP TABLE TBIDB_OBJECT_BE
--DROP TABLE TBIDB_OBJECT
CREATE TABLE TBIDB_OBJECT
(
IDB_OBJ_ID BIGINT NOT NULL IDENTITY (1000000, 1),
KIND_TYPE_ID TINYINT NOT NULL,
REFERENCE_KEY BIGINT,
PARENT_OBJ_ID BIGINT NOT NULL DEFAULT 0,
IS_VERSION BIT NOT NULL DEFAULT 0,
ACTIVE BIT NOT NULL DEFAULT 1,
DELETED BIT NOT NULL DEFAULT 0,
COMMENT VARCHAR(1000),
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(30),
CHANGED_WHEN DATETIME,
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
CREATE TRIGGER TBIDB_OBJECT_AFT_INS ON TBIDB_OBJECT
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@IDB_OBJ_ID BIGINT,
@REFERENCE_KEY BIGINT
SELECT
@IDB_OBJ_ID = IDB_OBJ_ID,
@REFERENCE_KEY = REFERENCE_KEY
FROM INSERTED
IF @REFERENCE_KEY IS NULL
UPDATE TBIDB_OBJECT SET REFERENCE_KEY = @IDB_OBJ_ID
FROM INSERTED
WHERE TBIDB_OBJECT.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
END TRY
BEGIN CATCH
PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TRIGGER [dbo].[TBIDB_OBJECT_AFT_UPD] ON [dbo].[TBIDB_OBJECT]
FOR UPDATE
AS
IF UPDATE(REFERENCE_KEY) OR UPDATE(PARENT_OBJ_ID) OR UPDATE(IS_VERSION) OR UPDATE(ACTIVE) OR UPDATE(DELETED) OR UPDATE(COMMENT)
UPDATE TBIDB_OBJECT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJECT.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
CREATE TABLE TBIDB_STRUCTURE_TYPE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(100) NOT NULL,
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_STRUCTURE_TYPE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_STRUCTURE_TYPE UNIQUE (TITLE)
)
GO
CREATE TRIGGER TBIDB_STRUCTURE_TYPE_AFT_UPD ON TBIDB_STRUCTURE_TYPE
FOR UPDATE
AS
UPDATE TBIDB_STRUCTURE_TYPE SET CHANGED_WHEN = GETDATE()
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,
RELATION_ID INTEGER NOT NULL,
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_OBJ_STRUCTURE_TYPE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_OBJ_STRUCTURE_TYPE UNIQUE (IDB_OBJ_ID,STRUCTURE_ID),
CONSTRAINT FK_TBIDB_OBJ_STRUCTURE_TYPE_IDBOBJID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_TBIDB_OBJ_STRUCTURE_TYPE_STRIID FOREIGN KEY (STRUCTURE_ID) REFERENCES TBIDB_STRUCTURE_TYPE (GUID)
)
GO
CREATE TRIGGER TBIDB_OBJECT_STRUCTURE_TYPE_AFT_UPD ON TBIDB_OBJECT_STRUCTURE_TYPE
FOR UPDATE
AS
UPDATE TBIDB_OBJECT_STRUCTURE_TYPE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJECT_STRUCTURE_TYPE.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_DOC_INFO
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
OBJ_ST_ID INTEGER NOT NULL,
FILENAME_ONLY VARCHAR(250) NOT NULL,
FILENAME_EXT VARCHAR(250) NOT NULL,
EXTENSION_TERM BIGINT NOT NULL,
RELATIVE_PATH VARCHAR(250) NOT NULL,
RELATIVE_PATH_ONLY_TERM BIGINT NOT NULL,
FULL_TEXT VARBINARY(MAX),
FILE_SIZE INTEGER,
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_DOC_INFO PRIMARY KEY (GUID),
CONSTRAINT UQ_DI_IDB_OBJ_ID UNIQUE (IDB_OBJ_ID),
CONSTRAINT FK_DI_IDB_OBJ_ST_ID FOREIGN KEY (OBJ_ST_ID) REFERENCES TBIDB_OBJECT_STORE (GUID),
CONSTRAINT FK_DI_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FKTBIDB_DOC_INFO_RELATIVEPATHONLYTERM FOREIGN KEY (RELATIVE_PATH_ONLY_TERM) REFERENCES TBIDB_TERM_VALUE_VARCHAR(GUID),
CONSTRAINT FKTBIDB_DOC_INFO_EXTENSIONTERM FOREIGN KEY (EXTENSION_TERM) REFERENCES TBIDB_TERM_VALUE_VARCHAR(GUID)
)
GO
CREATE TRIGGER TBIDB_DOC_INFO_AFT_UPD ON TBIDB_DOC_INFO
FOR UPDATE
AS
UPDATE TBIDB_DOC_INFO SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_DOC_INFO.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
GO
--DROP TABLE TBIDB_OBJECT_BE
CREATE TABLE TBIDB_OBJECT_BE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
BE_ID INTEGER NOT NULL,
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_BE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_OBJECT_BE UNIQUE (IDB_OBJ_ID,BE_ID),
CONSTRAINT FK_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_BE_ID FOREIGN KEY (BE_ID) REFERENCES TBIDB_BUSINESS_ENTITY (GUID),
)
GO
CREATE TRIGGER TBIDB_OBJECT_BE_AFT_UPD ON TBIDB_OBJECT_BE
FOR UPDATE
AS
UPDATE TBIDB_OBJECT_BE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJECT_BE.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
GO
--CREATE TABLE TBIDB_ATTRIBUTE ADD SYS_ATTRIBUTE BIT NOT NULL DEFAULT 0
GO
CREATE TABLE TBIDB_ATTRIBUTE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(100) NOT NULL,
TYP_ID TINYINT NOT NULL,
MULTI_CONTEXT BIT NOT NULL DEFAULT 0,
VIEW_SEQUENCE INTEGER NOT NULL DEFAULT 0,
VIEW_VISIBLE BIT NOT NULL DEFAULT 1,
SYS_ATTRIBUTE BIT NOT NULL DEFAULT 0,
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,
DELETED BIT NOT NULL DEFAULT 0,
DELETED_WHO VARCHAR(100),
DELETED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_ATTRIBUTE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_ATTRIBUTE UNIQUE (TITLE),
CONSTRAINT FK_TYP_ID FOREIGN KEY (TYP_ID) REFERENCES TBIDB_ATTRIBUTE_TYPE (GUID)
)
GO
CREATE TRIGGER TBIDB_ATTRIBUTE_AFT_UPD ON TBIDB_ATTRIBUTE
FOR UPDATE
AS
UPDATE TBIDB_ATTRIBUTE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_ATTRIBUTE.GUID = INSERTED.GUID
GO
CREATE OR ALTER TRIGGER [dbo].[TBIDB_ATTRIBUTE_AFT_INS] ON [dbo].[TBIDB_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 = GUID,
@TYP_ID = TYP_ID,
@ADDED_WHO = ADDED_WHO,
@TITLE = TITLE
FROM INSERTED
SELCT
DECLARE @NEW_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@TITLE,'',@TERM_ID = @NEW_TERM_ID OUTPUT;
DECLARE cursorIDBLANGUAGE_ATTR CURSOR FOR
select GUID,LANG_CODE from TBIDB_LANGUAGE where CREATE_DEFAULT_ENTRY = 1
OPEN cursorIDBLANGUAGE_ATTR
FETCH NEXT FROM cursorIDBLANGUAGE_ATTR INTO @LANG_ID,@LANG_CODE
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [dbo].[TBIDB_ATTRIBUTE_LANGUAGE]
([ATTRIBUTE_ID]
,[LANGUAGE_ID]
,[TERM_ID]
,[ADDED_WHO])
VALUES
(@ATTRIBUTE_ID
,@LANG_ID
,@NEW_TERM_ID
,@ADDED_WHO);
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
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
BE_ID INTEGER NOT NULL,
ATTR_ID INTEGER NOT NULL,
DEFAULT_SEARCH_ATTRIBUTE BIT NOT NULL DEFAULT 0,
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_BE_ATTRIBUTE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_BE_ATTRIBUTE UNIQUE (BE_ID,ATTR_ID),
CONSTRAINT FK_IDB_BEATT_BEID FOREIGN KEY (BE_ID) REFERENCES TBIDB_BUSINESS_ENTITY (GUID),
CONSTRAINT FK_IDB_BEATT_AID FOREIGN KEY (ATTR_ID) REFERENCES TBIDB_ATTRIBUTE (GUID),
)
GO
CREATE TRIGGER TBIDB_BE_ATTRIBUTE_AFT_UPD ON TBIDB_BE_ATTRIBUTE
FOR UPDATE
AS
UPDATE TBIDB_BE_ATTRIBUTE SET CHANGED_WHEN = GETDATE()
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_TYPE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(100) NOT NULL,
COMMENT VARCHAR(500),
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'System',
ADDED_WHEN DATETIME DEFAULT (GETDATE()),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_LANGUAGE_TERM_TYPE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_LANGUAGE_TERM_TYPE UNIQUE (TITLE)
)
GO
INSERT INTO TBIDB_LANGUAGE_TERM_TYPE (TITLE) VALUES ('METADATA-TERM');
INSERT INTO TBIDB_LANGUAGE_TERM_TYPE (TITLE) VALUES ('DOCTYPE');
INSERT INTO TBIDB_LANGUAGE_TERM_TYPE (TITLE) VALUES ('DOC_STATE');
INSERT INTO TBIDB_LANGUAGE_TERM_TYPE (TITLE) VALUES ('STRUCTURE_NODE');
GO
CREATE TRIGGER TBIDB_LANGUAGE_TERM_TYPE_UPD ON TBIDB_LANGUAGE_TERM_TYPE
FOR UPDATE
AS
UPDATE TBIDB_LANGUAGE_TERM_TYPE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_LANGUAGE_TERM_TYPE.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_LANGUAGE_TERM
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
OBJECT_ID BIGINT NOT NULL,
OBJECT_ID1 INT,
TERM_ID BIGINT NOT NULL,
LANG_ID TINYINT NOT NULL,
KIND_TYPE INTEGER,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_LANGUAGE_TERM PRIMARY KEY (GUID),
CONSTRAINT UN_TBIDB_LANGUAGE_TERM UNIQUE(OBJECT_ID,TERM_ID,LANG_ID,KIND_TYPE),
CONSTRAINT FK_TBIDB_LANGUAGE_TERM_TERMID FOREIGN KEY (TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_LANGUAGE_TERM_LANG_ID FOREIGN KEY (LANG_ID) REFERENCES TBIDB_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_LANGUAGE_TERM_KINDTYPE FOREIGN KEY (KIND_TYPE) REFERENCES TBIDB_LANGUAGE_TERM_TYPE (GUID),
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 NONCLUSTERED INDEX IDXTBIDB_LANGUAGE_TERM_KINDTYPEID_OID_TID
ON [dbo].[TBIDB_LANGUAGE_TERM] ([KIND_TYPE])
INCLUDE ([OBJECT_ID],[TERM_ID])
GO
CREATE OR ALTER TRIGGER [dbo].[TBIDB_LANGUAGE_TERM_AFT_UPD] ON [dbo].[TBIDB_LANGUAGE_TERM]
FOR UPDATE
AS
DECLARE
@IDB_OBJ_ID BIGINT,
@ATTR_ID INTEGER,
@CHANGED_WHO VARCHAR(100),
@OLD_TERM_ID BIGINT,
@NEW_TERM_ID BIGINT
SELECT
@OLD_TERM_ID = TERM_ID
FROM DELETED
SELECT
@IDB_OBJ_ID = MD.IDB_OBJ_ID,
@ATTR_ID = MD.ATTR_ID,
@NEW_TERM_ID = INS.TERM_ID,
@CHANGED_WHO = INS.CHANGED_WHO
FROM INSERTED INS INNER JOIN TBIDB_OBJECT_METADATA MD ON INS.[OBJECT_ID] = MD.GUID
IF @IDB_OBJ_ID IS NOT NULL AND @CHANGED_WHO IS NOT NULL
INSERT INTO TBIDB_OBJECT_METADATA_CHANGE (
IDB_OBJ_ID,
ATTR_ID,
OLD_TEXT_TERM,
NEW_TEXT_TERM,
CHANGED_WHO) VALUES
(@IDB_OBJ_ID,
@ATTR_ID,
@OLD_TERM_ID,
@NEW_TERM_ID,
@CHANGED_WHO)
UPDATE TBIDB_LANGUAGE_TERM SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_LANGUAGE_TERM.GUID = INSERTED.GUID
GO
--DROP TABLE TBIDB_OBJECT_METADATA_CHANGE
--DROP TABLE TBIDB_OBJECT_METADATA
CREATE TABLE TBIDB_OBJECT_METADATA
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
ATTR_ID INTEGER NOT NULL,
INT_TERM_ID BIGINT,
DEC_TERM_ID BIGINT,
FLOAT_TERM_ID BIGINT,
DATE_TERM_ID BIGINT,
DATETIME_TERM_ID BIGINT,
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_METADATA PRIMARY KEY (GUID),
CONSTRAINT FK_OMD_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_OMD_ATTR_ID FOREIGN KEY (ATTR_ID) REFERENCES TBIDB_ATTRIBUTE (GUID),
CONSTRAINT FK_OMD_INT_TERM_ID FOREIGN KEY (INT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_INTEGER (GUID),
CONSTRAINT FK_OMD_DEC_TERM_ID FOREIGN KEY (DEC_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DECIMAL (GUID),
CONSTRAINT FK_OMD_FLOAT_TERM_ID FOREIGN KEY (FLOAT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_FLOAT (GUID),
CONSTRAINT FK_OMD_DATE_TERM_ID FOREIGN KEY (DATE_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DATE (GUID),
CONSTRAINT FK_OMD_DATETIME_TERM_ID FOREIGN KEY (DATETIME_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DATETIME (GUID),
)
GO
CREATE NONCLUSTERED INDEX IDXTBIDB_OBJECT_METADATA_IDBOBJID
ON [dbo].[TBIDB_OBJECT_METADATA] ([IDB_OBJ_ID])
GO
--DROP TABLE TBIDB_OBJECT_METADATA_CHANGE;
CREATE TABLE TBIDB_OBJECT_METADATA_CHANGE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
ATTR_ID INTEGER NOT NULL,
OLD_TEXT_TERM BIGINT,
NEW_TEXT_TERM BIGINT,
OLD_INT_TERM_ID BIGINT,
NEW_INT_TERM_ID BIGINT,
OLD_DEC_TERM_ID BIGINT,
NEW_DEC_TERM_ID BIGINT,
OLD_FLOAT_TERM_ID BIGINT,
NEW_FLOAT_TERM_ID BIGINT,
OLD_DATE_TERM_ID BIGINT,
NEW_DATE_TERM_ID BIGINT,
COMMENT VARCHAR(500),
ADDED_WHO VARCHAR(100),
CHANGED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
CHANGED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBIDB_OBJECT_METADATA_CHANGE PRIMARY KEY (GUID),
CONSTRAINT FK_OMDC_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_OMDC_ATTR_ID FOREIGN KEY (ATTR_ID) REFERENCES TBIDB_ATTRIBUTE (GUID),
CONSTRAINT FK_OMDC_OLD_TEXT_TERM_ID FOREIGN KEY (OLD_TEXT_TERM) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_OMDC_NEW_TEXT_TERM_ID FOREIGN KEY (NEW_TEXT_TERM) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_OMDC_OLD_INT_TERM_ID FOREIGN KEY (OLD_INT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_INTEGER (GUID),
CONSTRAINT FK_OMDC_NEW_INT_TERM_ID FOREIGN KEY (NEW_INT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_INTEGER (GUID),
CONSTRAINT FK_OMDC_OLD_DEC_TERM_ID FOREIGN KEY (OLD_DEC_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DECIMAL (GUID),
CONSTRAINT FK_OMDC_NEW_DEC_TERM_ID FOREIGN KEY (NEW_DEC_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DECIMAL (GUID),
CONSTRAINT FK_OMDC_OLD_FLOAT_TERM_ID FOREIGN KEY (OLD_FLOAT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_FLOAT (GUID),
CONSTRAINT FK_OMDC_NEW_FLOAT_TERM_ID FOREIGN KEY (NEW_FLOAT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_FLOAT (GUID),
CONSTRAINT FK_OMDC_OLD_DATE_TERM_ID FOREIGN KEY (OLD_DATE_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DATE (GUID),
CONSTRAINT FK_OMDC_NEW_DATE_TERM_ID FOREIGN KEY (NEW_DATE_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DATE (GUID),
)
GO
--DROP TABLE TBIDB_OBJECT_METADATA_ADD
CREATE TABLE [dbo].[TBIDB_OBJECT_METADATA_ADD](
[GUID] BIGINT IDENTITY(1,1) NOT NULL,
[IDB_OBJ_ID] BIGINT NOT NULL,
[ATTR_ID] INT NOT NULL,
[TEXT_TERM_ID] BIGINT,
[INT_TERM_ID] BIGINT,
[DEC_TERM_ID] BIGINT,
[FLOAT_TERM_ID] BIGINT,
[DATE_TERM_ID] BIGINT,
[ADDED_WHO] VARCHAR(100),
[ADDED_WHEN] DATETIME NOT NULL,
CONSTRAINT PK_TBDD_GROUPS_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_ATTRID FOREIGN KEY(ATTR_ID) REFERENCES TBIDB_ATTRIBUTE(GUID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_IDBOBJID FOREIGN KEY(IDB_OBJ_ID) REFERENCES TBIDB_OBJECT(IDB_OBJ_ID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_DATETERMID FOREIGN KEY(DATE_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DATE(GUID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_DECTERMID FOREIGN KEY(DEC_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DECIMAL(GUID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_FLOATTERMID FOREIGN KEY(FLOAT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_FLOAT(GUID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_INTTERMID FOREIGN KEY(INT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_INTEGER(GUID),
CONSTRAINT FK_TBIDB_OBJECTMETADATAADD_TEXTTERMLANGID FOREIGN KEY(TEXT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR(GUID),
)
GO
CREATE TABLE TBIDB_OBJECT_METADATA_DELETE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
ATTR_ID INTEGER NOT NULL,
TEXT_TERM_ID BIGINT,
INT_TERM_ID BIGINT,
DEC_TERM_ID BIGINT,
FLOAT_TERM_ID BIGINT,
DATE_TERM_ID BIGINT,
USER_DELETE_ID INTEGER NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(100),
ADDED_WHEN DATETIME,
DELETED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
DELETED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
CONSTRAINT PK_TBIDB_OBJECT_METADATA_DELETE PRIMARY KEY (GUID),
CONSTRAINT FK_OMDD_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_OMDD_ATTR_ID FOREIGN KEY (ATTR_ID) REFERENCES TBIDB_ATTRIBUTE (GUID),
CONSTRAINT FK_OMDD_TEXT_TERM_ID FOREIGN KEY (TEXT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_OMDD_INT_TERM_ID FOREIGN KEY (INT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_INTEGER (GUID),
CONSTRAINT FK_OMDD_DEC_TERM_ID FOREIGN KEY (DEC_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DECIMAL (GUID),
CONSTRAINT FK_OMDD_FLOAT_TERM_ID FOREIGN KEY (FLOAT_TERM_ID) REFERENCES TBIDB_TERM_VALUE_FLOAT (GUID),
CONSTRAINT FK_OMDD_DATE_TERM_ID FOREIGN KEY (DATE_TERM_ID) REFERENCES TBIDB_TERM_VALUE_DATE (GUID),
)
GO
CREATE OR ALTER TRIGGER [dbo].[TBIDB_OBJECT_METADATA_AFT_UPD] ON [dbo].[TBIDB_OBJECT_METADATA]
FOR UPDATE
AS
DECLARE
@IDB_OBJ_ID BIGINT,
@ATTR_ID INTEGER,
@CHANGED_WHO VARCHAR(100),
--@OLD_TEXT_TERM_LANG_ID BIGINT,
--@NEW_TEXT_TERM_LANG_ID BIGINT,
@OLD_INT_TERM_ID BIGINT,
@NEW_INT_TERM_ID BIGINT,
@OLD_DEC_TERM_ID BIGINT,
@NEW_DEC_TERM_ID BIGINT,
@OLD_FLOAT_TERM_ID BIGINT,
@NEW_FLOAT_TERM_ID BIGINT,
@OLD_DATE_TERM_ID BIGINT,
@NEW_DATE_TERM_ID BIGINT
SELECT
--@OLD_TEXT_TERM_LANG_ID = TEXT_TERM_LANG_ID,
@OLD_INT_TERM_ID = INT_TERM_ID,
@OLD_DEC_TERM_ID = DEC_TERM_ID,
@OLD_FLOAT_TERM_ID = FLOAT_TERM_ID,
@OLD_DATE_TERM_ID = DATE_TERM_ID
FROM DELETED
SELECT
@IDB_OBJ_ID = IDB_OBJ_ID,
@ATTR_ID = ATTR_ID,
--@NEW_TEXT_TERM_LANG_ID = TEXT_TERM_LANG_ID,
@NEW_INT_TERM_ID = INT_TERM_ID,
@NEW_DEC_TERM_ID = DEC_TERM_ID,
@NEW_FLOAT_TERM_ID = FLOAT_TERM_ID,
@NEW_DATE_TERM_ID = DATE_TERM_ID,
@CHANGED_WHO = CHANGED_WHO
FROM INSERTED
IF @IDB_OBJ_ID IS NOT NULL
INSERT INTO TBIDB_OBJECT_METADATA_CHANGE (
IDB_OBJ_ID,
ATTR_ID,
--OLD_TEXT_TERM_LANG_ID,
--NEW_TEXT_TERM_LANG_ID,
OLD_INT_TERM_ID,
NEW_INT_TERM_ID,
OLD_DEC_TERM_ID,
NEW_DEC_TERM_ID,
OLD_FLOAT_TERM_ID,
NEW_FLOAT_TERM_ID,
OLD_DATE_TERM_ID,
NEW_DATE_TERM_ID,
CHANGED_WHO) VALUES
(@IDB_OBJ_ID,
@ATTR_ID,
--@OLD_TEXT_TERM_LANG_ID,
--@NEW_TEXT_TERM_LANG_ID,
@OLD_INT_TERM_ID,
@NEW_INT_TERM_ID,
@OLD_DEC_TERM_ID,
@NEW_DEC_TERM_ID,
@OLD_FLOAT_TERM_ID,
@NEW_FLOAT_TERM_ID,
@OLD_DATE_TERM_ID,
@NEW_DATE_TERM_ID,
@CHANGED_WHO)
UPDATE TBIDB_OBJECT_METADATA SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJECT_METADATA.GUID = INSERTED.GUID
GO
CREATE OR ALTER TRIGGER TBIDB_OBJECT_METADATA_AFT_INS ON TBIDB_OBJECT_METADATA
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
--@TEXT_TERM_ID BIGINT,
@INT_TERM_ID BIGINT,
@DEC_TERM_ID BIGINT,
@FLOAT_TERM_ID BIGINT,
@DATE_TERM_ID BIGINT,
@ATTR_ID INTEGER,
@TYPID TINYINT,
@ERROR VARCHAR(100)
SELECT
--@TEXT_TERM_ID = TEXT_TERM_LANG_ID,
@INT_TERM_ID = INT_TERM_ID,
@DEC_TERM_ID = DEC_TERM_ID,
@FLOAT_TERM_ID = FLOAT_TERM_ID,
@DATE_TERM_ID = DATE_TERM_ID,
@ATTR_ID = ATTR_ID
FROM INSERTED
SET @ERROR = 'NONE'
SELECT @TYPID = TYP_ID FROM TBIDB_ATTRIBUTE WHERE GUID = @ATTR_ID
--IF @TYPID in (1,8) AND @TEXT_TERM_ID IS NULL
-- SET @ERROR = 'NO @TEXT_TERM_ID FOR INSERT'
IF @TYPID in (2,9) AND @INT_TERM_ID IS NULL
SET @ERROR = 'NO @INT_TERM_ID FOR INSERT'
ELSE IF @TYPID = 3 AND @FLOAT_TERM_ID IS NULL
SET @ERROR = 'NO @@FLOAT_TERM_ID FOR INSERT'
ELSE IF @TYPID = 4 AND @DEC_TERM_ID IS NULL
SET @ERROR = 'NO @DEC_TERM_ID FOR INSERT'
ELSE IF @TYPID = 5 AND @DATE_TERM_ID IS NULL
SET @ERROR = 'NO @DATE_TERM_ID FOR INSERT'
ELSE IF @TYPID = 7 AND @INT_TERM_ID IS NULL
SET @ERROR = 'NO @INT_TERM_ID FOR INSERT'
IF @ERROR <> 'NONE'
BEGIN
RAISERROR(@ERROR, 16, 1)
rollback transaction
END
END TRY
BEGIN CATCH
PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(100),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
--DROP TABLE TBIDB_ATT_LANGUAGE
CREATE TABLE TBIDB_ATTRIBUTE_LANGUAGE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
ATTRIBUTE_ID INT NOT NULL,
LANGUAGE_ID TINYINT NOT NULL,
TERM_ID BIGINT NOT NULL,
COMMENT VARCHAR(500),
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_ATT_LANGUAGE PRIMARY KEY(GUID),
CONSTRAINT UN_TBIDB_ATT_LANGUAGE UNIQUE(ATTRIBUTE_ID,LANGUAGE_ID),
CONSTRAINT FK_ATTRIBUTE_ID FOREIGN KEY(ATTRIBUTE_ID) REFERENCES TBIDB_ATTRIBUTE(GUID),
CONSTRAINT FK_LANGUAGE_ID FOREIGN KEY(LANGUAGE_ID) REFERENCES TBIDB_LANGUAGE(GUID),
CONSTRAINT FK_TERM_ID FOREIGN KEY(TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR(GUID)
)
GO
CREATE TRIGGER TBIDB_ATT_LANGUAGE_AFT_UPD ON TBIDB_ATTRIBUTE_LANGUAGE
FOR UPDATE
AS
UPDATE TBIDB_ATTRIBUTE_LANGUAGE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_ATTRIBUTE_LANGUAGE.GUID = INSERTED.GUID
GO
CREATE VIEW VWIDB_ATTRIBUTE_LANG
AS
select
ATTR.GUID As AttributeID
,TERM.TERM_VALUE as Attribute
,ATTR.TYP_ID as AttributeTypeID
,ATY.NAME_TYPE as AttributeType
,LANG.LANG_CODE
from
TBIDB_ATTRIBUTE ATTR INNER JOIN TBIDB_ATTRIBUTE_LANGUAGE AL On ATTR.GUID = AL.ATTRIBUTE_ID
INNER JOIN TBIDB_LANGUAGE LANG ON AL.LANGUAGE_ID = LANG.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON AL.TERM_ID = TERM.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE ATY ON ATTR.TYP_ID = ATY.GUID
WHERE
ATTR.DELETED = 0
GO
CREATE OR ALTER VIEW [dbo].[VWIDB_BE_ATTRIBUTE] AS
SELECT
COALESCE(T.GUID,0) as GUID,
COALESCE(T.[BE_ID],0) BE_ID
,COALESCE(T2.TITLE,'NO BE SO FAR') AS BE
,T1.GUID AS [ATTR_ID]
,T6.TERM_VALUE AS ATTR_TITLE
,T4.TERM_ID AS ATTR_TERM_ID
,T1.TYP_ID
,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
,T1.ADDED_WHO
,T1.CHANGED_WHEN
,T1.CHANGED_WHO
FROM TBIDB_ATTRIBUTE T1 LEFT JOIN [TBIDB_BE_ATTRIBUTE] T ON T.ATTR_ID = T1.GUID
LEFT JOIN TBIDB_BUSINESS_ENTITY T2 ON T.BE_ID = T2.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T3 ON T1.TYP_ID = T3.GUID
INNER JOIN TBIDB_ATTRIBUTE_LANGUAGE T4 ON T1.GUID = T4.ATTRIBUTE_ID
INNER JOIN TBIDB_LANGUAGE T5 ON T4.LANGUAGE_ID = T5.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T6 ON T4.TERM_ID = T6.GUID
WHERE T1.DELETED = 0
GO
CREATE TABLE TBIDB_BASE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
CONFIG_NAME VARCHAR(900) NOT NULL,
CONFIG_VALUE VARCHAR(MAX) NOT NULL,
COMMENT VARCHAR(500),
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_BASE PRIMARY KEY (GUID),
CONSTRAINT UQ1_TBIDB_BASE UNIQUE (CONFIG_NAME)
)
GO
CREATE TRIGGER TBIDB_BASE_AFT_UPD ON TBIDB_BASE
FOR UPDATE
AS
UPDATE TBIDB_BASE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_BASE.GUID = INSERTED.GUID
GO
INSERT INTO TBIDB_BASE (CONFIG_NAME,CONFIG_VALUE) VALUES ('DB_VERSION','1.0.1')
GO
INSERT INTO TBIDB_BASE (CONFIG_NAME,CONFIG_VALUE) 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
CREATE TABLE TBIDB_STATES
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(200) NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_STATES PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_STATES_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_STATES_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_STATES_AFT_UPD ON TBIDB_STATES
FOR UPDATE
AS
UPDATE TBIDB_STATES SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_STATES.GUID = INSERTED.GUID
GO
--DROP TABLE TBIDB_CONVERSATION_MESSAGE
--DROP TABLE TBIDB_CONVERSATION_USER
--DROP TABLE TBIDB_CONVERSATION_OBJECT
CREATE TABLE TBIDB_CONVERSATION_OBJECT
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
TITLE_TERM_ID BIGINT NOT NULL,
IDB_OBJ_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_CONVERSATION_OBJECT PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_OBJECT_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_CONVERSATION_OBJECT_AFT_UPD ON TBIDB_CONVERSATION_OBJECT
FOR UPDATE
AS
UPDATE TBIDB_CONVERSATION_OBJECT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_CONVERSATION_OBJECT.GUID = INSERTED.GUID
GO
GO
--DROP TABLE TBIDB_MYOBJECT_STATES;
CREATE TABLE TBIDB_MYOBJECT_STATES
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
MY_OBJECT_ID BIGINT NOT NULL,
STATE_ID INTEGER NOT NULL,
COMMENT_ID BIGINT ,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_MYOBJECT_STATES PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_STATE_ID FOREIGN KEY (STATE_ID) REFERENCES TBIDB_STATES (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_MYOBJECT_STATES_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_MYOBJECT_STATES_AFT_UPD ON TBIDB_MYOBJECT_STATES
FOR UPDATE
AS
UPDATE TBIDB_MYOBJECT_STATES SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_MYOBJECT_STATES.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_CONVERSATION_USER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
CONV_ID BIGINT NOT NULL,
USER_OR_GROUP_ID INTEGER NOT NULL,
IS_USER BIT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_CONVERSATION_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_USER_CONV_ID FOREIGN KEY (CONV_ID) REFERENCES TBIDB_CONVERSATION_OBJECT (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_USER_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TABLE TBIDB_COMMON_SQL
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(200) NOT NULL,
SQL_COMMAND NVARCHAR(MAX),
ACTIVE BIT NOT NULL DEFAULT 1,
ADDED_WHO VARCHAR(100),
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_COMMON_SQL PRIMARY KEY (GUID)
)
GO
CREATE TRIGGER [dbo].[TBIDB_COMMON_SQL_AFT_UPD] ON [dbo].[TBIDB_COMMON_SQL]
FOR UPDATE
AS
UPDATE TBIDB_COMMON_SQL SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_COMMON_SQL.GUID = INSERTED.GUID
GO
DELETE FROM [TBIDB_COMMON_SQL] WHERE TITLE = 'FLOW_SEARCH_SQL_BASE';
INSERT INTO [dbo].[TBIDB_COMMON_SQL]
([TITLE]
,[SQL_COMMAND]
,[ADDED_WHO])
VALUES
('FLOW_SEARCH_SQL_BASE'
,'SELECT
DOC.*
,CONVERT(BIT,IIF(CHK.CHECKED_OUT_WHEN IS NULL,''False'',''True'')) CHECKED_OUT
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
LEFT JOIN TBIDB_OBJECT_CHECK_IN_OUT CHK ON DOC.DocID = CHK.IDB_OBJ_ID
WHERE
RES.USR_ID = @USER_ID AND VWLTERM.LANG_CODE = ''@LANG_CODE''
UNION
SELECT
DOC.*
,CONVERT(BIT,IIF(CHK.CHECKED_OUT_WHEN IS NULL,''False'',''True'')) CHECKED_OUT
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
LEFT JOIN TBIDB_OBJECT_CHECK_IN_OUT CHK ON DOC.DocID = CHK.IDB_OBJ_ID
WHERE
RES.USR_ID = @USER_ID AND VWDT.LANG_CODE = ''@LANG_CODE''
AND CHK.CHECKED_IN_WHEN IS NULL','SYSTEM')
GO
DROP TABLE TBIDB_SEARCH_INPUT_USER
CREATE TABLE TBIDB_SEARCH_INPUT_USER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
USR_ID INTEGER,
ATTR_ID INT,
ATTR_TITLE VARCHAR(100),
TERM_ID BIGINT,
OPERATOR VARCHAR(20) NOT NULL DEFAULT 'AND',
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_SEARCH_INPUT_USER PRIMARY KEY (GUID),
)
GO
CREATE TABLE TBIDB_SEARCH_RESULT_TERM_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
DROP TABLE TBIDB_SEARCH_RESULT_TOKEN
CREATE TABLE TBIDB_SEARCH_RESULT_TOKEN
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
DocID BIGINT NOT NULL,
USR_ID INTEGER NOT NULL,
TOKEN_ID TINYINT NOT NULL,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
)
GO
DROP TABLE TBIDB_SEARCH_RESULT_DOCS
CREATE TABLE TBIDB_SEARCH_RESULT_DOCS
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
DocID BIGINT NOT NULL,
USR_ID INTEGER NOT NULL,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE()
)
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
(
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
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_SEARCH_AUTOSUGGEST] @pLANGCODE VARCHAR(5),@pUSRID INT
AS
BEGIN
DECLARE @TBRESULT TABLE(TERM VARCHAR(900),TERM_ID BIGINT, ATTR_TITLE VARCHAR(100),ATTR_ID INT)
INSERT INTO @TBRESULT (TERM, TERM_ID, ATTR_ID,ATTR_TITLE)
select DISTINCT TERM.TERM_VALUE, TERM.GUID, ATTR.ATTR_ID, ATTR.ATTR_TITLE
FROM TBIDB_TERM_VALUE_VARCHAR TERM
INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TLANG.TERM_ID = TERM.GUID
INNER JOIN TBIDB_LANGUAGE LANG ON LANG.GUID = TLANG.LANG_ID
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
INNER JOIN VWIDB_BE_ATTRIBUTE ATTR ON MD.ATTR_ID = ATTR.ATTR_ID
WHERE
OBJ.ACTIVE = 1 AND LANG.LANG_CODE = @pLANGCODE
AND ATTR.LANG_CODE = @pLANGCODE
AND ATTR.VIEW_VISIBLE = 1;
INSERT INTO @TBRESULT (TERM, TERM_ID, ATTR_ID,ATTR_TITLE)
select DISTINCT TERM.TERM_VALUE, TERM.GUID, ATTR.ATTR_ID, ATTR.ATTR_TITLE
FROM TBIDB_TERM_VALUE_INTEGER TERM
INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.INT_TERM_ID = TERM.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
INNER JOIN VWIDB_BE_ATTRIBUTE ATTR ON MD.ATTR_ID = ATTR.ATTR_ID
WHERE
OBJ.ACTIVE = 1
AND ATTR.LANG_CODE = @pLANGCODE
AND ATTR.VIEW_VISIBLE = 1;
INSERT INTO @TBRESULT (TERM,ATTR_ID,ATTR_TITLE)
select DISTINCT Doctype,Doctype_ID,'DOCTYPE' FROM VWIDB_DOC_DOCTYPE where LANG_CODE = @pLANGCODE;
SELECT * FROM @TBRESULT
END
GO
--DROP TABLE TBIDB_SEARCH_DEF_RELATIONS
--DROP TABLE TBIDB_SEARCH_DEFINITION
CREATE TABLE TBIDB_SEARCH_DEFINITION
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(250) NOT NULL,
DESCRIPTION VARCHAR(500),
XML_VALUE NVARCHAR(MAX) NOT NULL,
SYS_SEARCH BIT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(100) NOT NULL,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_SEARCH_DEFINITION PRIMARY KEY (GUID)
)
GO
CREATE TRIGGER [dbo].[TBIDB_SEARCH_DEFINITION_AFT_UPD] ON [dbo].[TBIDB_SEARCH_DEFINITION]
FOR UPDATE
AS
UPDATE TBIDB_SEARCH_DEFINITION SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_SEARCH_DEFINITION.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_SEARCH_DEF_RELATIONS
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
SEARCH_ID INTEGER NOT NULL,
USR_ID INT NOT NULL DEFAULT 0,
GRP_ID INT NOT NULL DEFAULT 0,
ADDED_WHO VARCHAR(100),
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_SEARCH_DEF_RELATIONS PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_SEARCH_DEF_RELATIONS_SID FOREIGN KEY (SEARCH_ID) REFERENCES TBIDB_SEARCH_DEFINITION (GUID),
CONSTRAINT UQ_PK_TBIDB_SEARCH_DEF_RELATIONS UNIQUE(SEARCH_ID,USR_ID,GRP_ID)
)
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_SEARCH_GET_TOKEN_RESULT] (@pUSR_ID as INTEGER,@pType AS VARCHAR(20), @DateStr VARCHAR(500), @pTERM_ID BIGINT, @pTOKENID TINYINT = 0, @pLANG_CODE as VARCHAR(5) = 'de-DE')
AS
BEGIN
DECLARE @DYNSQL_INSERT NVARCHAR(MAX)
DECLARE @DATE1 DATE,@DATE2 DATE
SET @DYNSQL_INSERT = 'INSERT INTO TBIDB_SEARCH_RESULT_TOKEN(DocID,TOKEN_ID,USR_ID)' + char(10) +
'SELECT DISTINCT MD.IDB_OBJ_ID,' + CONVERT(VARCHAR(2),@pTOKENID) + ',' + CONVERT(VARCHAR(10),@pUSR_ID) + char(10)
IF @pType = 'BIG INTEGER'
SET @DYNSQL_INSERT += 'FROM ' + char(10) + CHAR(9) + 'TBIDB_TERM_VALUE_INTEGER TERM' + char(10) +
CHAR(9) + 'INNER JOIN JOIN TBIDB_OBJECT_METADATA MD ON MD.INT_TERM_ID = TERM.GUID' +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID' + char(10)
ELSE IF @pType = 'VARCHAR'
SET @DYNSQL_INSERT += 'FROM ' + char(10) + CHAR(9) + 'TBIDB_TERM_VALUE_VARCHAR TERM' + char(10) +
CHAR(9) + 'INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TLANG.TERM_ID = TERM.GUID' +
CHAR(9) + 'INNER JOIN TBIDB_LANGUAGE LANG ON LANG.GUID = TLANG.LANG_ID' +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT_METADATA MD ON TLANG.OBJECT_ID = MD.GUID' +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID' + char(10)
ELSE IF @pType = 'DOCTYPE'
SET @DYNSQL_INSERT = 'INSERT INTO TBIDB_SEARCH_RESULT_TOKEN(DocID,TOKEN_ID,USR_ID)' + char(10) +
'SELECT DISTINCT DT.IDB_OBJ_ID,' + CONVERT(VARCHAR(2),@pTOKENID) + ',' + CONVERT(VARCHAR(10),@pUSR_ID) + char(10) +
'FROM' + char(10) + CHAR(9) + 'VWIDB_DOC_DOCTYPE DT' + char(10)
+ CHAR(9) + 'INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON DT.TERM_ID = TERM.GUID'
+ CHAR(9) + 'INNER JOIN TBIDB_OBJECT OBJ ON DT.IDB_OBJ_ID = OBJ.IDB_OBJ_ID' + char(10)
SET @DYNSQL_INSERT += 'WHERE ' + char(10)+ CHAR(9) + 'OBJ.ACTIVE = 1' + char(10)
IF @DateStr = 'DATEPART'
BEGIN
SELECT @DATE1 = DATE_FROM ,@DATE2 = DATE_TILL FROM TBIDB_SEARCH_DATE_VALUE_USER WHERE USR_ID = @pUSR_ID;
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) = 0' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_YESTERDAY'
SET @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) = 1' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_LAST7DAYS'
SET @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) <= 7' + char(10)
ELSE IF @DateStr = 'ECM_YEAR_CURRENT'
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
ELSE IF @DateStr = 'ECM_YEAR_LAST'
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_MONTH_CURRENT'
BEGIN
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10)
SET @DYNSQL_INSERT += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = 12' + char(10)
END
ELSE
BEGIN
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
SET @DYNSQL_INSERT += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = DATEPART(MONTH,GETDATE())-1' + char(10)
END
END
SET @DYNSQL_INSERT += CHAR(9) + 'AND TERM.guid = ' + CONVERT(VARCHAR(20),@pTERM_ID) + char(10)
DECLARE @LANGUAGE AS VARCHAR(100)
IF @pType <> 'DOCTYPE'
SET @LANGUAGE = 'AND LANG.LANG_CODE = ''' + @pLANG_CODE + ''''
ELSE
SET @LANGUAGE = 'AND DT.LANG_CODE = ''' + @pLANG_CODE + ''''
SET @DYNSQL_INSERT += CHAR(9) + @LANGUAGE + char(10)
PRINT @DYNSQL_INSERT
EXEC sp_executesql @DYNSQL_INSERT
END
GO
-- =============================================
-- Author: DD MS
-- Changed: 19.05.2022
-- =============================================
ALTER PROCEDURE [dbo].[PRIDB_SEARCH_GET_TOKEN_RESULT_DOCS] (@pUSR_ID as INTEGER,@pDATE_RESTRICTION VARCHAR(500), @pLANG_CODE as VARCHAR(5) = 'de-DE')
AS
BEGIN
DECLARE @SRCH_VAR VARCHAR(900), @DYNSQL_INSERT NVARCHAR(MAX),@DateStr VARCHAR(100)
DECLARE @DATE1 DATE,@DATE2 DATE
DELETE FROM TBIDB_SEARCH_RESULT_TOKEN WHERE USR_ID = @pUSR_ID;
IF LEN(@pDATE_RESTRICTION) > 0
BEGIN
PRINT '@pDATE_RESTRICTION....'
DECLARE @IDX TINYINT, @ATTR_ID_DATE VARCHAR(100)
SET @IDX = CHARINDEX('~',@pDATE_RESTRICTION)
PRINT '@IDX: ' + CONVERT(VARCHAR(10),@IDX)
SET @ATTR_ID_DATE = LEFT(@pDATE_RESTRICTION,@IDX-1)
SET @DateStr = SUBSTRING(@pDATE_RESTRICTION,@IDX + 1,LEN(@pDATE_RESTRICTION)-@IDX)
PRINT @DateStr
END
--###############################################################################
--SUCHE NACH TERM-WERTEN
DECLARE @DOC_RESULTS TABLE (DocID BIGINT)
DECLARE @DOC_RESULTS_TEMP TABLE (DocID BIGINT)
DECLARE @ATTR_ID INT, @ATTR_TITLE VARCHAR(100),@TERM_ID BIGINT,@OPERATOR VARCHAR(10),@TOKEN_ID TINYINT ,@TYPE_ATTR VARCHAR(50)
SET @TOKEN_ID = 0
DECLARE curs_Tokens CURSOR LOCAL FOR
SELECT A.ATTR_ID, A.ATTR_TITLE,A.TERM_ID,A.OPERATOR,B.TYPE_NAME
FROM TBIDB_SEARCH_INPUT_USER A INNER JOIN VWIDB_BE_ATTRIBUTE B ON A.ATTR_ID = B.ATTR_ID WHERE A.USR_ID = @pUSR_ID AND B.LANG_CODE = @pLANG_CODE
UNION
SELECT B.Doctype_ID, B.Doctype,B.TERM_ID,A.OPERATOR,A.ATTR_TITLE
FROM TBIDB_SEARCH_INPUT_USER A INNER JOIN VWIDB_DOCTYPE_LANGUAGE B ON A.ATTR_ID = B.Doctype_ID WHERE A.USR_ID = @pUSR_ID AND B.LANG_CODE = @pLANG_CODE AND A.ATTR_TITLE = 'DOCTYPE'
OPEN curs_Tokens
FETCH NEXT FROM curs_Tokens INTO @ATTR_ID, @ATTR_TITLE,@TERM_ID,@OPERATOR,@TYPE_ATTR
WHILE @@FETCH_STATUS = 0
BEGIN
--IF @TOKEN_ID > 0
-- BEGIN
-- DELETE FROM @DOC_RESULTS;
-- END
SET @TOKEN_ID += 1
PRINT '### WORKIN ON ATTRIBUTE [' + @ATTR_TITLE + '] TOKEN_ID [' + CONVERT(VARCHAR(2),@TOKEN_ID) + '] ###'
EXEC PRIDB_SEARCH_GET_TOKEN_RESULT @pUSR_ID,@TYPE_ATTR,@DateStr,@TERM_ID,@TOKEN_ID,@pLANG_CODE
IF @TOKEN_ID > 1 AND @OPERATOR = 'AND'
BEGIN
DELETE FROM @DOC_RESULTS;
INSERT INTO @DOC_RESULTS(DocID)
SELECT DocID FROM TBIDB_SEARCH_RESULT_TOKEN WHERE TOKEN_ID = @TOKEN_ID AND DocID IN (SELECT DocID FROM TBIDB_SEARCH_RESULT_TOKEN WHERE TOKEN_ID < @TOKEN_ID AND USR_ID = @pUSR_ID)
END
ELSE
INSERT INTO @DOC_RESULTS(DocID)
SELECT DocID FROM TBIDB_SEARCH_RESULT_TOKEN WHERE TOKEN_ID = @TOKEN_ID AND USR_ID = @pUSR_ID --AND DocID NOT IN (SELECT DocID FROM @DOC_RESULTS)
FETCH NEXT FROM curs_Tokens INTO @ATTR_ID, @ATTR_TITLE,@TERM_ID,@OPERATOR,@TYPE_ATTR
END
CLOSE curs_Tokens
DEALLOCATE curs_Tokens
DELETE FROM TBIDB_SEARCH_RESULT_DOCS WHERE USR_ID = @pUSR_ID;
INSERT INTO TBIDB_SEARCH_RESULT_DOCS(DocID,USR_ID)
SELECT DISTINCT DocID,@pUSR_ID FROM @DOC_RESULTS;
END
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_SEARCH_GET_ATTRIBUTE_RESULT] (@pUSR_ID as INTEGER,@pType AS VARCHAR(20), @DateStr VARCHAR(500), @pSEARCH_TERM as VARCHAR(900), @pLANG_CODE as VARCHAR(5) = 'de-DE')
AS
BEGIN
PRINT '##############################################################'
PRINT '######### [PRIDB_SEARCH_GET_ATTRIBUTE_RESULT] ################'
PRINT '##############################################################'
DECLARE @DYNSQL_INSERT NVARCHAR(MAX)
DECLARE @DATE1 DATE,@DATE2 DATE
SET @DYNSQL_INSERT = 'INSERT INTO TBIDB_SEARCH_RESULT_DOCS(DocID,USR_ID)' + char(10) +
'SELECT DISTINCT MD.IDB_OBJ_ID,' + CONVERT(VARCHAR(10),@pUSR_ID) + char(10)
IF @pType = 'BIG INTEGER'
SET @DYNSQL_INSERT += 'FROM' + char(10) + CHAR(9) + 'TBIDB_TERM_VALUE_INTEGER TERM' + char(10) +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.INT_TERM_ID = TERM.GUID' + char(10) +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID' + char(10)
ELSE IF @pType = 'VARCHAR'
SET @DYNSQL_INSERT += 'FROM' + char(10) + CHAR(9) + 'TBIDB_TERM_VALUE_VARCHAR TERM' + char(10) +
'INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TLANG.TERM_ID = TERM.GUID' + char(10) +
CHAR(9) + 'INNER JOIN TBIDB_LANGUAGE LANG ON LANG.GUID = TLANG.LANG_ID' + char(10) +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT_METADATA MD ON TLANG.OBJECT_ID = MD.GUID' + char(10) +
CHAR(9) + 'INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID' + char(10)
SET @DYNSQL_INSERT += 'WHERE ' + char(10) + CHAR(9) + 'OBJ.ACTIVE = 1' + char(10)
IF @DateStr = 'DATEPART'
BEGIN
SELECT @DATE1 = DATE_FROM ,@DATE2 = DATE_TILL FROM TBIDB_SEARCH_DATE_VALUE_USER WHERE USR_ID = @pUSR_ID;
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) = 0' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_YESTERDAY'
SET @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) = 1' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_LAST7DAYS'
SET @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ.ADDED_WHEN,GETDATE()) <= 7' + char(10)
ELSE IF @DateStr = 'ECM_YEAR_CURRENT'
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
ELSE IF @DateStr = 'ECM_YEAR_LAST'
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_MONTH_CURRENT'
BEGIN
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10)
SET @DYNSQL_INSERT += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = 12' + char(10)
END
ELSE
BEGIN
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ.ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
SET @DYNSQL_INSERT += 'AND DATEPART(MONTH,OBJ.ADDED_WHEN) = DATEPART(MONTH,GETDATE())-1' + char(10)
END
END
IF LEN(@pSEARCH_TERM) > 0
BEGIN
IF @pSEARCH_TERM like '%*%' AND @pType = 'VARCHAR'
SET @DYNSQL_INSERT += 'AND CONTAINS(TERM.TERM_VALUE,''' + @pSEARCH_TERM + ''')' + char(10)
ELSE
SET @DYNSQL_INSERT += 'AND TERM.TERM_VALUE = ''' + @pSEARCH_TERM + '''' + char(10)
END
IF @pType = 'VARCHAR'
SET @DYNSQL_INSERT += 'AND LANG.LANG_CODE = ''' + @pLANG_CODE + '''' + char(10)
PRINT @DYNSQL_INSERT
EXEC sp_executesql @DYNSQL_INSERT
END
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_SEARCH_GET_TEXT_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), @DYNSQL_INSERT NVARCHAR(MAX),@DateStr VARCHAR(100)
DECLARE @DATE1 DATE,@DATE2 DATE
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_DOCS 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
--###############################################################################
--SUCHE NACH TERM-WERTEN
EXEC PRIDB_SEARCH_GET_ATTRIBUTE_RESULT @pUSR_ID,'VARCHAR', @DateStr,@pSEARCH_TERM, @pLANG_CODE;
EXEC PRIDB_SEARCH_GET_ATTRIBUTE_RESULT @pUSR_ID,'BIG INTEGER', @DateStr,@pSEARCH_TERM, @pLANG_CODE;
--###############################################################################
--SUCHE NACH STRUCTURE/DOCTYPE-WERTEN
SET @DYNSQL_INSERT = 'INSERT INTO TBIDB_SEARCH_RESULT_DOCS(DocID, USR_ID)
select A.IDB_OBJ_ID, ' + CONVERT(VARCHAR(10),@pUSR_ID) + char(10) +
'FROM VWIDB_DOC_DOCTYPE A' + char(10)
+ CHAR(9) + 'INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON A.TERM_ID = TERM.GUID
WHERE
A.OBJ_ACTIVE = 1' + char(10)
IF @DateStr = 'DATEPART'
BEGIN
SELECT @DATE1 = DATE_FROM ,@DATE2 = DATE_TILL FROM TBIDB_SEARCH_DATE_VALUE_USER WHERE USR_ID = @pUSR_ID;
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ_ADDED_WHEN,GETDATE()) = 0' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_YESTERDAY'
SET @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ_ADDED_WHEN,GETDATE()) = 1' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_LAST7DAYS'
SET @DYNSQL_INSERT += 'AND DATEDIFF(DAY,OBJ_ADDED_WHEN,GETDATE()) <= 7' + char(10)
ELSE IF @DateStr = 'ECM_YEAR_CURRENT'
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ_ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
ELSE IF @DateStr = 'ECM_YEAR_LAST'
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ_ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10)
ELSE IF @DateStr = 'ECM_CREATED_MONTH_CURRENT'
BEGIN
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ_ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ_ADDED_WHEN) = DATEPART(YEAR,GETDATE())-1' + char(10)
SET @DYNSQL_INSERT += 'AND DATEPART(MONTH,OBJ_ADDED_WHEN) = 12' + char(10)
END
ELSE
BEGIN
SET @DYNSQL_INSERT += 'AND DATEPART(YEAR,OBJ_ADDED_WHEN) = DATEPART(YEAR,GETDATE())' + char(10)
SET @DYNSQL_INSERT += '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 @DYNSQL_INSERT += 'AND CONTAINS(TERM.TERM_VALUE,''' + @SRCH_VAR + ''')' + char(10)
ELSE
SET @DYNSQL_INSERT += 'AND TERM.TERM_VALUE = ''' + @SRCH_VAR + '''' + char(10)
END
SET @DYNSQL_INSERT += 'AND LANG_CODE = ''' + @pLANG_CODE + '''' + char(10) +
'AND A.IDB_OBJ_ID NOT IN (SELECT DocID FROM TBIDB_SEARCH_RESULT_DOCS WHERE USR_ID = ' + CONVERT(VARCHAR(10),@pUSR_ID) + ')'
PRINT @DYNSQL_INSERT
EXEC sp_executesql @DYNSQL_INSERT
END
GO
--DROP TABLE TBIDB_SEARCH_PROFILE
--DROP TABLE TBIDB_SEARCH_LANGUAGE_SQL_RESULT
--DROP TABLE TBIDB_SEARCH_PROFILE_USER_GROUP
CREATE TABLE TBIDB_SEARCH_PROFILE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
COMMENT VARCHAR(900),
ACTIVE BIT NOT NULL DEFAULT 1,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_SEARCH_PROFILE PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
)
GO
CREATE TRIGGER TBIDB_SEARCH_PROFILE_AFT_UPD ON TBIDB_SEARCH_PROFILE
FOR UPDATE
AS
UPDATE TBIDB_SEARCH_PROFILE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
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_LANGUAGE_SQL_RESULT
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
SEARCH_PROFIL_ID INTEGER NOT NULL,
LANGUAGE_ID TINYINT NOT NULL,
SEARCH_TERM_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_GUID PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_LID FOREIGN KEY (LANGUAGE_ID) REFERENCES TBIDB_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_STID FOREIGN KEY (SEARCH_TERM_ID) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_SEARCH_LANGUAGE_SQL_RESULT_CHANGED_WHO FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
--CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES @MY_DD_ECM_DB.dbo.TBDD_USER (GUID),
CONSTRAINT UQ_TBIDB_SEARCH_LANGUAGE_SQL_RESULT UNIQUE(SEARCH_PROFIL_ID,LANGUAGE_ID)
)
GO
CREATE TRIGGER TBIDB_SEARCH_LANGUAGE_SQL_RESULT_AFT_UPD ON TBIDB_SEARCH_LANGUAGE_SQL_RESULT
FOR UPDATE
AS
UPDATE TBIDB_SEARCH_LANGUAGE_SQL_RESULT SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_SEARCH_LANGUAGE_SQL_RESULT .GUID = INSERTED.GUID
GO
--DROP TABLE TBIDB_SEARCH_PROFILE_USER_GROUP
CREATE TABLE TBIDB_SEARCH_PROFILE_USER_GROUP
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
SEARCH_PROFIL_ID INTEGER NOT NULL,
USER_ID INTEGER NOT NULL DEFAULT 0,
GROUP_ID INTEGER NOT NULL DEFAULT 0,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_SEARCH_PROFILE_USER_GUID PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_PID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
--CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES @MY_DD_ECM_DB.dbo.TBDD_USER (GUID),
CONSTRAINT UQ_TBIDB_SEARCH_PROFILE_USER UNIQUE(SEARCH_PROFIL_ID,USER_ID,GROUP_ID)
)
GO
--CREATE TABLE TBIDB_SEARCH_PROFILE_GROUP
--(
-- GUID INTEGER NOT NULL IDENTITY (1, 1),
-- SEARCH_PROFIL_ID INTEGER NOT NULL,
-- GROUP_ID INTEGER NOT NULL,
-- ADDED_WHO BIGINT,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CONSTRAINT PK_TBIDB_SEARCH_PROFILE_GROUP_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_GROUP_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_GROUP_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
-- --CONSTRAINT FK_TBIDB_SEARCH_PROFILE_USER_USER_ID FOREIGN KEY (USER_ID) REFERENCES @MY_DD_ECM_DB.dbo.TBDD_USER (GUID),
-- CONSTRAINT UQ_TBIDB_SEARCH_PROFILE_GROUP UNIQUE(SEARCH_PROFIL_ID,GROUP_ID)
--)
--GO
----DROP TABLE TBIDB_SEARCH_PROFILE_ATTRIBUTES
--CREATE TABLE TBIDB_SEARCH_PROFILE_ATTRIBUTES
--(
-- GUID INTEGER NOT NULL IDENTITY (1, 1),
-- SEARCH_PROFIL_ID INTEGER NOT NULL,
-- ATTRIBUTE_ID INTEGER NOT NULL,
-- X_LOC FLOAT NOT NULL DEFAULT 0,
-- Y_LOC FLOAT NOT NULL DEFAULT 0,
-- [SEQUENCE] INTEGER NOT NULL DEFAULT 0,
-- HEIGHT SMALLINT NOT NULL DEFAULT 25,
-- WIDTH SMALLINT NOT NULL DEFAULT 200,
-- MULTISELECT BIT NOT NULL DEFAULT 0,
-- SOURCE_SQL BIGINT,
-- ENABLE_SQL BIGINT,
-- ENABLE_CONID SMALLINT,
-- --DEPENDING_ATTRIBUTE1 INTEGER NOT NULL DEFAULT 0,
-- ADDED_WHO BIGINT,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CHANGED_WHO BIGINT,
-- CHANGED_WHEN DATETIME,
-- CONSTRAINT PK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_P_ID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_CHANGED_WHO FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_SOURCE_SQL FOREIGN KEY (SOURCE_SQL) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_PROFILE_ATTRIBUTES_ENABLE_SQL FOREIGN KEY (ENABLE_SQL) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
-- CONSTRAINT UQ_TBIDB_SEARCH_PROFILE_ATTRIBUTES UNIQUE(SEARCH_PROFIL_ID,ATTRIBUTE_ID)
--)
--GO
--CREATE TRIGGER TBIDB_SEARCH_PROFILE_ATTRIBUTES_AFT_UPD ON TBIDB_SEARCH_PROFILE_ATTRIBUTES
--FOR UPDATE
--AS
-- UPDATE TBIDB_SEARCH_PROFILE_ATTRIBUTES SET CHANGED_WHEN = GETDATE()
-- FROM INSERTED
-- WHERE TBIDB_SEARCH_PROFILE_ATTRIBUTES .GUID = INSERTED.GUID
--GO
----drop table TBIDB_SEARCH_ATTRIBUTES_LINKS;
--CREATE TABLE TBIDB_SEARCH_ATTRIBUTES_LINKS
--(
-- GUID INTEGER NOT NULL IDENTITY (1, 1),
-- DEP_ATTR_ID INTEGER NOT NULL,
-- LINKED_ATTR_ID INTEGER NOT NULL,
-- ADDED_WHO BIGINT,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CHANGED_WHO BIGINT,
-- CHANGED_WHEN DATETIME,
-- CONSTRAINT PK_TBIDB_SEARCH_ATTRIBUTES_LINKS_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_DA_ID FOREIGN KEY (DEP_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_LA_ID FOREIGN KEY (LINKED_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_ATTRIBUTES_LINKS_CHANGED_WHO FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID)
--)
--GO
----DROP TABLE TBIDB_SEARCH_RESTRICTIONS_INPUT
--CREATE TABLE TBIDB_SEARCH_RESTRICTIONS_INPUT
--(
-- GUID INTEGER NOT NULL IDENTITY (1, 1),
-- SEARCH_ID INTEGER NOT NULL,
-- RESTR_ATTR_ID INTEGER NOT NULL,
-- SOURCE_ATTR_ID INTEGER NOT NULL,
-- TERM VARCHAR(900) NOT NULL,
-- USR_ID INTEGER NOT NULL,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CONSTRAINT PK_TBIDB_SEARCH_RESTRICTIONS_INPUT_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_INPUT_SID FOREIGN KEY (SEARCH_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_INPUT_RA_ID FOREIGN KEY (RESTR_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_INPUT_SA_ID FOREIGN KEY (SOURCE_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
--)
--GO
--CREATE TABLE TBIDB_SEARCH_RESTRICTIONS_OBJECTS
--(
-- GUID INTEGER NOT NULL IDENTITY (1, 1),
-- SEARCH_ID INTEGER NOT NULL,
-- RESTR_ATTR_ID INTEGER NOT NULL,
-- SOURCE_ATTR_ID INTEGER NOT NULL,
-- IDB_OBJ_ID BIGINT NOT NULL,
-- USR_ID INTEGER NOT NULL,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CONSTRAINT PK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_SID FOREIGN KEY (SEARCH_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_RA_ID FOREIGN KEY (RESTR_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_SA_ID FOREIGN KEY (SOURCE_ATTR_ID) REFERENCES TBIDB_SEARCH_PROFILE_ATTRIBUTES (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_RESTRICTIONS_OBJECTS_IOBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID)
--)
--GO
--CREATE TRIGGER [dbo].[TBIDB_SEARCH_RESTRICTIONS_INPUT_AFT_INS] ON [dbo].[TBIDB_SEARCH_RESTRICTIONS_INPUT]
--WITH EXECUTE AS CALLER
--FOR INSERT
--AS
--BEGIN TRY
-- DECLARE
-- @SEARCH_ID INTEGER,
-- @RESTR_ATTR_ID INTEGER,
-- @SOURCE_ATTR_ID INTEGER,
-- @TERM VARCHAR(900),
-- @USR_ID INTEGER,
-- @pLANG_CODE VARCHAR(5)
-- SELECT
-- @SEARCH_ID = SEARCH_ID,
-- @RESTR_ATTR_ID = RESTR_ATTR_ID,
-- @SOURCE_ATTR_ID = SOURCE_ATTR_ID,
-- @TERM = TERM,
-- @USR_ID = USR_ID
-- FROM INSERTED
-- --DELETE FROM TBIDB_SEARCH_RESTRICTIONS_OBJECTS
-- --WHERE
-- -- SEARCH_ID = @SEARCH_ID AND
-- -- RESTR_ATTR_ID = @RESTR_ATTR_ID AND
-- -- SOURCE_ATTR_ID = @SOURCE_ATTR_ID AND
-- -- USR_ID = @USR_ID;
-- SELECT @pLANG_CODE = [LANGUAGE] FROM @MY_DD_ECM_DB.dbo.TBDD_USER WHERE GUID = @USR_ID
-- INSERT INTO TBIDB_SEARCH_RESTRICTIONS_OBJECTS (SEARCH_ID,RESTR_ATTR_ID, SOURCE_ATTR_ID, IDB_OBJ_ID, USR_ID)
-- SELECT @SEARCH_ID,@RESTR_ATTR_ID, @SOURCE_ATTR_ID,T.IDB_OBJECT_ID,@USR_ID
-- FROM [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (@SOURCE_ATTR_ID,@pLANG_CODE,@USR_ID) T LEFT JOIN TBIDB_SEARCH_RESTRICTIONS_OBJECTS T1
-- ON T.IDB_OBJECT_ID = T1.IDB_OBJ_ID
-- where T.TERM_VALUE = @TERM AND T1.IDB_OBJ_ID IS NULL
-- --where TERM_VALUE = @TERM
--END TRY
--BEGIN CATCH
-- PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
-- + ' - ERROR-MESSAGE: '
-- + CONVERT(VARCHAR(500),ERROR_MESSAGE())
--END CATCH
--GO
CREATE TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA](
[GUID] [bigint] NOT NULL,
[LANG_TERM_ID] [bigint] NOT NULL,
[ADDED_WHO] [bigint] NOT NULL,
[ADDED_WHEN] [datetime] NOT NULL,
[CHANGED_WHO] [bigint] NULL,
[CHANGED_WHEN] [datetime] NULL,
CONSTRAINT [PKTBIDB_LANGUAGE_TERM_METADATA] PRIMARY KEY CLUSTERED
(
[GUID] ASC,
[LANG_TERM_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA] ADD DEFAULT (getdate()) FOR [ADDED_WHEN]
GO
ALTER TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA] WITH CHECK ADD CONSTRAINT [FK_TBIDB_LTMD_ADDED_WHO_T_ID] FOREIGN KEY([ADDED_WHO])
REFERENCES [dbo].[TBIDB_TERM_VALUE_VARCHAR] ([GUID])
GO
ALTER TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA] CHECK CONSTRAINT [FK_TBIDB_LTMD_ADDED_WHO_T_ID]
GO
ALTER TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA] WITH CHECK ADD CONSTRAINT [FK_TBIDB_LTMD_CHANGED_WHO_T_ID] FOREIGN KEY([CHANGED_WHO])
REFERENCES [dbo].[TBIDB_TERM_VALUE_VARCHAR] ([GUID])
GO
ALTER TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA] CHECK CONSTRAINT [FK_TBIDB_LTMD_CHANGED_WHO_T_ID]
GO
ALTER TABLE [dbo].[TBIDB_LANGUAGE_TERM_METADATA] CHECK CONSTRAINT [FK_TBIDB_LTMD_LANG_TERM_ID]
GO
CREATE NONCLUSTERED INDEX [TBIDB_LANGUAGE_TERM_METADATA_LANG_TERM_ID]
ON [dbo].[TBIDB_LANGUAGE_TERM_METADATA] ([LANG_TERM_ID])
GO
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA2]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[INT_TERM_ID],[ADDED_WHO],[ADDED_WHEN])
GO
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA3]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[FLOAT_TERM_ID],[ADDED_WHO],[ADDED_WHEN])
GO
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA_ATTR_ID_[FLOAT_TERM_ID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[FLOAT_TERM_ID])
INCLUDE ([IDB_OBJ_ID],[ADDED_WHO],[ADDED_WHEN])
GO
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([CHANGED_WHEN])
INCLUDE ([GUID])
GO
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN_IDBOBJID
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([IDB_OBJ_ID])
INCLUDE ([CHANGED_WHEN])
GO
CREATE TABLE TBIDB_CONVERSATION_MESSAGE
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
CONV_ID BIGINT NOT NULL,
TO_USER BIGINT NOT NULL DEFAULT 0,
FROM_USER BIGINT NOT NULL,
MESSAGE_TERM_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_CONVERSATION_MESSAGE PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_CONV_ID FOREIGN KEY (CONV_ID) REFERENCES TBIDB_CONVERSATION_OBJECT (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_MESSAGE_FROM_USER FOREIGN KEY (FROM_USER) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_CONVERSATION_MESSAGE_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
--CREATE TABLE TBIDB_USER_SEARCH_CRITERIA
--(
-- GUID BIGINT NOT NULL IDENTITY (1, 1),
-- SEARCH_PROFIL_ID INTEGER NOT NULL,
-- USERID INTEGER NOT NULL,
-- ATTRIBUTE_ID INTEGER NOT NULL,
-- TERM_TEXT VARCHAR(900),
-- --TERM_DATE DATE,
-- --TERM_FLOAT FLOAT,
-- --TERM_DEC DECIMAL(19,2),
-- TERM_ID BIGINT,
-- ADDED_WHO BIGINT,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CONSTRAINT PK_TBIDB_USER_SEARCH_CRITERIA_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_USER_SEARCH_CRITERIA_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
-- CONSTRAINT FK_TBIDB_USER_SEARCH_CRITERIA_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID)
--)
--GO
--CREATE TABLE TBIDB_SEARCH_CRITERIA_SAVE
--(
-- GUID BIGINT NOT NULL IDENTITY (1, 1),
-- SEARCH_PROFIL_ID INTEGER NOT NULL,
-- ATTRIBUTE_ID INTEGER NOT NULL,
-- TERM_TEXT VARCHAR(900),
-- --TERM_DATE DATE,
-- --TERM_FLOAT FLOAT,
-- --TERM_DEC DECIMAL(19,2),
-- TERM_ID BIGINT,
-- ADDED_WHO BIGINT,
-- ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
-- CONSTRAINT PK_TBIDB_SEARCH_CRITERIA_SAVE_GUID PRIMARY KEY (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_CRITERIA_SAVE_SPID FOREIGN KEY (SEARCH_PROFIL_ID) REFERENCES TBIDB_SEARCH_PROFILE (GUID),
-- CONSTRAINT FK_TBIDB_SEARCH_CRITERIA_SAVE_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID)
--)
--GO
CREATE TABLE TBIDB_ACCESSRIGHT
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
USR_ID INTEGER NOT NULL DEFAULT 0,
GRP_ID INTEGER NOT NULL DEFAULT 0,
ACCESSRIGHT INTEGER NOT NULL,
COMMENT VARCHAR(250),
ADDED_WHO BIGINT NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBIDB_ACCESSRIGHT_GUID PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_ACCESSRIGHT_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FK_TBIDB_ACCESSRIGHT_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT UQ_TBIDB_ACCESSRIGHT UNIQUE(IDB_OBJ_ID,USR_ID,GRP_ID,ACCESSRIGHT)
)
GO
CREATE NONCLUSTERED INDEX IDX_TBIDB_ACCESSRIGHT_USRID
ON [dbo].[TBIDB_ACCESSRIGHT] ([USR_ID])
INCLUDE ([IDB_OBJ_ID])
GO
CREATE NONCLUSTERED INDEX IDX_TBIDB_ACCESSRIGHT_GRPID
ON [dbo].[TBIDB_ACCESSRIGHT] ([GRP_ID])
INCLUDE ([IDB_OBJ_ID])
GO
CREATE TABLE TBIDB_REFRESH_ON_APPSERVER
(
GUID BIGINT NOT NULL IDENTITY (1, 1),
IDB_OBJ_ID BIGINT NOT NULL,
USR_ID INTEGER NOT NULL,
ACCESSRIGHT INTEGER NOT NULL,
ADDED_WHO BIGINT NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PKTBIDB_REFRESH_ON_APPSERVER_GUID PRIMARY KEY (GUID),
CONSTRAINT FKTBIDB_REFRESH_ON_APPSERVER_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
CONSTRAINT FKTBIDB_REFRESH_ON_APPSERVER_ADDED_WHO FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT UQ_TBIDB_REFRESH_ON_APPSERVER UNIQUE(IDB_OBJ_ID,USR_ID)
)
GO
CREATE NONCLUSTERED INDEX [IDX_ATTR-ID_OBJ-INTTERMID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[INT_TERM_ID])
GO
CREATE NONCLUSTERED INDEX IDXATTR_IDINT_TERM_ID_IDB_OBJ_ID
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[INT_TERM_ID])
INCLUDE ([IDB_OBJ_ID])
GO
CREATE NONCLUSTERED INDEX IDX_DELETED_OBJID
ON [dbo].[TBIDB_OBJECT] ([DELETED])
INCLUDE ([IDB_OBJ_ID])
GO
CREATE NONCLUSTERED INDEX [IDXATTR_ID-IDB_OBJ_ID-FLOAT_TERM_ID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[FLOAT_TERM_ID])
GO
CREATE NONCLUSTERED INDEX [ATTR_ID_IDB_OBJ_ID_DEC_TERM_ID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[DEC_TERM_ID])
GO
CREATE NONCLUSTERED INDEX [ATTR_ID-IDB_OBJ_ID-DATE_TERM_ID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[DATE_TERM_ID])
GO
CREATE NONCLUSTERED INDEX [IDXATTR_ID-DATE_TERM_ID-IDB_OBJ_ID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[DATE_TERM_ID])
INCLUDE ([IDB_OBJ_ID])
GO
--CREATE TABLE TBIDB_FLOW_SEARCH_CATEGORY_ATTRIBUTES
--(
-- GUID BIGINT NOT NULL IDENTITY (1, 1),
-- ATTRIBUTE_ID INTEGER NOT NULL,
-- ACTIVE BIT NOT NULL DEFAULT 1,
-- ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM (DEF)',
-- ADDED_WHEN DATETIME DEFAULT GETDATE(),
-- CHANGED_WHO VARCHAR(100),
-- CHANGED_WHEN DATETIME,
-- CONSTRAINT PKTBIDB_FLOW_SEARCH_CATEGORY_ATTRIBUTES_GUID PRIMARY KEY (GUID),
-- CONSTRAINT UQ_TBIDB_FLOW_SEARCH_CATEGORY_ATTRIBUTES UNIQUE(ATTRIBUTE_ID),
-- CONSTRAINT FK_TBIDB_FLOW_SEARCH_CATEGORY_ATTRIBUTES FOREIGN KEY (ATTRIBUTE_ID) REFERENCES TBIDB_ATTRIBUTE (GUID),
--)
--GO
--INSERT INTO TBIDB_FLOW_SEARCH_CATEGORY_ATTRIBUTES (ATTRIBUTE_ID) VALUES(1);
--ALTER TABLE [TBIDB_FILE_OBJECT]
--ADD [FILE_HASH] VARCHAR(500) NOT NULL
--GO
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,
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 'SYSTEM',
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),
CONSTRAINT FK_TBIDB_FILE_OBJECT_FNTID FOREIGN KEY (FILENAME_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
CREATE NONCLUSTERED INDEX IDX_CHANGED_WHEN_IN_GUID
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([CHANGED_WHEN])
INCLUDE ([GUID])
GO
CREATE NONCLUSTERED INDEX IDX_IDBOBJID_CW
ON [dbo].[TBIDB_OBJECT_METADATA_CHANGE] ([IDB_OBJ_ID])
INCLUDE ([CHANGED_WHEN])
GO
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA4]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID])
INCLUDE ([IDB_OBJ_ID],[DEC_TERM_ID],[ADDED_WHO],[ADDED_WHEN])
GO
CREATE NONCLUSTERED INDEX [IDXTBIDB_OBJECT_METADATA5]
ON [dbo].[TBIDB_OBJECT_METADATA] ([ATTR_ID],[DEC_TERM_ID])
INCLUDE ([IDB_OBJ_ID],[ADDED_WHO],[ADDED_WHEN])
GO
CREATE TABLE TBIDB_OBJ_STATES
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(500),
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_OBJ_STATES PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_OBJ_STATES UNIQUE (TITLE)
)
GO
CREATE TRIGGER TBIDB_OBJ_STATES_AFT_UPD ON TBIDB_OBJ_STATES
FOR UPDATE
AS
UPDATE TBIDB_OBJ_STATES SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJ_STATES.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_OBJ_STATES_LANGUAGE
(
GUID INTEGER NOT NULL IDENTITY (1, 1),
STATE_ID INTEGER NOT NULL,
LANG_ID TINYINT NOT NULL,
TERM_ID BIGINT NOT NULL,
ADDED_WHO BIGINT,
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO BIGINT,
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_OBJ_STATES_LANGUAGE PRIMARY KEY (GUID),
CONSTRAINT FK_TBIDB_OBJ_STATES_LANGUAGE_STATEID FOREIGN KEY (STATE_ID) REFERENCES TBIDB_OBJ_STATES (GUID),
CONSTRAINT FK_TBIDB_OBJ_STATES_LANGUAGE_LANGID FOREIGN KEY (LANG_ID) REFERENCES TBIDB_LANGUAGE (GUID),
CONSTRAINT FK_TBIDB_OBJ_STATES_LANGUAGE_ADDED_WHO_T_ID FOREIGN KEY (ADDED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),
CONSTRAINT FK_TBIDB_OBJ_STATES_LANGUAGE_CHANGED_WHO_T_ID FOREIGN KEY (CHANGED_WHO) REFERENCES TBIDB_TERM_VALUE_VARCHAR (GUID),)
GO
CREATE TRIGGER TBIDB_OBJ_STATES_LANGUAGE_AFT_UPD ON TBIDB_OBJ_STATES_LANGUAGE
FOR UPDATE
AS
UPDATE TBIDB_OBJ_STATES_LANGUAGE SET CHANGED_WHEN = GETDATE()
FROM INSERTED
WHERE TBIDB_OBJ_STATES_LANGUAGE.GUID = INSERTED.GUID
GO
CREATE TABLE TBIDB_TERM_TYPE
(
GUID INT NOT NULL IDENTITY (1, 1),
TITLE VARCHAR(100) NOT NULL,
ADDED_WHO VARCHAR(100) DEFAULT 'System',
ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(100),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBIDB_TERM_TYPE PRIMARY KEY (GUID),
CONSTRAINT UQ_TBIDB_TERM_TYPE_TITLE UNIQUE (TITLE))
GO
CREATE TRIGGER TBIDB_TERM_TYPE_AFT_UPD ON TBIDB_TERM_TYPE
FOR UPDATE
AS
UPDATE TBIDB_TERM_TYPE SET CHANGED_WHEN = GETDATE()
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 #########
#############################*/
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_VARIABLE_VALUE] (@IDB_OBJ_ID BIGINT, @ATTRIBUTE VARCHAR(100),@LANG_CODE VARCHAR(10))
RETURNS @Output TABLE (TERM_VALUE NVARCHAR(900), TERM_DATE DATE,TERM_DATETIME DATETIME)
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TERM_RESULT VARCHAR(900),
@IDB_CREATED_WHEN DATETIME,
@IDB_CREATED_WHO VARCHAR(100),
@IDB_CHANGED_WHEN DATETIME,
@IDB_CHANGED_WHO VARCHAR(100)
SELECT @IDB_CREATED_WHEN = ADDED_WHEN, @IDB_CREATED_WHO = ADDED_WHO, @IDB_CHANGED_WHEN = CHANGED_WHEN, @IDB_CHANGED_WHO = CHANGED_WHO FROM TBIDB_OBJECT
WHERE IDB_OBJ_ID = @IDB_OBJ_ID;
IF @ATTRIBUTE like 'IDB%'
BEGIN
SELECT @IDB_CREATED_WHEN = ADDED_WHEN, @IDB_CREATED_WHO = ADDED_WHO, @IDB_CHANGED_WHEN = CHANGED_WHEN, @IDB_CHANGED_WHO = CHANGED_WHO FROM TBIDB_OBJECT
WHERE IDB_OBJ_ID = @IDB_OBJ_ID
IF @ATTRIBUTE = 'IDBCreatedWhen'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CREATED_WHEN)
ELSE IF @ATTRIBUTE = 'IDBCreatedWho'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CREATED_WHO)
ELSE IF @ATTRIBUTE = 'IDBChangedWhen'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CHANGED_WHEN)
ELSE IF @ATTRIBUTE = 'IDBChangedWho'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CHANGED_WHO)
END
ELSE
BEGIN
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND UPPER(TITLE) = UPPER(@ATTRIBUTE)
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
DECLARE @TL_ID BIGINT
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM
TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TERM.GUID = TLANG.TERM_ID
INNER JOIN TBIDB_OBJECT_METADATA MD ON TLANG.OBJECT_ID = MD.GUID
INNER JOIN TBIDB_LANGUAGE LANG ON TLANG.LANG_ID = LANG.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE MD.ATTR_ID = @ATTR_ID
AND LANG.LANG_CODE = @LANG_CODE
AND MD.IDB_OBJ_ID = @IDB_OBJ_ID
AND OBJ.ACTIVE = 1
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_INTEGER TERM, TBIDB_OBJECT_METADATA MD WHERE MD.INT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_FLOAT TERM, TBIDB_OBJECT_METADATA MD WHERE MD.FLOAT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID
END
ELSE IF @TYP_ID = 4
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DECIMAL TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DEC_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID
END
ELSE IF @TYP_ID = 5
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DATE TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DATE_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID
END
ELSE IF @TYP_ID = 6
BEGIN
INSERT INTO @Output (TERM_VALUE,TERM_DATETIME)
SELECT TERM.TERM_VALUE,TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DATETIME TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DATETIME_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID
END
END
RETURN
END
GO
CREATE OR ALTER FUNCTION [dbo].[FNIDB_PM_GET_VARIABLE_VALUE_ROWID] (@DocID BIGINT, @ATTRIBUTE VARCHAR(100),@LANG_CODE VARCHAR(10), @DocID_ISFOREIGN as BIT = False)
RETURNS @Output TABLE (ID INT IDENTITY(1, 1),TERM_VALUE VARCHAR(900))
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TERM_RESULT VARCHAR(900)
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND UPPER(TITLE) = UPPER(@ATTRIBUTE);
IF @DocID_ISFOREIGN = 1
SELECT @DocID = IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @DocID;
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
DECLARE @TL_ID BIGINT
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM
TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TERM.GUID = TLANG.TERM_ID
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
INNER JOIN TBIDB_LANGUAGE LANG ON TLANG.LANG_ID = LANG.GUID
WHERE
MD.ATTR_ID = @ATTR_ID
AND LANG.LANG_CODE = @LANG_CODE
AND MD.IDB_OBJ_ID = @DocID
AND OBJ.ACTIVE = 1;
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_INTEGER TERM, TBIDB_OBJECT_METADATA MD WHERE MD.INT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_FLOAT TERM, TBIDB_OBJECT_METADATA MD WHERE MD.FLOAT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
ELSE IF @TYP_ID = 4
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DECIMAL TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DEC_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
ELSE IF @TYP_ID = 5
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DATE TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DATE_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
RETURN
END
GO
CREATE FUNCTION [dbo].[FNGetFileName]
(
@Path NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @FileName NVARCHAR(MAX)
DECLARE @ReversedPath NVARCHAR(MAX)
SET @ReversedPath = REVERSE(@Path)
SELECT @FileName = RIGHT(@Path, CHARINDEX('\', @ReversedPath)-1)
RETURN @FileName
END
GO
CREATE FUNCTION [dbo].[FNGetFileNameWithoutExtension]
(
@Path NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @FileName NVARCHAR(MAX)
DECLARE @ReversedPath NVARCHAR(MAX)
DECLARE @ExtLength INT
SET @ReversedPath = REVERSE(@Path)
SELECT @ExtLength = CHARINDEX('.', @ReversedPath)
SELECT @FileName = RIGHT(@Path, CHARINDEX('\', @ReversedPath)-1)
SELECT @FileName = LEFT(@FileName, LEN(@FileName) - @ExtLength)
RETURN @FileName
END
GO
CREATE FUNCTION [dbo].[FNGetDirectoryPath]
(
@Path NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @FileName NVARCHAR(MAX)
DECLARE @ReversedPath NVARCHAR(MAX)
DECLARE @PathLength INT
SET @ReversedPath = REVERSE(@Path)
SELECT @PathLength = CHARINDEX('\', @ReversedPath)
SELECT @FileName = LEFT(@Path, LEN(@Path) - @PathLength)
RETURN @FileName
END
GO
CREATE FUNCTION [dbo].[FNGetExtension]
(
@Path NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @FileName NVARCHAR(MAX)
DECLARE @ReversedPath NVARCHAR(MAX)
DECLARE @ExtLength INT
SET @ReversedPath = REVERSE(@Path)
SET @FileName = ''
SELECT @ExtLength = CHARINDEX('.', @ReversedPath)
IF (@ExtLength > 0)
BEGIN
SELECT @FileName = RIGHT(@Path, @ExtLength - 1)
END
RETURN @FileName
END
GO
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_TERM_TEXT] (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER,@LANG_CODE VARCHAR(10) = 'de-DE')
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
SELECT @RESULT = TERM.TERM_VALUE
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_LANGUAGE_TERM T1 ON T.GUID = T1.OBJECT_ID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON T1.TERM_ID = TERM.GUID
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 LANG.LANG_CODE = @LANG_CODE
AND OBJ.ACTIVE = 1;
RETURN @RESULT
END
GO
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (@TERM_ID BIGINT)
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @RESULT VARCHAR(900)
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @TERM_ID
RETURN @RESULT
END
GO
----------------------------------------------------
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_TERM_TEXT_VECTOR] (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER, @LANG_CODE VARCHAR(5) = 'de-DE')
RETURNS VARCHAR(5000)
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT_SING VARCHAR(900), @RESULT VARCHAR(5000)
SEt @RESULT = ''
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_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
IF @RESULT = ''
SET @RESULT = @RESULT_SING
ELSE
SET @RESULT += '; ' + @RESULT_SING
FETCH NEXT FROM c_FNIDB_GET_TERM_TEXT_VECTOR INTO @TERM_ID
END
CLOSE c_FNIDB_GET_TERM_TEXT_VECTOR
DEALLOCATE c_FNIDB_GET_TERM_TEXT_VECTOR
RETURN @RESULT
END
GO
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_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_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
IF @RESULT = ''
SET @RESULT = @RESULT_SING
ELSE
SET @RESULT += '; ' + @RESULT_SING
FETCH NEXT FROM c_FNIDB_GET_TERM_INTEGER_VECTOR INTO @TERM_ID
END
CLOSE c_FNIDB_GET_TERM_INTEGER_VECTOR
DEALLOCATE c_FNIDB_GET_TERM_INTEGER_VECTOR
RETURN @RESULT
END
GO
CREATE FUNCTION FNIDB_GET_TERM_INTEGER (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER)
RETURNS BIGINT
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
SELECT @TERM_ID = INT_TERM_ID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID and ATTR_ID = @ATTR_ID
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_INTEGER WHERE GUID = @TERM_ID
RETURN @RESULT
END
GO
CREATE FUNCTION FNIDB_GET_TERM_BIT (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER)
RETURNS BIT
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT BIT
SELECT @TERM_ID = INT_TERM_ID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID and ATTR_ID = @ATTR_ID
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_INTEGER WHERE GUID = @TERM_ID
RETURN @RESULT
END
GO
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FLOAT] (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER)
RETURNS FLOAT
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT FLOAT
SELECT @TERM_ID = FLOAT_TERM_ID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID and ATTR_ID = @ATTR_ID
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_FLOAT WHERE GUID = @TERM_ID
RETURN @RESULT
END
GO
CREATE FUNCTION FNIDB_GET_TERM_DATE (@IDB_OBJ_ID BIGINT,@ATTR_ID INTEGER)
RETURNS DATE
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT DATE
SELECT @TERM_ID = DATE_TERM_ID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID and ATTR_ID = @ATTR_ID
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_DATE WHERE GUID = @TERM_ID
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
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT DECIMAL(19,0)
SELECT @TERM_ID = DEC_TERM_ID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID and ATTR_ID = @ATTR_ID
SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_DECIMAL WHERE GUID = @TERM_ID
RETURN @RESULT
END
GO
CREATE FUNCTION [dbo].[FNGET_WINDREAM_FILE_PATH] (@pDOCID BIGINT)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE
@RESULT VARCHAR(MAX),
@DOCID BIGINT,
@a TINYINT = 1,
@i TINYINT = 0,
@PARENT_ID BIGINT,
@DATEINAME NVARCHAR(255),
@PARENTNAME NVARCHAR(255),
@FSFLAGS INT,
@WM_PREFIX VARCHAR(50)
SET @WM_PREFIX = '\\windream\objects'
SELECT @FSFLAGS = dwFSFlags FROM [windream60].[dbo].[BaseAttributes] WHERE dwDocID = @pDOCID
IF @FSFLAGS = 16
BEGIN
SET @RESULT = 'THIS IS NOT A FILE!'
END
ELSE
BEGIN
SELECT @DATEINAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].[dbo].[BaseAttributes] WHERE dwDocID = @pDOCID
WHILE @a > 0
BEGIN
IF @i = 0
BEGIN
IF @PARENT_ID = 1
BEGIN
SET @RESULT = '\'
BREAK
END
ELSE
BEGIN
SET @DOCID = @PARENT_ID
SET @RESULT = '\'
END
END
ELSE
BEGIN
IF @PARENT_ID = 1
BEGIN
SET @RESULT = '\' + @PARENTNAME + @RESULT
BREAK
END
ELSE
BEGIN
SET @DOCID = @PARENT_ID
SET @RESULT = '\' + @PARENTNAME + @RESULT
END
END
--select * from [172.24.12.41\BRAINPOOL].windream60.dbo.BaseAttributes
SELECT @PARENTNAME = szLongName,@PARENT_ID = dwParentID FROM [windream60].[dbo].[BaseAttributes] WHERE dwDocID = @DOCID
SET @i = @i + 1
END
END
SET @RESULT = @WM_PREFIX + @RESULT + @DATEINAME
RETURN @RESULT
END
GO
CREATE OR ALTER FUNCTION [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] (@DocID BIGINT, @ATTRIBUTE VARCHAR(100),@LANG_CODE VARCHAR(10), @DocID_ISFOREIGN as BIT = False)
RETURNS @Output TABLE (TERM_VALUE VARCHAR(900))
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TERM_RESULT VARCHAR(900),
@IDB_CREATED_WHEN DATETIME,
@IDB_CREATED_WHO VARCHAR(100),
@IDB_CHANGED_WHEN DATETIME,
@IDB_CHANGED_WHO VARCHAR(100)
IF @DocID_ISFOREIGN = 1
SELECT @DocID = IDB_OBJ_ID,@IDB_CREATED_WHEN = ADDED_WHEN, @IDB_CREATED_WHO = ADDED_WHO, @IDB_CHANGED_WHEN = CHANGED_WHEN, @IDB_CHANGED_WHO = CHANGED_WHO FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @DocID
ELSE
SELECT @IDB_CREATED_WHEN = ADDED_WHEN, @IDB_CREATED_WHO = ADDED_WHO, @IDB_CHANGED_WHEN = CHANGED_WHEN, @IDB_CHANGED_WHO = CHANGED_WHO FROM TBIDB_OBJECT
WHERE IDB_OBJ_ID = @DocID
IF @ATTRIBUTE like 'IDB%'
BEGIN
SELECT @IDB_CREATED_WHEN = ADDED_WHEN, @IDB_CREATED_WHO = ADDED_WHO, @IDB_CHANGED_WHEN = CHANGED_WHEN, @IDB_CHANGED_WHO = CHANGED_WHO FROM TBIDB_OBJECT
WHERE IDB_OBJ_ID = @DocID
IF @ATTRIBUTE = 'IDBCreatedWhen'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CREATED_WHEN)
ELSE IF @ATTRIBUTE = 'IDBCreatedWho'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CREATED_WHO)
ELSE IF @ATTRIBUTE = 'IDBChangedWhen'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CHANGED_WHEN)
ELSE IF @ATTRIBUTE = 'IDBChangedWho'
INSERT INTO @Output (TERM_VALUE) VALUES (@IDB_CHANGED_WHO)
END
ELSE
BEGIN
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND UPPER(TITLE) = UPPER(@ATTRIBUTE);
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
DECLARE @TL_ID BIGINT
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM
TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN TBIDB_LANGUAGE_TERM TLANG ON TERM.GUID = TLANG.TERM_ID
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
INNER JOIN TBIDB_LANGUAGE LANG ON TLANG.LANG_ID = LANG.GUID
WHERE MD.ATTR_ID = @ATTR_ID
AND LANG.LANG_CODE = @LANG_CODE
AND MD.IDB_OBJ_ID = @DocID
AND OBJ.ACTIVE = 1;
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_INTEGER TERM, TBIDB_OBJECT_METADATA MD WHERE MD.INT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_FLOAT TERM, TBIDB_OBJECT_METADATA MD WHERE MD.FLOAT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
ELSE IF @TYP_ID = 4
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DECIMAL TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DEC_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
ELSE IF @TYP_ID = 5
BEGIN
INSERT INTO @Output (TERM_VALUE)
SELECT TERM.TERM_VALUE FROM TBIDB_TERM_VALUE_DATE TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DATE_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @DocID
END
END
RETURN
END
GO
-------------------------------------------------------------------
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (@LANG_TERM_ID BIGINT, @pLANGUAGE_CODE VARCHAR(5) = 'de-DE')
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
SELECT @RESULT = T1.TERM_VALUE
FROM
TBIDB_LANGUAGE_TERM T INNER JOIN TBIDB_TERM_VALUE_VARCHAR T1 ON T.TERM_ID = T1.GUID
INNER JOIN TBIDB_LANGUAGE LANG ON T.LANG_ID = LANG.GUID
WHERE
T.GUID = @LANG_TERM_ID AND
LANG.LANG_CODE = @pLANGUAGE_CODE
RETURN @RESULT
END
GO
-------------------------------------------------------------------
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_STATE_FOR_OBJECT_ID] (@OBJ_ID BIGINT,@LANG_CODE VARCHAR(5))
RETURNS @Output TABLE (ID BIGINT,[STATE] VARCHAR(100),ADDED_WHO VARCHAR(100), ADDED_WHEN DATETIME)
AS
BEGIN
INSERT INTO @Output (ID,STATE,ADDED_WHO,ADDED_WHEN)
SELECT A.GUID, E.TERM_VALUE
,F.TERM_VALUE AS ADDED_WHO
, A.ADDED_WHEN
FROM TBIDB_MYOBJECT_STATES A INNER JOIN TBIDB_STATES B ON A.STATE_ID = B.GUID
INNER JOIN TBIDB_LANGUAGE_TERM C ON B.GUID = C.OBJECT_ID
INNER JOIN TBIDB_LANGUAGE D ON C.LANG_ID = D.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR E ON C.TERM_ID = E.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR F ON A.ADDED_WHO = F.GUID
WHERE D.LANG_CODE = @LANG_CODE AND A.MY_OBJECT_ID = @OBJ_ID
RETURN
END
GO
-------------------------------------------------------------------
CREATE FUNCTION [dbo].[FNIDB_OBJECT_DYNAMIC_CONFIG] (@pIDB_OBJ_ID as INTEGER, @pUSERID as INTEGER)
RETURNS
@Table TABLE
(CONF_TITLE VARCHAR(900),CONF_VALUE VARCHAR(900))
AS
BEGIN
DECLARE @CONVID BIGINT
SELECT @CONVID = CONVERSATION_ID FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND CONVERSATION_STATE = 'Started'
IF @CONVID > 0
BEGIN
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ID',@CONVID);
END
IF EXISTS(SELECT CONV_ID FROM VWIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND USER_ID = @pUSERID)
BEGIN
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_USER_ACTIVE','True');
END
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Admin');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Start');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','Stop');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddMessage');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_RIGHT','AddUser');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('NEW_CONVERSATION_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from @MY_DD_ECM_DB.dbo.TBDD_USER');
INSERT INTO @Table (CONF_TITLE, CONF_VALUE) VALUES ('CONVERSATION_ADD_USER_SELECT','SELECT GUID as UserID, NAME, USERNAME, EMAIL from @MY_DD_ECM_DB.dbo.TBDD_USER WHERE GUID NOT IN (SELECT USER_OR_GROUP_ID FROM
TBIDB_CONVERSATION_USER WHERE CONV_ID = @CONVID AND IS_USER = 1)');
RETURN
END
GO
CREATE FUNCTION [dbo].[FNIDB_GET_FILE_PATH] (@pIDB_OBJ_ID BIGINT)
RETURNS VARCHAR(500)
AS
BEGIN
DECLARE @RELPATH VARCHAR(500),@FILEPATH VARCHAR(500),@NAVPATH as VARCHAR(500)
SELECT @RELPATH = [CAT_STRING] FROM [TBIDB_CATALOG] where CAT_TITLE = 'FILESTORE_PRAEFIX'
SELECT @NAVPATH = RELATIVE_PATH FROM TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @pIDB_OBJ_ID
RETURN @NAVPATH
END
GO
CREATE FUNCTION [dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (@pTERMGUID BIGINT)
RETURNS VARCHAR(900)
AS
BEGIN
DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900)
SELECT @RESULT = T.TERM_VALUE
FROM TBIDB_TERM_VALUE_VARCHAR T WHERE T.GUID = @pTERMGUID
RETURN @RESULT
END
GO
---- =============================================
---- Author: DD MS
---- Craeation date: 17.08.2020 MS [TBIDB_LANGUAGE_TERM_METADATA]
---- =============================================
--DROP FUNCTION [dbo].[FNIDB_GET_TERM_FOR_LANGUAGE_TERM_METADATA_GUID] (@pTBIDB_LANGUAGE_TERM_METADATA_GUID BIGINT,@pLANG_CODE VARCHAR(5) = 'de-DE')
--RETURNS VARCHAR(900)
--AS
--BEGIN
-- DECLARE @TERM_ID BIGINT, @RESULT VARCHAR(900),@LANG_ID INTEGER
-- SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
-- SELECT @RESULT = T3.TERM_VALUE -- @TERM_ID = T1.TEXT_TERM_ID
-- FROM TBIDB_LANGUAGE_TERM_METADATA T2
-- INNER JOIN TBIDB_TERM_LANGUAGE T1 ON T2.LANG_TERM_ID = T1.GUID
-- INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T1.TEXT_TERM_ID = T3.GUID
-- WHERE
-- T2.GUID = @pTBIDB_LANGUAGE_TERM_METADATA_GUID
-- AND T1.LANGUAGE_ID = @LANG_ID
-- --SELECT @RESULT = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @TERM_ID
-- RETURN @RESULT
--END
--GO
-- =============================================
-- Author: DD MS
-- Creation date: 17.08.2020
-- =============================================
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (@pATTRIBUTE_ID INTEGER,@pLANG_CODE VARCHAR(10), @pUSERID INTEGER)
RETURNS @Output TABLE (IDB_OBJECT_ID BIGINT, TERM_VALUE VARCHAR(900),TERM_ID BIGINT,IDB_CREATED_WHEN DATETIME,IDB_CREATED_WHO VARCHAR(100))
AS
BEGIN
DECLARE
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TERM_RESULT VARCHAR(900),
@CREATED_WHEN DATETIME,
@CREATED_WHO VARCHAR(100)
BEGIN
SELECT @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND T.GUID = @pATTRIBUTE_ID;
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
DECLARE @TL_ID BIGINT
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
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 MD.ATTR_ID = @pATTRIBUTE_ID
AND LANG.LANG_CODE = @pLANG_CODE
AND OBJ.ACTIVE = 1;
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
FROM
TBIDB_TERM_VALUE_INTEGER TERM, TBIDB_OBJECT_METADATA MD WHERE MD.INT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @pATTRIBUTE_ID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
FROM TBIDB_TERM_VALUE_FLOAT TERM, TBIDB_OBJECT_METADATA MD WHERE MD.FLOAT_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @pATTRIBUTE_ID
END
ELSE IF @TYP_ID = 4
BEGIN
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE, TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
FROM TBIDB_TERM_VALUE_DECIMAL TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DEC_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @pATTRIBUTE_ID
END
ELSE IF @TYP_ID = 5
BEGIN
INSERT INTO @Output (IDB_OBJECT_ID,TERM_VALUE,TERM_ID,IDB_CREATED_WHEN,IDB_CREATED_WHO)
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE,TERM.GUID, MD.ADDED_WHEN,MD.ADDED_WHO
FROM TBIDB_TERM_VALUE_DATE TERM, TBIDB_OBJECT_METADATA MD WHERE MD.DATE_TERM_ID = TERM.GUID
AND MD.ATTR_ID = @pATTRIBUTE_ID
END
END
RETURN
END
GO
--CREATE FUNCTION [dbo].[FNIDB_SEARCH_GET_FILTER_SQL] (@pSEARCH_ID INTEGER, @pUSERID INTEGER, @pLANG_CODE VARCHAR(5))
--RETURNS NVARCHAR(MAX)
--AS
--BEGIN
-- DECLARE @ATTR_ID INTEGER, @ATTR_TITLE AS VARCHAR(100), @RUN TINYINT, @RESULT NVARCHAR(MAX), @RUN_ALIAS VARCHAR(2), @RUN_SELECT VARCHAR(500)
-- ,@RUN_FROM VARCHAR(500), @SELECT_PART NVARCHAR(MAX), @FROM_PART NVARCHAR(MAX),@SEPARATOR VARCHAR(1)
-- SET @RUN = 0
-- SET @RUN_ALIAS = 'T'
-- SET @SELECT_PART = 'SELECT '
-- SET @FROM_PART = ''
-- DECLARE cursAttribute CURSOR LOCAL FOR
-- SELECT ATTRIBUTE_ID,ATTRIBUTE_TITLE
-- FROM VWIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = @pSEARCH_ID ORDER BY SEQUENCE
-- OPEN cursAttribute
-- FETCH NEXT FROM cursAttribute INTO @ATTR_ID,@ATTR_TITLE
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- SET @RUN_SELECT = ''
-- SET @RUN_FROM = ''
-- IF @RUN = 0
-- BEGIN
-- SET @RUN_SELECT = 'T.IDB_OBJECT_ID, T.TERM_VALUE AS [' + @ATTR_TITLE + ']'
-- SET @RUN_FROM = CHAR(10) + 'FROM [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (' + CONVERT(VARCHAR(10),@ATTR_ID) + ',''' + @pLANG_CODE + ''',' + CONVERT(VARCHAR(10),@pUSERID) + ') T'
-- END
-- ELSE
-- BEGIN
-- SET @RUN_SELECT = ', ' + @RUN_ALIAS + CONVERT(VARCHAR(2), @RUN) + '.TERM_VALUE AS [' + @ATTR_TITLE + ']'
-- SET @RUN_FROM = CHAR(10) + 'INNER JOIN [dbo].[FNIDB_GET_TERM_FOR_ATTRIBUTE_ID] (' + CONVERT(VARCHAR(10),@ATTR_ID) + ',''' + @pLANG_CODE + ''',' + CONVERT(VARCHAR(10),@pUSERID) + ') ' + @RUN_ALIAS + CONVERT(VARCHAR(2), @RUN)
-- SET @RUN_FROM += ' ON T.IDB_OBJECT_ID = T' + CONVERT(VARCHAR(2), @RUN) + '.IDB_OBJECT_ID'
-- END
-- SET @SELECT_PART += @RUN_SELECT
-- SET @FROM_PART += @RUN_FROM
-- SET @RUN += 1
-- FETCH NEXT FROM cursAttribute INTO @ATTR_ID,@ATTR_TITLE
-- END
-- CLOSE cursAttribute
-- DEALLOCATE cursAttribute
-- SET @RESULT = @SELECT_PART + @FROM_PART
-- RETURN @RESULT
--END
--GO
-- =======================================================
-- Author: SYSTEM, DD MS
-- Create Date: 22.10.2020
-- Gunction returns all values for parameterized Attribute
-- =======================================================
CREATE OR ALTER FUNCTION [dbo].[FNIDB_PM_GET_VARIABLE_VALUE_FOR_ALL_OBJECTS] (@ATTRIBUTE VARCHAR(100),@LANG_CODE VARCHAR(10))
RETURNS @Output TABLE (IDB_OBJ_ID BIGINT,TERM_VALUE VARCHAR(900))
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@LANG_ID INT,
@TERM_RESULT VARCHAR(900)
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @LANG_CODE
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND UPPER(TITLE) = UPPER(@ATTRIBUTE)
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
DECLARE @TL_ID BIGINT
INSERT INTO @Output (IDB_OBJ_ID,TERM_VALUE)
SELECT MD.IDB_OBJ_ID, TERM.TERM_VALUE
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 MD.ATTR_ID = @ATTR_ID
AND LANG.LANG_CODE = @LANG_CODE
AND OBJ.ACTIVE = 1
ORDER BY OBJ.IDB_OBJ_ID DESC
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
INSERT INTO @Output (IDB_OBJ_ID,TERM_VALUE)
SELECT OBJ.IDB_OBJ_ID,TERM.TERM_VALUE
FROM
TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.INT_TERM_ID = TERM.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
MD.ATTR_ID = @ATTR_ID
AND OBJ.ACTIVE = 1
ORDER BY OBJ.IDB_OBJ_ID DESC
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
INSERT INTO @Output (IDB_OBJ_ID,TERM_VALUE)
SELECT OBJ.IDB_OBJ_ID,TERM.TERM_VALUE
FROM
TBIDB_TERM_VALUE_FLOAT TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.FLOAT_TERM_ID = TERM.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
MD.ATTR_ID = @ATTR_ID
AND OBJ.ACTIVE = 1 ORDER BY OBJ.IDB_OBJ_ID DESC
END
ELSE IF @TYP_ID = 4
BEGIN
INSERT INTO @Output (IDB_OBJ_ID,TERM_VALUE)
SELECT OBJ.IDB_OBJ_ID,TERM.TERM_VALUE
FROM
TBIDB_TERM_VALUE_DECIMAL TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.DEC_TERM_ID = TERM.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
MD.ATTR_ID = @ATTR_ID
AND OBJ.ACTIVE = 1
ORDER BY OBJ.IDB_OBJ_ID DESC
END
ELSE IF @TYP_ID = 5
BEGIN
INSERT INTO @Output (IDB_OBJ_ID,TERM_VALUE)
SELECT OBJ.IDB_OBJ_ID,TERM.TERM_VALUE
FROM
TBIDB_TERM_VALUE_DATE TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.DATE_TERM_ID = TERM.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
MD.ATTR_ID = @ATTR_ID AND OBJ.ACTIVE = 1
ORDER BY OBJ.IDB_OBJ_ID DESC
END
RETURN
END
GO
--=============================================
--Author: SYSTEM MS
--Creation date: 22.10.2020
--=============================================
CREATE OR ALTER FUNCTION [dbo].[FNIDB_GET_SEARCH_PROFILES] (@pUSERID INT, @pLANGCODE VARCHAR(5))
RETURNS @Output TABLE (SEARCH_PROFILE_ID INTEGER,TITLE VARCHAR(100),RESULT_SQL VARCHAR(915),PSOURCE VARCHAR(50))
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@LANG_ID INT,
@TERM_RESULT VARCHAR(900),
@IDB_CREATED_WHEN DATETIME,
@IDB_CREATED_WHO VARCHAR(100),
@IDB_CHANGED_WHEN DATETIME,
@IDB_CHANGED_WHO VARCHAR(100)
INSERT INTO @Output (SEARCH_PROFILE_ID,TITLE,RESULT_SQL,PSOURCE)
SELECT
T.GUID
,TERM.TERM_VALUE TITLE
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T2.SEARCH_TERM_ID) AS RESULT_SQL
,'TBIDB_SEARCH_PROFILE_USER'
FROM TBIDB_SEARCH_PROFILE T INNER JOIN TBIDB_SEARCH_PROFILE_USER_GROUP T1 ON T.GUID = T1.SEARCH_PROFIL_ID
INNER JOIN TBIDB_LANGUAGE_TERM LTERM ON T.GUID = LTERM.OBJECT_ID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON LTERM.TERM_ID = TERM.GUID
INNER JOIN TBIDB_SEARCH_LANGUAGE_SQL_RESULT T2 ON T.GUID = T2.SEARCH_PROFIL_ID
INNER JOIN TBIDB_LANGUAGE T3 ON T2.LANGUAGE_ID = T3.GUID
INNER JOIN TBIDB_LANGUAGE T4 ON LTERM.LANG_ID = T4.GUID
WHERE T1.USER_ID = @pUSERID AND T3.LANG_CODE = @pLANGCODE
AND T4.LANG_CODE = @pLANGCODE
INSERT INTO @Output (SEARCH_PROFILE_ID,TITLE,RESULT_SQL,PSOURCE)
SELECT
T.GUID
,TERM.TERM_VALUE TITLE
,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T4.SEARCH_TERM_ID) AS RESULT_SQL
,'TBIDB_SEARCH_PROFILE_GROUP'
FROM TBIDB_SEARCH_PROFILE T INNER JOIN TBIDB_SEARCH_PROFILE_USER_GROUP T1 ON T.GUID = T1.SEARCH_PROFIL_ID
INNER JOIN DD_ECM.dbo.TBDD_GROUPS T2 ON T1.GROUP_ID = T2.GUID
INNER JOIN DD_ECM.dbo.TBDD_GROUPS_USER T3 ON T2.GUID = T3.GROUP_ID
INNER JOIN TBIDB_LANGUAGE_TERM LTERM ON T.GUID = LTERM.OBJECT_ID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON LTERM.TERM_ID = TERM.GUID
INNER JOIN TBIDB_SEARCH_LANGUAGE_SQL_RESULT T4 ON T.GUID = T4.SEARCH_PROFIL_ID
INNER JOIN TBIDB_LANGUAGE T5 ON T4.LANGUAGE_ID = T3.GUID
INNER JOIN TBIDB_LANGUAGE T6 ON LTERM.LANG_ID = T6.GUID
WHERE T3.USER_ID = @pUSERID AND T5.LANG_CODE = @pLANGCODE
AND T6.LANG_CODE = @pLANGCODE
RETURN
END
GO
--CREATE FUNCTION [dbo].[FNIDB_SEARCH_RESULT_GET_OBJECTS] (@pUSERID INT,@PSEARCHID INT)
----DECLARE @pUSERID INT,@PSEARCHID INT
----SET @pUSERID =1
----SET @PSEARCHID = 7
--RETURNS @TBRESULT TABLE (RUN INT, IDB_OBJ_ID BIGINT, ATTR_ID INT,ATTR_TITLE VARCHAR(100), COMMENT VARCHAR(200))
--AS
--BEGIN
-- DECLARE
-- @GUID BIGINT,@ATTR_ID INT,@LASTATTR_ID INT ,@ATTR_TITLE VARCHAR(100),@RUN TINYINT,@COUNT_ATTRIBUTES TINYINT
-- ,@RESTRICTIONSYN BIT
-- SET @LASTATTR_ID = 0
-- DECLARE @TBRESULT_RESTRICTION TABLE (RUN INT, IDB_OBJ_ID BIGINT, ATTR_ID INT,ATTR_TITLE VARCHAR(100), COMMENT VARCHAR(200))
-- select @COUNT_ATTRIBUTES = COUNT(T.USERID)
-- from
-- VWIDB_SEARCH_ATTRIBUTES_USER T
-- WHERE
-- T.SEARCH_PROFIL_ID = @PSEARCHID AND T.USERID = @pUSERID
-- SET @RUN = 1
-- DECLARE cursorSearchAttributes CURSOR FOR
-- select
-- T.ATTRIBUTE_ID,T.TITLE
-- from
-- VWIDB_SEARCH_ATTRIBUTES_USER T
-- WHERE
-- T.SEARCH_PROFIL_ID = @PSEARCHID AND T.USERID = @pUSERID
-- ORDER BY T.SEQUENCE
-- OPEN cursorSearchAttributes
-- FETCH NEXT FROM cursorSearchAttributes INTO @ATTR_ID,@ATTR_TITLE
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- DECLARE @SEARCH_DEF_ID BIGINT, @TERM_ID BIGINT
-- DECLARE cursorDetailAttribute CURSOR FOR
-- select
-- T.GUID,T.TERM_ID
-- from
-- TBIDB_USER_SEARCH_CRITERIA T
-- WHERE
-- T.SEARCH_PROFIL_ID = 7 AND T.USERID = 1 AND T.ATTRIBUTE_ID = @ATTR_ID
-- OPEN cursorDetailAttribute
-- FETCH NEXT FROM cursorDetailAttribute INTO @SEARCH_DEF_ID,@TERM_ID
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- INSERT INTO @TBRESULT_RESTRICTION ( RUN, IDB_OBJ_ID, ATTR_ID, ATTR_TITLE)
-- SELECT @SEARCH_DEF_ID, IDB_OBJECT_ID, @ATTR_ID, @ATTR_TITLE
-- FROM
-- FNIDB_GET_TERM_FOR_ATTRIBUTE_ID (@ATTR_ID,'de-DE',@pUSERID)
-- WHERE
-- TERM_ID = @TERM_ID
-- --SELECT * FROM @TBRESULT_RESTRICTION
-- FETCH NEXT FROM cursorDetailAttribute INTO @SEARCH_DEF_ID,@TERM_ID
-- END
-- CLOSE cursorDetailAttribute
-- DEALLOCATE cursorDetailAttribute
-- --PRINT 'FIRST SEARCH ROW'
-- --PRINT @TBRESULT_RESTRICTION
-- --PRINT '@COUNT_ATTRIBUTES: ' + CONVERT(VARCHAR(2),@COUNT_ATTRIBUTES)
-- --PRINT '@RUN: ' + CONVERT(VARCHAR(2),@RUN)
-- IF @RUN = 1
-- INSERT INTO @TBRESULT ( RUN, IDB_OBJ_ID, ATTR_ID, ATTR_TITLE, COMMENT)
-- SELECT * FROM @TBRESULT_RESTRICTION
-- ELSE
-- IF @COUNT_ATTRIBUTES = @RUN
-- BEGIN
-- -- --#### Now deleting the Results which are not part of the restriction
-- --PRINT 'DELETE AS THIS IS THE LAST RUN PER ATTRIBUTE'
-- DELETE FROM @TBRESULT WHERE IDB_OBJ_ID NOT IN (
-- SELECT IDB_OBJ_ID FROM @TBRESULT_RESTRICTION)
-- -- UPDATE T
-- -- SET
-- -- T.RUN = T1.RUN
-- -- FROM
-- -- @TBRESULT T INNER JOIN
-- -- @TBRESULT_RESTRICTION T1 ON T.IDB_OBJ_ID = T1.IDB_OBJ_ID
-- END
-- SET @RUN +=1
-- SET @LASTATTR_ID = @ATTR_ID
-- DELETE FROM @TBRESULT_RESTRICTION
-- FETCH NEXT FROM cursorSearchAttributes INTO @ATTR_ID,@ATTR_TITLE
-- END
-- CLOSE cursorSearchAttributes
-- DEALLOCATE cursorSearchAttributes
--RETURN
----select DISTINCT IDB_OBJ_ID from @TBRESULT ORDER BY IDB_OBJ_ID
--END
--GO
/*#########################################
############## VIEWS ######################
###########################################*/
CREATE VIEW VWIDB_FILE_OBJECT AS
SELECT
A.IDB_OBJ_ID
,FN.TERM_VALUE as Filename
,EXT.TERM_VALUE as Extension
,RP.TERM_VALUE as RELPATH
,A.FILE_HASH
,A.FILE_SIZE
,A.ADDED_WHEN
,A.ADDED_WHO
,A.CHANGED_WHO
,A.CHANGED_WHEN
FROM
TBIDB_FILE_OBJECT A INNER JOIN TBIDB_TERM_VALUE_VARCHAR EXT ON A.EXTENSION_TERM_ID = EXT.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR FN ON A.FILENAME_TERM_ID = FN.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR RP ON A.RELPATH_TERM_ID = RP.GUID
GO
CREATE VIEW VWIDB_OBJECT_STORE
AS
SELECT
A.GUID,
A.OBJECT_TITLE AS Objectstore,
A.IS_ARCHIVE Archive
,B.CAT_STRING As REL_PATH
,A.ADDED_WHEN
,A.ADDED_WHO
,A.CHANGED_WHO
,A.CHANGED_WHEN
FROM
TBIDB_OBJECT_STORE A INNER JOIN TBIDB_CATALOG B ON A.CAT_ID = B.GUID
GO
CREATE OR ALTER VIEW [dbo].[VWIDB_VALUE_CHANGE_LOG] AS
select
T.GUID AS ChangeID,
T1.GUID AS AttributeID,
T.IDB_OBJ_ID, T1.TITLE as Attribute,
T2.TERM_VALUE as [OLD VALUE],
T3.TERM_VALUE as [NEW VALUE],
T.CHANGED_WHO ,
T.CHANGED_WHEN
from TBIDB_OBJECT_METADATA_CHANGE T
INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T2 ON T.OLD_TEXT_TERM = T2.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T.NEW_TEXT_TERM = T3.GUID
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_BIT] AS
SELECT
T.GUID AS MetadataID,
T.ATTR_ID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
(SELECT [dbo].[FNIDB_GET_TERM_BIT] (T.IDB_OBJ_ID,T.ATTR_ID)) AS 'Term_Value',
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
WHERE
T2.NAME_TYPE = 'BIT'
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_DATE] AS
SELECT
T.GUID AS MetadataID,
T.ATTR_ID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
(SELECT [dbo].[FNIDB_GET_TERM_DATE] (T.IDB_OBJ_ID,T.ATTR_ID)) AS 'Term_Value',
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
WHERE
T2.NAME_TYPE = 'DATE'
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_DATETIME] AS
SELECT
T.GUID AS MetadataID,
T.ATTR_ID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
T3.TERM_VALUE AS 'Term_Value',
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_TERM_VALUE_DATETIME T3 ON T.DATETIME_TERM_ID = T3.GUID
GO
CREATE NONCLUSTERED INDEX [TBIDB_OBJECT_METADATA_DATETIMETERMID]
ON [dbo].[TBIDB_OBJECT_METADATA] ([DATETIME_TERM_ID])
INCLUDE ([IDB_OBJ_ID],[ATTR_ID],[ADDED_WHO],[ADDED_WHEN],[CHANGED_WHO],[CHANGED_WHEN])
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_DECIMAL] AS
SELECT
T.GUID AS MetadataID,
T.ATTR_ID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
(SELECT [dbo].[FNIDB_GET_TERM_DECIMAL] (T.IDB_OBJ_ID,T.ATTR_ID)) AS 'Term_Value',
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
WHERE
T2.NAME_TYPE = 'DECIMAL'
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_FLOAT] AS
SELECT
T.GUID AS MetadataID,
T.ATTR_ID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
(SELECT [dbo].[FNIDB_GET_TERM_FLOAT] (T.IDB_OBJ_ID,T.ATTR_ID)) AS 'Term_Value',
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
WHERE
T2.NAME_TYPE = 'FLOAT'
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_INTEGER] AS
SELECT
T.GUID AS MetadataID,
T.ATTR_ID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
(SELECT [dbo].[FNIDB_GET_TERM_INTEGER] (T.IDB_OBJ_ID,T.ATTR_ID)) AS 'Term_Value',
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO,
T.CHANGED_WHEN
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
WHERE
T2.NAME_TYPE = 'BIG INTEGER'
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_TEXT] AS
SELECT
T.IDB_OBJ_ID
,T.ATTR_ID
,T1.TITLE ATTR_NAME
,(SELECT [dbo].[FNIDB_GET_TERM_TEXT] (T.IDB_OBJ_ID,T.ATTR_ID,'de-DE')) AS 'Term_Value'
FROM
TBIDB_OBJECT_METADATA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_ATTRIBUTE_TYPE T2 ON T1.TYP_ID = T2.GUID
WHERE
T2.NAME_TYPE = 'VARCHAR'
GO
CREATE VIEW [dbo].[VWIDB_VALUE_DELETE_LOG] AS
select
T.GUID AS DeleteID,
T1.GUID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
T3.TERM_VALUE as [Gel<EFBFBD>schter Wert],
T.DELETED_WHO [Gel<EFBFBD>scht wer],
T.DELETED_WHEN [Gel<EFBFBD>scht wann]
from TBIDB_OBJECT_METADATA_DELETE 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_TERM_VALUE_VARCHAR T3 ON T2.TERM_ID = T3.GUID
GO
CREATE OR ALTER VIEW [dbo].[VWIDB_VALUE_TEXT] AS
select TOP 100 PERCENT
T.GUID AS MetadataID,
T1.GUID AS AttributID,
T.IDB_OBJ_ID,
T1.TITLE as Attribut,
T3.TERM_VALUE,
T4.LANG_CODE,
T.ADDED_WHO,
T.ADDED_WHEN,
T.CHANGED_WHO [Ge<EFBFBD>ndert wer],
T.CHANGED_WHEN [Ge<EFBFBD>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
GO
CREATE VIEW [dbo].[VWIDB_OBJ_VALUE_TEXT_SORTED] as
SELECT TOP 100 PERCENT
*, [Ge<EFBFBD>ndert wann] as LAST_CHANGE
FROM
VWIDB_VALUE_TEXT where [Ge<EFBFBD>ndert wann] IS NOT NULL
UNION
SELECT TOP 100 PERCENT
*, [ADDED_WHEN] as LAST_CHANGE
FROM
VWIDB_VALUE_TEXT where [Ge<EFBFBD>ndert wann] IS NULL
ORDER BY IDB_OBJ_ID DESC,LAST_CHANGE DESC
GO
CREATE VIEW VWIDB_CONVERSATION AS
SELECT
GUID As CONVERSATION_ID
,IDB_OBJ_ID
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (TITLE_TERM_ID,'de-DE') as TITLE
--,[dbo].[FNIDB_GET_STATE_FOR_OBJECT_ID] (GUID) AS CONVERSATION_STATE
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (ADDED_WHO) as ADDED_WHO
,ADDED_WHEN
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (CHANGED_WHO) as CHANGED_WHO
,CHANGED_WHEN
FROM TBIDB_CONVERSATION_OBJECT
GO
CREATE VIEW VWIDB_CONV_MESSAGES AS
select
T.GUID,
T.CONV_ID,
(SELECT EMAIL FROM DD_ECM.dbo.TBDD_USER WHERE GUID = T.TO_USER) TO_USER,
[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T1.TITLE_TERM_ID,'de-DE') AS CONV_TITLE
,[dbo].[FNIDB_GET_TERM_VALUE_VARCHAR] (T.FROM_USER) as USER_FROM
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.MESSAGE_TERM_ID,'de-DE') as MESSAGE_TEXT
,[dbo].[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.ADDED_WHO,'de-DE') as ADDED_WHO
,T.ADDED_WHEN
from TBIDB_CONVERSATION_MESSAGE T INNER JOIN TBIDB_CONVERSATION_OBJECT T1 ON T.CONV_ID = T1.GUID
GO
CREATE VIEW VWIDB_CONVERSATION_USER AS
SELECT
T.CONV_ID
,T1.GUID As USER_ID
,T1.USERNAME
,T1.EMAIL
,T1.NAME + ', ' + T1.PRENAME as NAME
FROM
[IDB].[dbo].[TBIDB_CONVERSATION_USER] T
INNER JOIN @MY_DD_ECM_DB.dbo.TBDD_USER T1 ON T.USER_OR_GROUP_ID = T1.GUID
WHERE IS_USER = 1
GO
--CREATE VIEW VWIDB_SEARCH_PROFILE_ATTRIBUTES AS
--SELECT
-- T.SEARCH_PROFIL_ID,
-- T.GUID,
-- T.ATTRIBUTE_ID,
-- --T.DEPENDING_ATTRIBUTE1,
-- T1.TITLE AS ATTRIBUTE_TITLE,
-- T.HEIGHT,
-- T.WIDTH,
-- T.MULTISELECT,
-- 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
-- ,T.[SEQUENCE]
--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
--GO
--CREATE VIEW VWIDB_SEARCH_ATTRIBUTES_LINKS AS
--SELECT
-- T1.SEARCH_PROFIL_ID,
-- T.GUID,
-- T.DEP_ATTR_ID,
-- --T.DEPENDING_ATTRIBUTE1,
-- T3.TITLE AS DEP_ATTRIBUTE_TITLE,
-- [dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T1.SOURCE_SQL) DEP_SOURCE_SQL,
-- T.LINKED_ATTR_ID
-- --T.DEPENDING_ATTRIBUTE1,
-- ,T5.TITLE AS LINK_ATTRIBUTE_TITLE
-- ,T.ADDED_WHEN
-- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (T.CHANGED_WHO) AS CHANGED_WHO
-- ,T.CHANGED_WHEN
--FROM
-- TBIDB_SEARCH_ATTRIBUTES_LINKS T INNER JOIN TBIDB_SEARCH_PROFILE_ATTRIBUTES T1 ON T.DEP_ATTR_ID = T1.ATTRIBUTE_ID
-- --INNER JOIN TBIDB_SEARCH_PROFILE_ATTRIBUTES T2 ON T.LINKED_ATTR_ID = T2.ATTRIBUTE_ID
-- INNER JOIN TBIDB_ATTRIBUTE T3 ON T.DEP_ATTR_ID = T3.GUID
-- INNER JOIN TBIDB_ATTRIBUTE T5 ON T.LINKED_ATTR_ID = T5.GUID
--GO
--CREATE VIEW VWIDB_SEARCH_ATTRIBUTES_USER
--AS
-- select TOP 100 PERCENT
-- T.USERID,T.SEARCH_PROFIL_ID, T.ATTRIBUTE_ID,T1.TITLE,T2.SEQUENCE
-- from
-- TBIDB_USER_SEARCH_CRITERIA T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
-- INNER JOIN TBIDB_SEARCH_PROFILE_ATTRIBUTES T2 ON T.SEARCH_PROFIL_ID = T2.SEARCH_PROFIL_ID AND T.ATTRIBUTE_ID = T2.ATTRIBUTE_ID
-- GROUP BY T.USERID,T.SEARCH_PROFIL_ID, T.ATTRIBUTE_ID,T1.TITLE,T2.SEQUENCE
-- ORDER BY T.USERID, T.SEARCH_PROFIL_ID, T2.SEQUENCE
--GO
CREATE OR ALTER VIEW [dbo].[VWIDB_CHANGE_LOG] AS
select
T.GUID AS ChangeID,
T.IDB_OBJ_ID,
T1.TITLE as Attribute,
T2.TERM_VALUE as [Old value],
T3.TERM_VALUE as [New value],
T.CHANGED_WHO [Changed who],
T.CHANGED_WHEN [Changed when]
from TBIDB_OBJECT_METADATA_CHANGE T
INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTR_ID = T1.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T2 ON T.OLD_TEXT_TERM = T2.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T.NEW_TEXT_TERM = T3.GUID
GO
--CREATE 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
CREATE VIEW VWIDB_DOCTYPE_HANDLING AS
SELECT
A.GUID
,A.DOCTYPE
,B.CAT_STRING AS CHANGED_HANDLING
,A.ADDED_WHO
,A.ADDED_WHEN
,A.CHANGED_WHO
,A.CHANGED_WHEN
FROM
TBIDB_DOCTYPE_HANDLING A INNER JOIN TBIDB_CATALOG B ON A.CHANGED_ACTION = B.GUID
WHERE
A.ACTIVE = 1
GO
CREATE OR ALTER VIEW VWIDB_DOCTYPES_DE
AS
select
TERM.TERM_VALUE as Doctype
FROM TBIDB_OBJECT_METADATA MD
INNER JOIN TBIDB_ATTRIBUTE T1 ON MD.ATTR_ID = T1.GUID
INNER JOIN TBIDB_LANGUAGE_TERM T2 ON MD.GUID = T2.[OBJECT_ID]
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON T2.TERM_ID = TERM.GUID
INNER JOIN TBIDB_LANGUAGE T4 ON T2.LANG_ID = T4.GUID
INNER JOIN TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
OBJ.ACTIVE = 1 AND
T1.TITLE = 'Doctype'
AND T4.LANG_CODE = 'de-DE'
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
GO
CREATE OR ALTER VIEW VWIDB_DOCTYPE_LANGUAGE AS
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
,LT.ADDED_WHEN
,LT.CHANGED_WHEN
FROM
TBIDB_LANGUAGE_TERM LT INNER JOIN TBIDB_LANGUAGE_TERM_TYPE LT_T ON LT.KIND_TYPE = LT_T.GUID
INNER JOIN TBIDB_DOCTYPE DT ON LT.OBJECT_ID = DT.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON LT.TERM_ID = TERM.GUID
INNER JOIN TBIDB_LANGUAGE LANG ON LT.LANG_ID = LANG.GUID
WHERE LT.KIND_TYPE = 2
GO
CREATE VIEW VWIDB_DOCTYPE_OBJECT_STORE AS
select
A.DOCTYPE_ID
,A.OBJECT_ST_ID
,C.TITLE AS SYS_TITLE
,B.Objectstore
,B.REL_PATH
,LTERM.Doctype
,LTERM.LANG_CODE
,LTERM.LANG_ID
From
TBIDB_DOCTYPE_OBJECT_STORE A INNER JOIN VWIDB_OBJECT_STORE B ON A.OBJECT_ST_ID = B.GUID
INNER JOIN TBIDB_DOCTYPE C ON A.DOCTYPE_ID = C.GUID
INNER JOIN VWIDB_DOCTYPE_LANGUAGE LTERM ON C.GUID = LTERM.Doctype_ID
GO
CREATE OR ALTER VIEW VWIDB_DOCTYPE_BUSINESS_ENTITY AS
select
A.GUID ID,
A.DOCTYPE_ID
,A.BE_ID
,B.TITLE as BusinessEntity
,C.TITLE AS SYS_TITLE
,LTERM.Doctype
,LTERM.LANG_CODE
,LTERM.LANG_ID
,A.ADDED_WHEN
,A.ADDED_WHO
,A.CHANGED_WHO
,A.CHANGED_WHEN
From
TBIDB_DOCTYPE_BE A INNER JOIN TBIDB_BUSINESS_ENTITY B ON A.BE_ID = B.GUID
INNER JOIN TBIDB_DOCTYPE C ON A.DOCTYPE_ID = C.GUID
INNER JOIN VWIDB_DOCTYPE_LANGUAGE LTERM ON C.GUID = LTERM.Doctype_ID
GO
CREATE OR ALTER VIEW VWIDB_DOC_STATES AS
SELECT
A.GUID ID
,A.MY_OBJECT_ID AS IDB_OBJ_ID
,C.LANG_ID
,LANG.LANG_CODE
,TERM.TERM_VALUE AS STATE_LANG
,A.ADDED_WHEN
FROM
TBIDB_MYOBJECT_STATES A INNER JOIN TBIDB_OBJ_STATES B ON A.STATE_ID = B.GUID
INNER JOIN TBIDB_LANGUAGE_TERM C ON B.GUID = C.OBJECT_ID
INNER JOIN TBIDB_LANGUAGE LANG ON C.LANG_ID = LANG.GUID
INNER JOIN TBIDB_TERM_VALUE_VARCHAR TERM ON C.TERM_ID = TERM.GUID
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<EFBFBD>ndert wer],
T.CHANGED_WHEN [Ge<EFBFBD>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
CREATE VIEW VWOBJECT_CHECKED_OUT AS
SELECT
CHK.GUID ID,
CHK.IDB_OBJ_ID,
CHK.CHECKED_OUT_WHEN,
CHK.CHECKED_IN_WHEN,
USR.EMAIL,
USR.NAME + ', ' + USR.PRENAME USR_NAME_PRENAME
FROM TBIDB_OBJECT_CHECK_IN_OUT CHK INNER JOIN DD_ECM.dbo.TBDD_USER USR ON CHK.ADDED_WHO = USR.USERNAME
GO
CREATE VIEW [dbo].[VWIDB_OBJECT]
AS
SELECT
OBJ.IDB_OBJ_ID,
dbo.TBIDB_OBJECT_BE.BE_ID,
dbo.TBIDB_OBJECT_KIND.GUID AS KIND_ID,
dbo.TBIDB_OBJECT_KIND.KIND_NAME,
dbo.TBIDB_BUSINESS_ENTITY.TITLE AS BE_NAME,
dbo.TBIDB_OBJECT_STORE.GUID AS STORE_ID,
dbo.TBIDB_OBJECT_STORE.OBJECT_TITLE AS STORE_NAME,
DT.Doctype_ID,
DT.SYS_TITLE as DoxtypeSysTitle
FROM
dbo.TBIDB_OBJECT OBJ INNER JOIN
dbo.TBIDB_OBJECT_BE ON OBJ.IDB_OBJ_ID = dbo.TBIDB_OBJECT_BE.IDB_OBJ_ID INNER JOIN
dbo.TBIDB_OBJECT_KIND ON OBJ.KIND_TYPE_ID = dbo.TBIDB_OBJECT_KIND.GUID INNER JOIN
dbo.TBIDB_FILE_OBJECT ON dbo.TBIDB_FILE_OBJECT.IDB_OBJ_ID = OBJ.IDB_OBJ_ID INNER JOIN
dbo.TBIDB_OBJECT_STORE ON dbo.TBIDB_OBJECT_STORE.GUID = dbo.TBIDB_FILE_OBJECT.OBJ_ST_ID INNER JOIN
dbo.TBIDB_BUSINESS_ENTITY ON dbo.TBIDB_OBJECT_BE.BE_ID = dbo.TBIDB_BUSINESS_ENTITY.GUID INNER JOIN
VWIDB_DOC_DOCTYPE DT ON OBJ.IDB_OBJ_ID = DT.IDB_OBJ_ID
GO
/*###########################################
############## PROCEDURES ###################
#############################################*/
--CREATE PROCEDURE [dbo].[PRIDB_NEW_IDB_OBJECT_STATE] @pSYSSTATE VARCHAR(512),@pWHO VARCHAR(100)
--AS
--BEGIN
-- DECLARE
-- @LANG_ID TINYINT,
-- @pLANG_CODE VARCHAR(5),
-- @STATE_ID INTEGER
-- DECLARE @WHO_TERM_ID BIGINT
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
-- DECLARE @STATE_TERM_ID BIGINT,@LANG_STATE_TERM_ID BIGINT
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pSYSSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT;
-- IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJ_STATES WHERE TITLE = @pSYSSTATE)
-- BEGIN
-- INSERT INTO TBIDB_OBJ_STATES (TITLE,ADDED_WHO) VALUES (@pSYSSTATE,@WHO_TERM_ID)
-- END
-- SELECT @STATE_ID = GUID FROM TBIDB_OBJ_STATES WHERE TITLE = @pSYSSTATE;
-- DECLARE c_PRIDB_NEW_IDB_OBJECT_STATE CURSOR FOR
-- select GUID,LANG_CODE FROM TBIDB_LANGUAGE
-- OPEN c_PRIDB_NEW_IDB_OBJECT_STATE
-- FETCH NEXT FROM c_PRIDB_NEW_IDB_OBJECT_STATE INTO @LANG_ID,@pLANG_CODE
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJ_STATES_LANGUAGE WHERE STATE_ID = @STATE_ID AND LANG_ID = @LANG_ID)
-- INSERT INTO TBIDB_OBJ_STATES_LANGUAGE (STATE_ID,LANG_ID,TERM_ID,ADDED_WHO) VALUES (@STATE_ID,@LANG_ID,@STATE_TERM_ID,@WHO_TERM_ID)
-- FETCH NEXT FROM c_PRIDB_NEW_IDB_OBJECT_STATE INTO @LANG_ID,@pLANG_CODE
-- END
-- CLOSE c_PRIDB_NEW_IDB_OBJECT_STATE
-- DEALLOCATE c_PRIDB_NEW_IDB_OBJECT_STATE
--END
--GO
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'File Versioned', 'SYSTEM';
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'File opened', 'SYSTEM';
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'File added', 'SYSTEM';
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'File changed', 'SYSTEM';
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'File deleted', 'SYSTEM';
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'Metadata changed', 'SYSTEM';
--EXEC PRIDB_NEW_IDB_OBJECT_STATE 'Attributevalue deleted', 'SYSTEM';
--GO
--CREATE PROCEDURE [dbo].[PRIDB_UPDATE_IDB_OBJECT_STATE] @pOLD_TERM VARCHAR(512), @pNEW_TERM VARCHAR(512),@pLANG_CODE VARCHAR(5),@pWHO VARCHAR(100)
--AS
--BEGIN
-- DECLARE
-- @LANG_ID TINYINT,
-- @STATE_ID INTEGER
-- DECLARE @WHO_TERM_ID BIGINT
-- SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE;
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
-- DECLARE @NEW_STATE_TERM_ID BIGINT,@OLD_STATE_TERM_ID BIGINT
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pNEW_TERM,@pWHO,@TERM_ID = @NEW_STATE_TERM_ID OUTPUT;
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pOLD_TERM,@pWHO,@TERM_ID = @OLD_STATE_TERM_ID OUTPUT;
-- UPDATE TBIDB_OBJ_STATES_LANGUAGE SET TERM_ID = @NEW_STATE_TERM_ID,CHANGED_WHO = @WHO_TERM_ID WHERE TERM_ID = @OLD_STATE_TERM_ID AND LANG_ID = @LANG_ID
-- AND TERM_ID <> @NEW_STATE_TERM_ID
--END
--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,
C.LANG_CODE,
E.TERM_VALUE ADDED_WHO,
A.ADDED_WHEN,
F.TERM_VALUE CHANGED_WHO,
B.CHANGED_WHEN
FROM
TBIDB_STATES A
INNER JOIN TBIDB_LANGUAGE_TERM B ON A.GUID = B.OBJECT_ID
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
-- Changed: 25.11.2021 @TERM_TYPE_ID = 6
-- Changed: 25.08.2020 @TERM_TYPE_ID = 7 AND UPPER(@TERM)
-- =============================================
CREATE PROCEDURE [dbo].[PRIDB_NEW_TERM] @MD_TYPE VARCHAR(100),@TERM VARCHAR(MAX), @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT
AS
BEGIN
DECLARE @TERM_TYPE_ID TINYINT
SELECT @TERM_TYPE_ID = GUID FROM TBIDB_ATTRIBUTE_TYPE WHERE UPPER(NAME_TYPE) = UPPER(@MD_TYPE)
IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'TRUE'
SET @TERM = 1
ELSE IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'FALSE'
SET @TERM = 0
--PRINT 'PRIDB_NEW_TERM: TERM_TYPE_ID IS: ' + CONVERT(VARCHAR(2),@TERM_TYPE_ID) + ' # TERM: ' + @TERM
IF @TERM_TYPE_ID IN (1,8) --VARCHAR
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_VARCHAR (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_VARCHAR
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM)
ELSE IF @TERM_TYPE_ID IN (2,7,9) --BIGINT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(BIGINT,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_INTEGER
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM)
ELSE IF @TERM_TYPE_ID = 3 --FLOAT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(FLOAT,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_FLOAT
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM)
ELSE IF @TERM_TYPE_ID = 4 --DECIMAL
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DECIMAL (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DECIMAL(19,0),@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DECIMAL
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM)
ELSE IF @TERM_TYPE_ID = 5 --DATE
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DATE (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATE,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATE
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
ELSE IF @TERM_TYPE_ID = 6 --DATETIME
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATETIME WHERE TERM_VALUE = CONVERT(DATETIME,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DATETIME (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATETIME,@TERM),@WHO);
SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATETIME
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
PRINT '### PRIDB_NEW_TERM: TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) + '###'
END
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_IDB_STATE] @pSTATE VARCHAR(512),@pWHO VARCHAR(100)
AS
BEGIN
DECLARE
@LANG_ID INTEGER,
@pLANG_CODE VARCHAR(5),
@STATE_ID INTEGER
DECLARE @STATE_TERM_ID BIGINT,@LANG_STATE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pSTATE,@pWHO,@TERM_ID = @STATE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_STATES WHERE TITLE = @pSTATE)
BEGIN
INSERT INTO TBIDB_STATES (TITLE,ADDED_WHO) VALUES (@pSTATE,@ADDED_WHO_TERM_ID);
END
SELECT @STATE_ID = GUID FROM TBIDB_STATES WHERE TITLE = @pSTATE;
DECLARE c_PRIDB_NEW_IDB_OBJECT_STATE CURSOR FOR
select GUID,LANG_CODE FROM TBIDB_LANGUAGE WHERE CREATE_DEFAULT_ENTRY = 1;
OPEN c_PRIDB_NEW_IDB_OBJECT_STATE
FETCH NEXT FROM c_PRIDB_NEW_IDB_OBJECT_STATE INTO @LANG_ID,@pLANG_CODE
WHILE @@FETCH_STATUS = 0
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_LANGUAGE_TERM WHERE [OBJECT_ID] = @STATE_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, @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
CLOSE c_PRIDB_NEW_IDB_OBJECT_STATE
DEALLOCATE c_PRIDB_NEW_IDB_OBJECT_STATE
END
GO
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,
@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_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;
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';
EXEC PRIDB_NEW_IDB_STATE 'Ended', 'SYSTEM';
EXEC PRIDB_NEW_IDB_STATE 'File Versioned','SYSTEM';
EXEC PRIDB_NEW_IDB_STATE 'File added', 'SYSTEM';
EXEC PRIDB_NEW_IDB_STATE 'File changed', 'SYSTEM';
EXEC PRIDB_NEW_IDB_STATE 'File deleted', 'SYSTEM';
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_NEW_IDB_STATE 'File Checked Out', 'SYSTEM';
EXEC PRIDB_NEW_IDB_STATE 'File Checked In', '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<67>ndert', 'de-DE', 'SYSTEM';
EXEC PRIDB_SET_IDB_STATE_LANG 'File deleted','Datei gel<65>scht', 'de-DE', 'SYSTEM';
EXEC PRIDB_SET_IDB_STATE_LANG 'Metadata changed','Attributwert ge<67>ndert', 'de-DE', 'SYSTEM';
EXEC PRIDB_SET_IDB_STATE_LANG 'Attributevalue deleted','Attributwert gel<65>scht', 'de-DE', 'SYSTEM';
EXEC PRIDB_SET_IDB_STATE_LANG 'File opened','Datei ge<67>ffnet', 'de-DE', 'SYSTEM';
EXEC PRIDB_SET_IDB_STATE_LANG 'File Checked Out','Datei ausgechecked', 'de-DE', 'SYSTEM';
EXEC PRIDB_SET_IDB_STATE_LANG 'File Checked In','Datei wieder eingecheckt', 'de-DE', 'SYSTEM';
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_DELETE_ATTRIBUTE_DATA] @IDB_OBJ_ID BIGINT, @ATTRIBUTE VARCHAR(100), @WHO VARCHAR(100)
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@ATTR_TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TEXT_TERM BIGINT,
@TERM_ID BIGINT,
@USER_DELETE_ID INTEGER,
@ERROR as BIT,
@LTERM_GUID BIGINT
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 @ATTR_ID = T.GUID,@ATTR_TYP_ID = T.TYP_ID FROM TBIDB_ATTRIBUTE T WHERE UPPER(T.TITLE) = UPPER(@ATTRIBUTE)
IF @ATTR_TYP_ID IN (1,8) --VARCHAR
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT LTERM.GUID, MD.IDB_OBJ_ID,LTERM.TERM_ID
FROM
TBIDB_OBJECT_METADATA MD INNER JOIN TBIDB_LANGUAGE_TERM LTERM ON MD.GUID = LTERM.[OBJECT_ID]
WHERE MD.ATTR_ID = @ATTR_ID AND MD.IDB_OBJ_ID = @IDB_OBJ_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @LTERM_GUID,@IDB_OBJ_ID,@TEXT_TERM
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,TEXT_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TEXT_TERM, @WHO,@USER_DELETE_ID);
FETCH NEXT FROM cursor_DeleteLog INTO @LTERM_GUID,@IDB_OBJ_ID,@TEXT_TERM
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE FROM TBIDB_LANGUAGE_TERM WHERE [OBJECT_ID] IN (SELECT GUID FROM TBIDB_OBJECT_METADATA
WHERE ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID);
DELETE FROM TBIDB_OBJECT_METADATA
WHERE ATTR_ID = @ATTR_ID AND IDB_OBJ_ID = @IDB_OBJ_ID;
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID IN (2,7,9) --BIGINT
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.INT_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,INT_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (INTEGER) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 3 --FLOAT
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.FLOAT_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,FLOAT_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (FLOAT) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 4 --DECIMAL
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.DEC_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,DEC_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (DECIMAL) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 5 --DATE
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.DATE_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,DATE_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID AND T.IDB_OBJ_ID = @IDB_OBJ_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (DATE) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
--IF @ERROR = 0
-- BEGIN
-- UPDATE TBIDB_ATTRIBUTE SET DELETED = 1, DELETED_WHO = @WHO WHERE GUID = @ATTR_ID;
-- END
END
GO
CREATE PROCEDURE [dbo].[PRIDB_OBJECT_SET_DELETED] @IDB_OBJECT BIGINT, @WHO VARCHAR(100)
AS
BEGIN
UPDATE TBIDB_OBJECT SET DELETED = 1,CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJECT
END
GO
CREATE PROCEDURE [dbo].[PRIDB_CHECK_DOCINFO] @IDB_OBJ_ID BIGINT, @OBJ_ST_ID INT, @REL_PATH VARCHAR(512),@WHO VARCHAR(100), @REF_DOCID BIGINT = 0, @BE VARCHAR(500) = '', @IDB_OBJ_ID_OUT 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 @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,'')
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 'PRIDB_NEW_DOCUMENT - @RELATIVE_PATH_ONLY: ' + @RELATIVE_PATH_ONLY
--PRINT '@EXT: ' + @EXT
IF EXISTS(SELECT GUID FROM TBIDB_DOC_INFO WHERE IDB_OBJ_ID = @IDB_OBJ_ID)
UPDATE [TBIDB_DOC_INFO] SET [OBJ_ST_ID] = @OBJ_ST_ID, [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
ELSE
BEGIN
INSERT INTO [dbo].[TBIDB_DOC_INFO]
([IDB_OBJ_ID]
,[OBJ_ST_ID]
,[FILENAME_EXT]
,[FILENAME_ONLY]
,EXTENSION_TERM
,[RELATIVE_PATH]
,RELATIVE_PATH_ONLY_TERM
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@OBJ_ST_ID
,@FILENAME_EXT
,@FILENAME_ONLY
,@EXTENSION_TERM
,@RELATIVE_PATH
,@RELATIVE_PATH_ONLY_TERM
,@WHO)
END
SET @IDB_OBJ_ID_OUT = @IDB_OBJ_ID
END
GO
ALTER PROCEDURE [dbo].[PRIDB_NEW_OBJ_DATA] @IDB_OBJ_ID BIGINT,@ATTRIBUTE VARCHAR(100),@WHO VARCHAR(100), @TERM_VAL VARCHAR(MAX),
@LANG_CODE VARCHAR(5) = 'de-DE', @FOREIGN_KEY BIGINT = 0, @OMD_ID BIGINT OUTPUT
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@LANG_ID INT,
@WHO_TERM_ID BIGINT,
@ATTR_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@WHO,@WHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
--PRINT 'GETTIN ATTR-TERMID...'
EXEC PRIDB_NEW_TERM 'VARCHAR',@ATTRIBUTE,@WHO,@TERM_ID = @ATTR_TERM_ID OUTPUT;
--PRINT '@FOREIGN_KEY: ' + CONVERT(VARCHAR(50),@FOREIGN_KEY)
IF @FOREIGN_KEY <> 0 AND @IDB_OBJ_ID <> @FOREIGN_KEY
BEGIN
IF NOT EXISTS(SELECT IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @FOREIGN_KEY)
BEGIN
PRINT 'FOUND NO IDB-OBJECT FOR REFERENCE KEY: ' + CONVERT(VARCHAR(50),@FOREIGN_KEY)
END
ELSE
BEGIN
SELECT @IDB_OBJ_ID = IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @FOREIGN_KEY
--Print 'PRIDB_NEW_OBJ_DATA: Checked the DocID as Reference: ' + Convert(Varchar(10),@IDB_OBJ_ID)
END
END
--IF NOT EXISTS(SELECT ATTR_ID FROM VWIDB_BE_ATTRIBUTE WHERE ATTR_TERM_ID = @ATTR_TERM_ID AND LANG_CODE = @LANG_CODE)
-- BEGIN
-- DECLARE @MSG VARCHAR(100)
-- SET @MSG = 'NO VALID ATTRIBUTE [' + @ATTRIBUTE + ']'
-- RAISERROR (@MSG,16,1)
-- END
SELECT @ATTR_ID = T.ATTR_ID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T.TYPE_NAME FROM VWIDB_BE_ATTRIBUTE T
WHERE ATTR_TERM_ID = @ATTR_TERM_ID AND LANG_CODE = @LANG_CODE
--PRINT 'ATTRIBUTID: ' + CONVERT(VARCHAR(10),@ATTR_ID)
IF LEN(@ATTR_ID) = 0
BEGIN
DECLARE @MSG VARCHAR(100)
SET @MSG = 'NO VALID ATTRIBUTE [' + @ATTRIBUTE + ']'
RAISERROR (@MSG,16,1)
END
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @LANG_CODE
DECLARE @MY_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM @TYP_DESCR,@TERM_VAL,@WHO,@TERM_ID = @MY_TERM_ID OUTPUT;
--PRINT 'PRIDB_NEW_OBJ_DATA: @TYP_ID is: ' + Convert(Varchar(10),@TYP_ID)
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
PRINT 'OBJ_METADATA_ENTRY NOT EXISTING...'
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@ATTR_ID
,@WHO);
END
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID
IF @TYP_ID = 1 --Single Varchar
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_LANGUAGE_TERM WHERE LANG_ID = @LANG_ID AND [OBJECT_ID] = @OMD_ID)
BEGIN
PRINT 'INSERT LANGUAGE-TERM...'
INSERT INTO TBIDB_LANGUAGE_TERM (KIND_TYPE, [OBJECT_ID],TERM_ID,LANG_ID,ADDED_WHO) VALUES(1, @OMD_ID,@MY_TERM_ID,@LANG_ID,@WHO_TERM_ID);
EXEC PRIDB_OBJECT_SUBSTRUCTURE_CHANGED @IDB_OBJ_ID,@WHO;
END
ELSE
BEGIN
PRINT 'UPDATE LANGUAGE-TERM...'
DECLARE @OLD_TERM_ID BIGINT
SELECT @OLD_TERM_ID = TERM_ID FROM TBIDB_LANGUAGE_TERM WHERE LANG_ID = @LANG_ID AND [OBJECT_ID] = @OMD_ID;
IF @OLD_TERM_ID <> @MY_TERM_ID
BEGIN
UPDATE TBIDB_LANGUAGE_TERM SET ADDED_WHO = @WHO_TERM_ID, TERM_ID = @MY_TERM_ID WHERE [OBJECT_ID] = @OMD_ID AND LANG_ID = @LANG_ID;
EXEC PRIDB_OBJECT_SUBSTRUCTURE_CHANGED @IDB_OBJ_ID,@WHO;
INSERT INTO TBIDB_OBJECT_METADATA_CHANGE (
IDB_OBJ_ID, ATTR_ID, OLD_TEXT_TERM, NEW_TEXT_TERM, CHANGED_WHO) VALUES (
@IDB_OBJ_ID,@ATTR_ID, @OLD_TERM_ID, @MY_TERM_ID, @WHO);
END
END
END
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[INT_TERM_ID]
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@ATTR_ID
,@MY_TERM_ID
,@WHO)
END
ELSE
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [INT_TERM_ID] <> @MY_TERM_ID)
UPDATE TBIDB_OBJECT_METADATA SET [INT_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 INT_TERM_ID = @MY_TERM_ID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[FLOAT_TERM_ID]
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@ATTR_ID
,@MY_TERM_ID
,@WHO)
END
ELSE
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND [FLOAT_TERM_ID] <> @MY_TERM_ID)
UPDATE TBIDB_OBJECT_METADATA SET [FLOAT_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 FLOAT_TERM_ID = @MY_TERM_ID
END
ELSE IF @TYP_ID = 4 --DECIMAL
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[DEC_TERM_ID]
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@ATTR_ID
,@MY_TERM_ID
,@WHO)
END
ELSE
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DEC_TERM_ID <> @MY_TERM_ID)
UPDATE TBIDB_OBJECT_METADATA SET [DEC_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 DEC_TERM_ID = @MY_TERM_ID
END
ELSE IF @TYP_ID = 5 --DATE
BEGIN
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[DATE_TERM_ID]
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@ATTR_ID
,@MY_TERM_ID
,@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;
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
IF NOT EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[DATETIME_TERM_ID]
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@ATTR_ID
,@MY_TERM_ID
,@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;
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'
AS
DECLARE
@ATTR_ID INT,
@TITLE VARCHAR(100),
@TYPID INT,
@SQL1 NVARCHAR(MAX),
@Date Varchar(20),
@Bool4 Varchar(1),
@Integer24 Varchar(20),
@Float Varchar(20),
@RELPATH Varchar(200),
@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)
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
FROM VWIDB_BE_ATTRIBUTE WHERE VIEW_VISIBLE = 1 AND LANG_CODE = @pLANGCODE AND ATTR_ID IS NOT NULL
ORDER BY VIEW_SEQUENCE
OPEN c_PRIDB_CREATE_VIEW_DOC_DATA
FETCH NEXT FROM c_PRIDB_CREATE_VIEW_DOC_DATA INTO @ATTR_ID,@TITLE,@TYPID,@SEQUENCE
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @FN_COMMAND as VARCHAR(100), @FN_TYP as VARCHAR(50)
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
SET @FN_TYP = 'INTEGER'
ELSE IF @TYPID = 3
SET @FN_TYP = 'FLOAT'
ELSE IF @TYPID = 4
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
SET @FN_TYP = 'TEXT_VECTOR'
ELSE IF @TYPID = 8
SET @FN_TYP = 'INTEGER_VECTOR'
SET @FN_COMMAND = REPLACE(@FN_COMMAND,'@TYPE',@FN_TYP)
--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
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_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) + '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
DECLARE @DELETE NVARCHAR(100)
SET @DELETE = 'DROP VIEW [dbo].[' + @NAME_VIEW + UPPER(LEFT(@pLANGCODE,2)) + ']'
EXEC sp_executesql @DELETE
END
EXEC sp_executesql @SQL1
END
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
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@LANG_ID INT
--IF @ID_ISFOREIGN = 1
-- BEGIN
-- SELECT @IDB_OBJ_ID = IDB_OBJ_ID FROM TBIDB_OBJECT WHERE REFERENCE_KEY = @IDB_OBJ_ID
-- END
SELECT @ATTR_ID = T.GUID, @TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND UPPER(T.TITLE) = UPPER(@ATTRIBUTE)
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @LANG_CODE
DECLARE @MY_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM @TYP_DESCR,@TERM,'',@TERM_ID = @MY_TERM_ID OUTPUT;
PRINT '@MY_TERM_ID: ' + CONVERT(VARCHAR(10),@MY_TERM_ID)
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
PRINT 'Attribute is varchar...'
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID)
BEGIN
DELETE FROM TBIDB_LANGUAGE_TERM WHERE [OBJECT_ID] = (SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID);
DELETE FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID;
PRINT 'PRIDB_DEL_TERM_OBJECT_METADATA: DELETED TEXT ROW!'
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,TEXT_TERM_ID,DELETED_WHO, ADDED_WHO,ADDED_WHEN)
SELECT @IDB_OBJ_ID,@ATTR_ID, @MY_TERM_ID,@WHO,ADDED_WHO,ADDED_WHEN FROM TBIDB_OBJECT_METADATA
WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID;
END
ELSE
PRINT 'TERM SEEMS NOT TO EXIST'
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND INT_TERM_ID = @MY_TERM_ID)
BEGIN
DELETE FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND INT_TERM_ID = @MY_TERM_ID
PRINT 'PRIDB_DEL_TERM_OBJECT_METADATA: DELETED INTEGER ROW!'
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,INT_TERM_ID,DELETED_WHO, ADDED_WHO,ADDED_WHEN)
SELECT @IDB_OBJ_ID,@ATTR_ID, @MY_TERM_ID,@WHO,ADDED_WHO,ADDED_WHEN FROM TBIDB_OBJECT_METADATA
WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND INT_TERM_ID = @MY_TERM_ID
END
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND FLOAT_TERM_ID = @MY_TERM_ID)
BEGIN
DELETE FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND FLOAT_TERM_ID = @MY_TERM_ID
PRINT 'PRIDB_DEL_TERM_OBJECT_METADATA: DELETED FLOAT ROW!'
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,FLOAT_TERM_ID,DELETED_WHO, ADDED_WHO,ADDED_WHEN)
SELECT @IDB_OBJ_ID,@ATTR_ID, @MY_TERM_ID,@WHO,ADDED_WHO,ADDED_WHEN FROM TBIDB_OBJECT_METADATA
WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND FLOAT_TERM_ID = @MY_TERM_ID
END
END
ELSE IF @TYP_ID = 4 --DECIMAL
BEGIN
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DEC_TERM_ID = @MY_TERM_ID)
BEGIN
DELETE FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DEC_TERM_ID = @MY_TERM_ID
PRINT 'PRIDB_DEL_TERM_OBJECT_METADATA: DELETED DECIMAL ROW!'
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,DEC_TERM_ID,DELETED_WHO, ADDED_WHO,ADDED_WHEN)
SELECT @IDB_OBJ_ID,@ATTR_ID, @MY_TERM_ID,@WHO,ADDED_WHO,ADDED_WHEN FROM TBIDB_OBJECT_METADATA
WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DEC_TERM_ID = @MY_TERM_ID
END
END
ELSE IF @TYP_ID = 5 --DATE
BEGIN
IF EXISTS(SELECT GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID)
BEGIN
DELETE FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID
PRINT 'PRIDB_DEL_TERM_OBJECT_METADATA: DELETED DATE ROW!'
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,DATE_TERM_ID,DELETED_WHO, ADDED_WHO,ADDED_WHEN)
SELECT @IDB_OBJ_ID,@ATTR_ID, @MY_TERM_ID,@WHO,ADDED_WHO,ADDED_WHEN FROM TBIDB_OBJECT_METADATA
WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID AND DATE_TERM_ID = @MY_TERM_ID
END
END
END
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_DELETE_ATTRIBUTE] @ATTR_ID INTEGER, @WHO VARCHAR(100)
AS
BEGIN
DECLARE
@ATTR_TYP_ID TINYINT,
@ATTRIBUTE VARCHAR(100),
@IDB_OBJ_ID BIGINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TERM_ID BIGINT,
@USER_DELETE_ID INTEGER,
@ERROR as BIT
SET @ERROR = 0
SELECT @USER_DELETE_ID = GUID FROM DD_ECM.dbo.TBDD_USER WHERE USERNAME = @WHO
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
DECLARE @OMD_ID BIGINT
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT MD.IDB_OBJ_ID, MD.GUID,TT.TERM_ID FROM TBIDB_OBJECT_METADATA MD INNER JOIN TBIDB_LANGUAGE_TERM TT ON MD.GUID = TT.[OBJECT_ID]
WHERE MD.ATTR_ID = @ATTR_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@OMD_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,TEXT_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID);
DELETE FROM TBIDB_LANGUAGE_TERM WHERE [OBJECT_ID] = @OMD_ID;
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@OMD_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE
FROM TBIDB_OBJECT_METADATA
WHERE ATTR_ID = @ATTR_ID;
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID IN (2,7,9) --BIGINT
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.INT_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,INT_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (INTEGER) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 3 --FLOAT
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.FLOAT_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,FLOAT_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (FLOAT) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 4 --DECIMAL
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.DEC_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,DEC_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (DECIMAL) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 5 --DATE
BEGIN TRY
DECLARE cursor_DeleteLog CURSOR LOCAL FOR
SELECT T.IDB_OBJ_ID,T.DATE_TERM_ID FROM TBIDB_OBJECT_METADATA T WHERE T.ATTR_ID = @ATTR_ID
OPEN cursor_DeleteLog
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO TBIDB_OBJECT_METADATA_DELETE (IDB_OBJ_ID,ATTR_ID,DATE_TERM_ID,DELETED_WHO,USER_DELETE_ID)
VALUES (@IDB_OBJ_ID,@ATTR_ID, @TERM_ID, @WHO,@USER_DELETE_ID)
FETCH NEXT FROM cursor_DeleteLog INTO @IDB_OBJ_ID,@TERM_ID
END
CLOSE cursor_DeleteLog
DEALLOCATE cursor_DeleteLog
DELETE T
FROM TBIDB_OBJECT_METADATA T
WHERE T.ATTR_ID = @ATTR_ID
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (DATE) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
DELETE FROM TBIDB_OBJECT_METADATA_DELETE WHERE USER_DELETE_ID = @USER_DELETE_ID
SET @ERROR = 1
END CATCH
IF @ERROR = 0
BEGIN
UPDATE TBIDB_ATTRIBUTE SET DELETED = 1, DELETED_WHO = @WHO WHERE GUID = @ATTR_ID;
END
END
GO
--delete from TBIDB_CONVERSATION_OBJECT
CREATE PROCEDURE [dbo].[PRIDB_NEW_CONVERSATION] @pIDB_OBJ_ID BIGINT, @pTITLE VARCHAR(512),@pWHO VARCHAR(100),@pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
DECLARE @TITLE_TERM_ID BIGINT,@LANG_TITLE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pTITLE,@pWHO,@TERM_ID = @TITLE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_OBJECT WHERE IDB_OBJ_ID = @pIDB_OBJ_ID AND TITLE_TERM_ID = @LANG_TITLE_TERM_ID)
INSERT INTO TBIDB_CONVERSATION_OBJECT (TITLE_TERM_ID,IDB_OBJ_ID,ADDED_WHO) VALUES (@LANG_TITLE_TERM_ID,@pIDB_OBJ_ID,@ADDED_WHO_TERM_ID)
DECLARE @STARTED_STATE BIGINT
SELECT @STARTED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.TITLE,'de-DE') = 'Started'
DECLARE @CONVERSATION_ID BIGINT
SELECT @CONVERSATION_ID = GUID FROM TBIDB_CONVERSATION_OBJECT WHERE TITLE_TERM_ID = @LANG_TITLE_TERM_ID AND IDB_OBJ_ID = @pIDB_OBJ_ID
IF NOT EXISTS(SELECT GUID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @CONVERSATION_ID AND STATE_ID = @STARTED_STATE)
INSERT INTO TBIDB_MYOBJECT_STATES (MY_OBJECT_ID,STATE_ID,ADDED_WHO) VALUES (@CONVERSATION_ID,@STARTED_STATE,@ADDED_WHO_TERM_ID)
END
GO
CREATE OR ALTER PROCEDURE dbo.PRIDB_OBJECT_SET_STATE @pOBJECT_ID BIGINT, @pSTATE VARCHAR(512),@pWHO VARCHAR(100)
AS
BEGIN
DECLARE
@STATE_ID INTEGER
SELECT @STATE_ID = GUID FROM TBIDB_STATES WHERE TITLE = @pSTATE
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @pOBJECT_ID AND STATE_ID = @STATE_ID AND DATEDIFF(SECOND,ADDED_WHEN,GETDATE()) <= 1)
INSERT INTO TBIDB_MYOBJECT_STATES (MY_OBJECT_ID,STATE_ID,ADDED_WHO) VALUES (@pOBJECT_ID,@STATE_ID,@ADDED_WHO_TERM_ID)
--ELSE
-- PRINT 'ALREADY WRITTEN IN THIS SECOND'
END
GO
CREATE PROCEDURE [dbo].[PRIDB_END_CONVERSATION] @pCONVID BIGINT, @pWHO VARCHAR(100), @pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
,@ENDED_STATE BIGINT
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
SELECT @ENDED_STATE = GUID FROM TBIDB_STATES T WHERE dbo.[FNIDB_GET_TERM_FOR_LANG_TERM_ID] (T.TITLE,'de-DE') = 'Ended'
DECLARE @WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT MY_OBJECT_ID FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @pCONVID AND STATE_ID = @ENDED_STATE)
INSERT INTO TBIDB_MYOBJECT_STATES (
MY_OBJECT_ID
,STATE_ID
,ADDED_WHO) VALUES (
@pCONVID
,@ENDED_STATE
,@WHO_TERM_ID)
END
GO
CREATE PROCEDURE [dbo].[PRIDB_ADD_USER_2_CONVERSATION] @pCONV_ID BIGINT, @pUSERID INTEGER,@pWHO VARCHAR(100)
AS
BEGIN
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_USER WHERE CONV_ID = @pCONV_ID AND USER_OR_GROUP_ID = @pUSERID AND IS_USER = 1)
INSERT INTO TBIDB_CONVERSATION_USER (CONV_ID,USER_OR_GROUP_ID,IS_USER,ADDED_WHO) VALUES (@pCONV_ID,@pUSERID,1,@ADDED_WHO_TERM_ID)
END
GO
CREATE PROCEDURE [dbo].[PRIDB_NEW_CONVERSATION_MESSAGE] @pCONV_ID BIGINT, @pMESSAGE VARCHAR(100), @pWHO VARCHAR(100),@pTO_USER INTEGER = 0, @pLANG_CODE VARCHAR(5) = 'de-DE'
AS
BEGIN
DECLARE
@LANG_ID INTEGER
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @pLANG_CODE
DECLARE @MESSAGE_TERM_ID BIGINT,@LANG_MESSAGE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pMESSAGE,@pWHO,@TERM_ID = @MESSAGE_TERM_ID OUTPUT;
DECLARE @ADDED_WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @ADDED_WHO_TERM_ID OUTPUT;
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MESSAGE_TERM_ID)
INSERT INTO TBIDB_TERM_LANGUAGE (LANGUAGE_ID,TEXT_TERM_ID,ADDED_WHO) VALUES (@LANG_ID,@MESSAGE_TERM_ID,@pWHO)
SELECT @LANG_MESSAGE_TERM_ID = MAX(GUID) FROM TBIDB_TERM_LANGUAGE WHERE LANGUAGE_ID = @LANG_ID AND TEXT_TERM_ID = @MESSAGE_TERM_ID
--IF NOT EXISTS(SELECT GUID FROM TBIDB_CONVERSATION_MESSAGE WHERE CONV_ID = @pCONV_ID AND FROM_USER = FROM_USER AND MESSAGE_TERM_ID = @LANG_MESSAGE_TERM_ID)
INSERT INTO TBIDB_CONVERSATION_MESSAGE (CONV_ID,FROM_USER,TO_USER, MESSAGE_TERM_ID, ADDED_WHO) VALUES (@pCONV_ID,@ADDED_WHO_TERM_ID,@pTO_USER, @LANG_MESSAGE_TERM_ID,@ADDED_WHO_TERM_ID)
END
GO
CREATE PROCEDURE PRIDB_GET_VALUE_TYPE @pVALUE VARCHAR(900)--,@oType VARCHAR(10) OUTPUT
AS
BEGIN
declare @TBTYPE_RESULT table(pTYPE varchar(10))
DECLARE @oTYPE as Varchar(10)
SET @oType = 'NONE'
DECLARE @BIGINT as BIGINT, @FLOAT FLOAT,@DECIMAL DECIMAL(19,2),@DATE DATE
BEGIN TRY
SET @BIGINT = CONVERT(bigint,@pVALUE)
SET @oType = 'BIGINT'
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
END TRY
BEGIN CATCH
PRINT 'NO BIGINT'
END CATCH
--IF @oType = 'NONE'
BEGIN TRY
SET @FLOAT = CONVERT(FLOAT,@pVALUE)
SET @oType = 'FLOAT'
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
END TRY
BEGIN CATCH
PRINT 'NO FLOAT'
END CATCH
--IF @oType = 'NONE'
BEGIN TRY
SET @DECIMAL = CONVERT(DECIMAL(19,2),@pVALUE)
SET @oType = 'DECIMAL'
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
END TRY
BEGIN CATCH
PRINT 'NO DECIMAL'
END CATCH
--IF @oType = 'NONE'
BEGIN TRY
SET @DATE = CONVERT(DATE,@pVALUE)
SET @oType = 'DATE'
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
END TRY
BEGIN CATCH
PRINT 'NO DATE'
END CATCH
--IF @oType = 'NONE'
BEGIN TRY
SET @oType = 'VARCHAR'
INSERT INTO @TBTYPE_RESULT (pTYPE) VALUES (@oType)
END TRY
BEGIN CATCH
PRINT 'NO VARCHAR'
END CATCH
PRINT '@TYPE: ' + @oType
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
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 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 @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;
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 COMMENT = @pCOMMENT
DECLARE @VIEW_LANG VARCHAR(50)
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,@WHO_TERM_ID,@SEQUENCE
SET @SEQUENCE += 1
FETCH NEXT FROM cursorDefaultAttributes INTO @ATTR_ID
END
CLOSE cursorDefaultAttributes
DEALLOCATE cursorDefaultAttributes
END
GO
--CREATE PROCEDURE [dbo].[PRIDB_NEW_SEARCH_SQL_RESULT] @SEARCH_ID INT,@pWHO_TERMID BIGINT
--AS
--BEGIN
-- DECLARE
-- @LANG_ID TINYINT,
-- @SQL_RESULT VARCHAR(912),
-- @WHO_TERM VARCHAR(100),
-- @MY_RESULT_SQL_TERM_ID BIGINT
-- SELECT @WHO_TERM = TERM_VALUE FROM TBIDB_TERM_VALUE_VARCHAR WHERE GUID = @pWHO_TERMID
-- DECLARE cursorLang CURSOR FOR
-- select GUID from TBIDB_LANGUAGE WHERE CREATE_DEFAULT_ENTRY = 1
-- OPEN cursorLang
-- FETCH NEXT FROM cursorLang INTO @LANG_ID
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- 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'
-- DECLARE @ATTR_TITLE VARCHAR(100)
-- DECLARE cursorSRA CURSOR FOR
-- SELECT T3.TERM_VALUE
-- FROM TBIDB_SEARCH_RESULT_ATTRIBUTES T INNER JOIN TBIDB_ATTRIBUTE T1 ON T.ATTRIBUTE_ID = T1.GUID
-- INNER JOIN TBIDB_ATTRIBUTE_LANGUAGE T2 ON T1.GUID = T2.ATTRIBUTE_ID
-- INNER JOIN TBIDB_TERM_VALUE_VARCHAR T3 ON T2.TERM_ID = T3.GUID
-- WHERE T.SEARCH_PROFIL_ID = @SEARCH_ID --@SEARCH_ID
-- AND T2.LANGUAGE_ID = @LANG_ID
-- ORDER BY T.SEQUENCE
-- OPEN cursorSRA
-- FETCH NEXT FROM cursorSRA INTO @ATTR_TITLE
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- SET @SQL_RESULT += ', T.[' + @ATTR_TITLE + ']'
-- FETCH NEXT FROM cursorSRA INTO @ATTR_TITLE
-- END
-- CLOSE cursorSRA
-- DEALLOCATE cursorSRA
-- SET @SQL_RESULT += ' FROM VWIDB_DOC_DATA T INNER JOIN [dbo].[FNIDB_SEARCH_RESULT_GET_OBJECTS] (@UserID,@SearchID) T1 ON T.IDB_OBJ_ID = T1.IDB_OBJ_ID '
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@SQL_RESULT,@WHO_TERM,@TERM_ID = @MY_RESULT_SQL_TERM_ID OUTPUT;
-- PRINT @SQL_RESULT
-- IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_LANGUAGE_SQL_RESULT WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND LANGUAGE_ID = @LANG_ID)
-- INSERT INTO TBIDB_SEARCH_LANGUAGE_SQL_RESULT (SEARCH_PROFIL_ID,LANGUAGE_ID,SEARCH_TERM_ID,ADDED_WHO) VALUES
-- (@SEARCH_ID,@LANG_ID,@MY_RESULT_SQL_TERM_ID,@pWHO_TERMID)
-- ELSE
-- UPDATE TBIDB_SEARCH_LANGUAGE_SQL_RESULT SET SEARCH_TERM_ID = @MY_RESULT_SQL_TERM_ID,CHANGED_WHO = @pWHO_TERMID WHERE SEARCH_PROFIL_ID = @SEARCH_ID AND LANGUAGE_ID = @LANG_ID
-- FETCH NEXT FROM cursorLang INTO @LANG_ID
-- END
-- CLOSE cursorLang
-- DEALLOCATE cursorLang
--END
--GO
--CREATE PROCEDURE [dbo].[PRIDB_NEW_RELATION_SEARCH_USER] @pSEARCHID INTEGER,@pUSER_ID INTEGER,@pWHO_TERM_ID BIGINT
--AS
--BEGIN
-- IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_USER WHERE USER_ID = @pUSER_ID AND SEARCH_PROFIL_ID = @pSEARCHID)
-- INSERT INTO TBIDB_SEARCH_PROFILE_USER (USER_ID,ADDED_WHO,SEARCH_PROFIL_ID) VALUES (@pUSER_ID,@pWHO_TERM_ID,@pSEARCHID)
-- SELECT
-- GUID,USER_ID,SEARCH_PROFIL_ID
-- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (ADDED_WHO) AS ADDED_WHO
-- ,ADDED_WHEN
-- FROM TBIDB_SEARCH_PROFILE_USER
-- WHERE SEARCH_PROFIL_ID = @pSEARCHID
--END
--GO
--CREATE PROCEDURE [dbo].[PRIDB_NEW_RELATION_SEARCH_GROUP] @pSEARCHID INTEGER,@pGROUP_ID INTEGER,@pWHO_TERM_ID BIGINT
--AS
--BEGIN
-- IF NOT EXISTS(SELECT GUID FROM TBIDB_SEARCH_PROFILE_GROUP WHERE GROUP_ID = @pGROUP_ID AND SEARCH_PROFIL_ID = @pSEARCHID)
-- INSERT INTO TBIDB_SEARCH_PROFILE_GROUP (GROUP_ID,ADDED_WHO,SEARCH_PROFIL_ID) VALUES (@pGROUP_ID,@pWHO_TERM_ID,@pSEARCHID)
-- SELECT
-- GUID,GROUP_ID,SEARCH_PROFIL_ID
-- ,[dbo].[FNIDB_GET_TERM_FOR_TERM_ID] (ADDED_WHO) AS ADDED_WHO
-- ,ADDED_WHEN
-- FROM TBIDB_SEARCH_PROFILE_GROUP
-- WHERE SEARCH_PROFIL_ID = @pSEARCHID
--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 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
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
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
-- =============================================
CREATE PROCEDURE [dbo].[PRIDB_NEW_TERM_FOR_ATTRIBUTE] @ATTRIBUTE VARCHAR(100),@TERM VARCHAR(MAX), @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT
AS
BEGIN
DECLARE @TERM_TYPE_ID TINYINT
SELECT @TERM_TYPE_ID = TYP_ID FROM TBIDB_ATTRIBUTE WHERE UPPER(TITLE) = UPPER(@ATTRIBUTE)
IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'TRUE'
SET @TERM = 1
ELSE IF @TERM_TYPE_ID = 7 AND UPPER(@TERM) = 'FALSE'
SET @TERM = 0
--PRINT 'PRIDB_NEW_TERM: TERM_TYPE_ID IS: ' + CONVERT(VARCHAR(2),@TERM_TYPE_ID) + ' # TERM: ' + @TERM
IF @TERM_TYPE_ID IN (1,8) --VARCHAR
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_VARCHAR (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO)
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_VARCHAR where TERM_VALUE = @TERM
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_VARCHAR WHERE UPPER(TERM_VALUE) = UPPER(@TERM)
ELSE IF @TERM_TYPE_ID IN (2,7,9) --BIGINT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(BIGINT,@TERM),@WHO)
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_INTEGER where TERM_VALUE = @TERM
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM)
ELSE IF @TERM_TYPE_ID = 3 --FLOAT
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(FLOAT,@TERM),@WHO)
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_FLOAT where TERM_VALUE = @TERM
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM)
ELSE IF @TERM_TYPE_ID = 4 --DECIMAL
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DECIMAL (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DECIMAL(19,0),@TERM),@WHO)
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_DECIMAL where TERM_VALUE = @TERM
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM)
ELSE IF @TERM_TYPE_ID = 5 --DATE
IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM))
BEGIN
INSERT INTO TBIDB_TERM_VALUE_DATE (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATE,@TERM),@WHO)
SELECT @TERM_ID =GUID FROM TBIDB_TERM_VALUE_DATE where TERM_VALUE = @TERM
END
ELSE
SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)
PRINT '### PRIDB_NEW_TERM: TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) + '###'
END
GO
--CREATE PROCEDURE [dbo].[PRIDB_NEW_USER_SEARCH_CRITERIA] @pSEARCHID INTEGER,@pUSER_ID INTEGER,@pATTRIBUTE_ID INTEGER,@pTERM VARCHAR(900), @pWHO VARCHAR(100)
--AS
--BEGIN
-- DECLARE @WHO_TERM_ID BIGINT,@ATTR_TYPE INT, @ATTR_TERM_ID BIGINT,@ATTRIBUTE VARCHAR(100)
-- SELECT @ATTR_TYPE = TYP_ID,@ATTRIBUTE = TITLE FROM TBIDB_ATTRIBUTE WHERE GUID = @pATTRIBUTE_ID
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
-- EXEC PRIDB_NEW_TERM_FOR_ATTRIBUTE @ATTRIBUTE,@pTERM,@pWHO,@TERM_ID = @ATTR_TERM_ID OUTPUT;
---- GUID NAME_TYPE
----3 FLOAT
----4 DECIMAL
----5 DATE
----6 DATETIME
----9 VECTOR INTEGER
-- INSERT INTO TBIDB_USER_SEARCH_CRITERIA (SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, ADDED_WHO, TERM_TEXT, TERM_ID) VALUES
-- (@pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, @WHO_TERM_ID, @pTERM, @ATTR_TERM_ID)
-- /*IF @ATTR_TYPE IN (1,2,7,8)
-- BEGIN
-- INSERT INTO TBIDB_USER_SEARCH_CRITERIA ( SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, TERM_TEXT, ADDED_WHO,TERM_ID) VALUES
-- ( @pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, @pTERM, @WHO_TERM_ID,@ATTR_TERM_ID)
-- END
-- ELSE IF @ATTR_TYPE = 5
-- INSERT INTO TBIDB_USER_SEARCH_CRITERIA ( SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, TERM_DATE, ADDED_WHO,TERM_ID) VALUES
-- ( @pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, Convert(Date,@pTERM), @WHO_TERM_ID,@ATTR_TERM_ID)
-- ELSE IF @ATTR_TYPE = 3
-- INSERT INTO TBIDB_USER_SEARCH_CRITERIA ( SEARCH_PROFIL_ID, USERID, ATTRIBUTE_ID, TERM_FLOAT, ADDED_WHO,TERM_ID) VALUES
-- ( @pSEARCHID, @pUSER_ID, @pATTRIBUTE_ID, Convert(float,@pTERM), @WHO_TERM_ID,@ATTR_TERM_ID)
--*/
--END
--GO
--CREATE PROCEDURE [dbo].[PRIDB_SEARCH_CRITERIA_SAVE] @pSEARCHID INTEGER,@pUserID INT, @pWHO VARCHAR(100)
--AS
--BEGIN
-- DECLARE @WHO_TERM_ID BIGINT
-- EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
-- DELETE FROM TBIDB_SEARCH_CRITERIA_SAVE WHERE SEARCH_PROFIL_ID = @pSEARCHID
-- INSERT INTO [dbo].[TBIDB_SEARCH_CRITERIA_SAVE]
-- ([SEARCH_PROFIL_ID]
-- ,[ATTRIBUTE_ID]
-- ,[TERM_TEXT]
-- ,TERM_ID
-- --,[TERM_DATE]
-- --,[TERM_FLOAT]
-- --,[TERM_DEC]
-- ,[ADDED_WHO])
-- SELECT [SEARCH_PROFIL_ID]
-- ,[ATTRIBUTE_ID]
-- ,[TERM_TEXT]
-- ,TERM_ID
-- --,[TERM_DATE]
-- --,[TERM_FLOAT]
-- --,[TERM_DEC]
-- ,@WHO_TERM_ID FROM TBIDB_USER_SEARCH_CRITERIA WHERE USERID = @pUserID AND SEARCH_PROFIL_ID = @pSEARCHID
--END
--GO
CREATE OR 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 KIND_NAME = @KIND_TYPE;
IF @FOREIGN_REFID <> 0
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],[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;
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 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
@FILENAME_EXT VARCHAR(250),
@RELATIVE_PATH VARCHAR(512)
--PRINT @FILENAME_ONLY
--PRINT @REL_PATH
--PRINT 'PRIDB_NEW_IDBFO - @RELATIVE_PATH_ONLY1: ' + @RELATIVE_PATH_ONLY
DECLARE @RELPATH_TERM_ID BIGINT,@EXTENSION_TERM_ID BIGINT,@FILENAME_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@REL_PATH,@WHO,@TERM_ID = @RELPATH_TERM_ID OUTPUT;
EXEC PRIDB_NEW_TERM 'VARCHAR',@FILE_EXT,@WHO,@TERM_ID = @EXTENSION_TERM_ID OUTPUT;
EXEC PRIDB_NEW_TERM 'VARCHAR',@FILE_NAME,@WHO,@TERM_ID = @FILENAME_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
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]
([IDB_OBJ_ID]
,[OBJ_ST_ID]
,EXTENSION_TERM_ID
,RELPATH_TERM_ID
,FILENAME_TERM_ID
,FILE_SIZE
,FILE_HASH
,[ADDED_WHO])
VALUES
(@IDB_OBJ_ID
,@OBJ_ST_ID
,@EXTENSION_TERM_ID
,@RELPATH_TERM_ID
,@FILENAME_TERM_ID
,@FILE_SIZE
,@FILE_HASH
,@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
,FILENAME_TERM_ID = @FILENAME_TERM_ID
,FILE_SIZE = @FILE_SIZE
,FILE_HASH = @FILE_HASH
,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
-- =============================================
-- Author: DD MS
-- Creation date: 05.07.2021
-- =============================================
CREATE PROCEDURE [dbo].[PRIDB_GET_VALUE_DT] @IDB_OBJ_ID BIGINT, @LANG_CODE VARCHAR(5)
AS
DECLARE @ATTR_ID INTEGER,@ATTR_TITLE VARCHAR(100), @TYPE_NAME VARCHAR(100)
DECLARE
@TBRESULT TABLE (AttributID INT, AttributTitle VARCHAR(100), AttributType VARCHAR(100),ValueBigInt BIGINT, ValueText Varchar(912), ValueDec Decimal(19,2), ValueDate Date,
ADDED_WHEN DATETIME, CHANGED_WHEN DATETIME)
DECLARE cursorAttributes CURSOR LOCAL FOR
SELECT A.ATTR_ID, B.ATTR_TITLE, B.TYPE_NAME FROM TBIDB_OBJECT_METADATA A INNER JOIN VWIDB_BE_ATTRIBUTE B On A.ATTR_ID = B.ATTR_ID
WHERE A.IDB_OBJ_ID = @IDB_OBJ_ID AND B.LANG_CODE = @LANG_CODE
OPEN cursorAttributes
FETCH NEXT FROM cursorAttributes INTO @ATTR_ID,@ATTR_TITLE,@TYPE_NAME
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT CONVERT(VARCHAR(2),@ATTR_ID) + '#' + @TYPE_NAME + '#' + @ATTR_TITLE
IF @TYPE_NAME IN ('VARCHAR','VECTOR STRING')
INSERT INTO @TBRESULT (AttributID,AttributTitle,AttributType,ValueText,ADDED_WHEN,CHANGED_WHEN)
select
@ATTR_ID,@ATTR_TITLE,@TYPE_NAME,[dbo].[FNIDB_GET_TERM_TEXT] (@IDB_OBJ_ID,@ATTR_ID),T.ADDED_WHEN,T.CHANGED_WHEN
from
TBIDB_OBJECT_METADATA T
WHERE T.IDB_OBJ_ID = @IDB_OBJ_ID AND T.ATTR_ID = @ATTR_ID
ELSE IF @TYPE_NAME IN ('BIT','BIG INTEGER')
INSERT INTO @TBRESULT (AttributID,AttributTitle,AttributType,ValueBigInt,ADDED_WHEN,CHANGED_WHEN)
select
@ATTR_ID,@ATTR_TITLE,@TYPE_NAME,[dbo].[FNIDB_GET_TERM_INTEGER] (@IDB_OBJ_ID,@ATTR_ID),T.ADDED_WHEN,T.CHANGED_WHEN
from
TBIDB_OBJECT_METADATA T
WHERE T.IDB_OBJ_ID = @IDB_OBJ_ID AND T.ATTR_ID = @ATTR_ID
ELSE IF @TYPE_NAME = 'DATE'
INSERT INTO @TBRESULT (AttributID,AttributTitle,AttributType,ValueDate,ADDED_WHEN,CHANGED_WHEN)
select
@ATTR_ID,@ATTR_TITLE,@TYPE_NAME,[dbo].[FNIDB_GET_TERM_DATE] (@IDB_OBJ_ID,@ATTR_ID),T.ADDED_WHEN,T.CHANGED_WHEN
from
TBIDB_OBJECT_METADATA T
WHERE T.IDB_OBJ_ID = @IDB_OBJ_ID AND T.ATTR_ID = @ATTR_ID
ELSE IF @TYPE_NAME = 'DECIMAL'
INSERT INTO @TBRESULT (AttributID,AttributTitle,AttributType,ValueDec,ADDED_WHEN,CHANGED_WHEN)
select
@ATTR_ID,@ATTR_TITLE,@TYPE_NAME,[dbo].[FNIDB_GET_TERM_DECIMAL] (@IDB_OBJ_ID,@ATTR_ID),T.ADDED_WHEN,T.CHANGED_WHEN
from
TBIDB_OBJECT_METADATA T
WHERE T.IDB_OBJ_ID = @IDB_OBJ_ID AND T.ATTR_ID = @ATTR_ID
FETCH NEXT FROM cursorAttributes INTO @ATTR_ID,@ATTR_TITLE,@TYPE_NAME
END
CLOSE cursorAttributes
DEALLOCATE cursorAttributes
SELECT * FROM @TBRESULT order BY AttributID,ADDED_WHEN
GO
-- =============================================
-- Author: SYSTEM, MS
-- Create date: 12.10.2021
-- =============================================
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_GET_ATTRIBUTE_VALUE] @IDB_OBJ_ID BIGINT,@ATTRIBUTE VARCHAR(100), @LANG_CODE VARCHAR(5), @VALUE VARCHAR(MAX) OUTPUT
AS
BEGIN
DECLARE
@ATTR_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@LANG_ID INT
IF NOT EXISTS(SELECT ATTR_ID FROM VWIDB_BE_ATTRIBUTE WHERE ATTR_TITLE = @ATTRIBUTE AND LANG_CODE = @LANG_CODE)
RAISERROR ('NO VALID ATTRIBUTE',16,1)
SELECT @ATTR_ID = ATTR_ID, @TYP_ID = TYPE_ID, @TYP_DESCR = TYPE_NAME,@LANG_ID = LANG_ID
FROM VWIDB_BE_ATTRIBUTE
WHERE ATTR_TITLE = @ATTRIBUTE AND LANG_CODE = @LANG_CODE
IF @TYP_ID IN (1,8) --VARCHAR
BEGIN
select
@VALUE = TERM.TERM_VALUE
FROM
IDB.dbo.TBIDB_TERM_VALUE_VARCHAR TERM INNER JOIN IDB.dbo.TBIDB_LANGUAGE_TERM TLANG ON TERM.GUID = TLANG.TERM_ID
INNER JOIN TBIDB_LANGUAGE LANG ON TLANG.LANG_ID = LANG.GUID
INNER JOIN IDB.dbo.TBIDB_OBJECT_METADATA MD ON TLANG.[OBJECT_ID] = MD.GUID
INNER JOIN IDB.dbo.TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
OBJ.DELETED = 0 AND
MD.IDB_OBJ_ID = @IDB_OBJ_ID AND
MD.ATTR_ID = @ATTR_ID AND TLANG.LANG_ID = @LANG_ID
END
ELSE IF @TYP_ID IN (2,7,9) --BIGINT
BEGIN
select
@VALUE = CONVERT(VARCHAR(20),TERM.TERM_VALUE)
FROM
IDB.dbo.TBIDB_TERM_VALUE_INTEGER TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID
INNER JOIN IDB.dbo.TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
OBJ.DELETED = 0 AND
MD.IDB_OBJ_ID = @IDB_OBJ_ID ANd
MD.ATTR_ID = @ATTR_ID
END
ELSE IF @TYP_ID = 3 --FLOAT
BEGIN
select
@VALUE = CONVERT(VARCHAR(20),TERM.TERM_VALUE)
FROM
IDB.dbo.TBIDB_TERM_VALUE_FLOAT TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID
INNER JOIN IDB.dbo.TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
OBJ.DELETED = 0 AND
MD.IDB_OBJ_ID = @IDB_OBJ_ID ANd
MD.ATTR_ID = @ATTR_ID
END
ELSE IF @TYP_ID = 4 --DECIMAL
BEGIN
select
@VALUE = CONVERT(VARCHAR(20),TERM.TERM_VALUE)
FROM
IDB.dbo.TBIDB_TERM_VALUE_DECIMAL TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID
INNER JOIN IDB.dbo.TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
OBJ.DELETED = 0 AND
MD.IDB_OBJ_ID = @IDB_OBJ_ID ANd
MD.ATTR_ID = @ATTR_ID
END
ELSE IF @TYP_ID = 5 --DATE
BEGIN
select
@VALUE = CONVERT(VARCHAR(20),TERM.TERM_VALUE)
FROM
IDB.dbo.TBIDB_TERM_VALUE_DATE TERM INNER JOIN TBIDB_OBJECT_METADATA MD ON TERM.GUID = MD.INT_TERM_ID
INNER JOIN IDB.dbo.TBIDB_OBJECT OBJ ON MD.IDB_OBJ_ID = OBJ.IDB_OBJ_ID
WHERE
OBJ.DELETED = 0 AND
MD.IDB_OBJ_ID = @IDB_OBJ_ID ANd
MD.ATTR_ID = @ATTR_ID
END
END
GO
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_REPLACE_ATTRIBUTE_DATA] @IDB_OBJ_ID BIGINT, @ATTRIBUTE VARCHAR(100), @OLD_TERM VARCHAR(900), @NEW_TERM VARCHAR(900),@LANGUAGE VARCHAR(5), @WHO VARCHAR(100)
AS
BEGIN
DECLARE
@UPD_GUID BIGINT,
@ATTR_ID INTEGER,
@ATTR_TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@TEXT_TERM_ID BIGINT,
@TERM_ID BIGINT,
@USER_DELETE_ID INTEGER,
@ERROR as BIT,
@LANGUAGE_ID TINYINT,
@WHO_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@WHO,@WHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
PRINT 'IN PRIDB_REPLACE_ATTRIBUTE_DATA...'
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 @LANGUAGE_ID = GUID FROM TBIDB_LANGUAGE WHERE UPPER(LANG_CODE) = UPPER(@LANGUAGE)
SELECT @ATTR_ID = T.GUID, @ATTR_TYP_ID = T.TYP_ID, @MULTI = T.MULTI_CONTEXT,@TYP_DESCR = T1.NAME_TYPE FROM TBIDB_ATTRIBUTE T, TBIDB_ATTRIBUTE_TYPE T1
WHERE T.TYP_ID = T1.GUID AND UPPER(T.TITLE) = UPPER(@ATTRIBUTE)
DECLARE @MY_OLD_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM @TYP_DESCR,@OLD_TERM,@WHO,@TERM_ID = @MY_OLD_TERM_ID OUTPUT;
DECLARE @MY_NEW_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM @TYP_DESCR,@NEW_TERM,@WHO,@TERM_ID = @MY_NEW_TERM_ID OUTPUT;
IF @ATTR_TYP_ID IN (1,8) --VARCHAR
BEGIN TRY
DECLARE @OMD_ID BIGINT
SELECT @OMD_ID = GUID FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID AND ATTR_ID = @ATTR_ID;
UPDATE TBIDB_LANGUAGE_TERM SET
TERM_ID = @MY_NEW_TERM_ID,
CHANGED_WHO = @WHO_TERM_ID
WHERE
[OBJECT_ID] = @OMD_ID AND LANG_ID = @LANGUAGE_ID AND TERM_ID = @MY_OLD_TERM_ID;
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE UPDATING FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID IN (2,7,9) --BIGINT
BEGIN TRY
DECLARE cursor_REPLACE CURSOR LOCAL FOR
SELECT T.GUID FROM TBIDB_OBJECT_METADATA T WHERE T.INT_TERM_ID = @MY_OLD_TERM_ID
OPEN cursor_REPLACE
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TBIDB_OBJECT_METADATA SET INT_TERM_ID = @MY_NEW_TERM_ID WHERE GUID = @UPD_GUID
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
END
CLOSE cursor_REPLACE
DEALLOCATE cursor_REPLACE
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (INTEGER) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 3 --FLOAT
BEGIN TRY
DECLARE cursor_REPLACE CURSOR LOCAL FOR
SELECT T.GUID FROM TBIDB_OBJECT_METADATA T WHERE T.FLOAT_TERM_ID = @MY_OLD_TERM_ID
OPEN cursor_REPLACE
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TBIDB_OBJECT_METADATA SET FLOAT_TERM_ID = @MY_NEW_TERM_ID WHERE GUID = @UPD_GUID
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
END
CLOSE cursor_REPLACE
DEALLOCATE cursor_REPLACE
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (FLOAT) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 4 --DECIMAL
BEGIN TRY
DECLARE cursor_REPLACE CURSOR LOCAL FOR
SELECT T.GUID FROM TBIDB_OBJECT_METADATA T WHERE T.DEC_TERM_ID = @MY_OLD_TERM_ID
OPEN cursor_REPLACE
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TBIDB_OBJECT_METADATA SET DEC_TERM_ID = @MY_NEW_TERM_ID WHERE GUID = @UPD_GUID
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
END
CLOSE cursor_REPLACE
DEALLOCATE cursor_REPLACE
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (DECIMAL) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
SET @ERROR = 1
END CATCH
ELSE IF @ATTR_TYP_ID = 5 --DATE
BEGIN TRY
DECLARE cursor_REPLACE CURSOR LOCAL FOR
SELECT T.GUID FROM TBIDB_OBJECT_METADATA T WHERE T.DATE_TERM_ID = @MY_OLD_TERM_ID
OPEN cursor_REPLACE
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TBIDB_OBJECT_METADATA SET DATE_TERM_ID = @MY_NEW_TERM_ID WHERE GUID = @UPD_GUID
FETCH NEXT FROM cursor_REPLACE INTO @UPD_GUID
END
CLOSE cursor_REPLACE
DEALLOCATE cursor_REPLACE
END TRY
BEGIN CATCH
PRINT 'ERROR WHILE DELETING (DATE) FROM TBIDB_OBJECT_METADATA FOR ATTRIBUTE [' + @ATTRIBUTE + ']'
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
SET @ERROR = 1
END CATCH
--IF @ERROR = 0
-- BEGIN
-- UPDATE TBIDB_ATTRIBUTE SET DELETED = 1, DELETED_WHO = @WHO WHERE GUID = @ATTR_ID;
-- END
END
GO
-- =============================================
-- Author: DD MS
-- Changed: 01.11.2021 MS TERM_COLUMNS
-- Changed: 10.08.2020 MS Anpassung
-- =============================================
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
@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, 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)
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
-- =============================================
-- Author: DD MS 21.01.2022
-- =============================================
CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_VERSION_OBJECT] @IDB_OBJ_ID BIGINT,@NEW_IDB_OBJ_ID BIGINT, @WHO VARCHAR(100)
AS
BEGIN
UPDATE TBIDB_OBJECT SET ACTIVE = 0, CHANGED_WHO = @WHO WHERE IDB_OBJ_ID = @IDB_OBJ_ID;
UPDATE TBIDB_OBJECT SET IS_VERSION = 1,ACTIVE = 1,PARENT_OBJ_ID = @IDB_OBJ_ID WHERE IDB_OBJ_ID = @NEW_IDB_OBJ_ID;
EXEC PRIDB_OBJECT_SET_STATE @IDB_OBJ_ID, 'File Versioned',@WHO;
DELETE FROM TBIDB_LANGUAGE_TERM WHERE OBJECT_ID IN (select GUID from idb.dbo.TBIDB_OBJECT_METADATA where IDB_OBJ_ID = @NEW_IDB_OBJ_ID);
DELETE FROM TBIDB_OBJECT_METADATA where IDB_OBJ_ID = @NEW_IDB_OBJ_ID;
INSERT INTO [dbo].[TBIDB_OBJECT_METADATA]
([IDB_OBJ_ID]
,[ATTR_ID]
,[INT_TERM_ID]
,[DEC_TERM_ID]
,[FLOAT_TERM_ID]
,[DATE_TERM_ID]
,[ADDED_WHO]
,[ADDED_WHEN]
,[CHANGED_WHO]
,[CHANGED_WHEN]
,[DATETIME_TERM_ID])
SELECT @NEW_IDB_OBJ_ID
,[ATTR_ID]
,[INT_TERM_ID]
,[DEC_TERM_ID]
,[FLOAT_TERM_ID]
,[DATE_TERM_ID]
,[ADDED_WHO]
,[ADDED_WHEN]
,[CHANGED_WHO]
,[CHANGED_WHEN]
,[DATETIME_TERM_ID] FROM TBIDB_OBJECT_METADATA WHERE IDB_OBJ_ID = @IDB_OBJ_ID ORDER BY GUID;
INSERT INTO TBIDB_LANGUAGE_TERM (
OBJECT_ID
,TERM_ID
,LANG_ID
,KIND_TYPE
,ADDED_WHO
,ADDED_WHEN
,CHANGED_WHO
,CHANGED_WHEN)
SELECT MD.GUID, LTERM_VERS.TERM_ID,LTERM_VERS.LANG_ID,LTERM_VERS.KIND_TYPE,LTERM_VERS.ADDED_WHO,LTERM_VERS.ADDED_WHEN,LTERM_VERS.CHANGED_WHO,LTERM_VERS.CHANGED_WHEN FROM
(SELECT
MD.ATTR_ID, LTERM.LANG_ID, LTERM.TERM_ID,LTERM.ADDED_WHO,LTERM.ADDED_WHEN,LTERM.CHANGED_WHO,LTERM.CHANGED_WHEN, LTERM.KIND_TYPE
FROM TBIDB_LANGUAGE_TERM LTERM INNER JOIN TBIDB_OBJECT_METADATA MD ON LTERM.OBJECT_ID = MD.GUID
WHERE LTERM.OBJECT_ID IN (select GUID from idb.dbo.TBIDB_OBJECT_METADATA where IDB_OBJ_ID = @IDB_OBJ_ID)
) LTERM_VERS INNER JOIN TBIDB_OBJECT_METADATA MD ON MD.ATTR_ID = LTERM_VERS.ATTR_ID
WHERE MD.IDB_OBJ_ID = @NEW_IDB_OBJ_ID;
INSERT INTO TBIDB_MYOBJECT_STATES
(MY_OBJECT_ID
,[STATE_ID]
,[ADDED_WHO]
,[ADDED_WHEN]
,[CHANGED_WHO]
,[CHANGED_WHEN])
SELECT @NEW_IDB_OBJ_ID
,[STATE_ID]
,[ADDED_WHO]
,[ADDED_WHEN]
,[CHANGED_WHO]
,[CHANGED_WHEN] FROM TBIDB_MYOBJECT_STATES WHERE MY_OBJECT_ID = @IDB_OBJ_ID;
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,VIEW_VISIBLE) VALUES ('OriginFileName',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('OriginCreationDatetime',6,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('OriginChangedDatetime',6,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('DisplayFileName',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('DisplayFileName1',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('Dynamic Folder',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('EmailMessageID',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('EmailSubject',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('EmailFrom',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('EmailDate',5,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,MULTI_CONTEXT,VIEW_VISIBLE) VALUES ('PM-LOGGING',8,0,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('VIRTUAL_FOLDER',1,1,0);
INSERT INTO TBIDB_ATTRIBUTE (TITLE,TYP_ID,SYS_ATTRIBUTE,VIEW_VISIBLE) VALUES ('VIRTUAL_FOLDER_PART',1,1,0);
--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 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
@DOCTYPE_ID INTEGER,
@TYP_ID TINYINT,
@TYP_DESCR VARCHAR(100),
@MULTI BIT,
@LANG_ID INT,
@WHO_TERM_ID BIGINT,
@MY_DOCTYPE_TERM_ID BIGINT
EXEC PRIDB_NEW_TERM 'VARCHAR',@pWHO,@pWHO,@TERM_ID = @WHO_TERM_ID OUTPUT;
EXEC PRIDB_NEW_TERM 'VARCHAR',@pDoctype_Lang,@pWHO,@TERM_ID = @MY_DOCTYPE_TERM_ID OUTPUT;
SELECT @LANG_ID = GUID FROM TBIDB_LANGUAGE WHERE LANG_CODE = @LANG_CODE
IF NOT EXISTS(SELECT GUID FROM TBIDB_DOCTYPE WHERE TITLE = @pDoctypeUnique)
BEGIN
INSERT INTO TBIDB_DOCTYPE (TITLE,ADDED_WHO) VALUES (@pDoctypeUnique, @pWHO);
END
SELECT @DOCTYPE_ID = GUID FROM TBIDB_DOCTYPE WHERE TITLE = @pDoctypeUnique;
PRINT '##@DOCTYPE_ID is: ' + Convert(Varchar(10),@DOCTYPE_ID)
IF NOT EXISTS(SELECT GUID FROM TBIDB_LANGUAGE_TERM WHERE OBJECT_ID = @DOCTYPE_ID AND LANG_ID = @LANG_ID AND KIND_TYPE = 2)
BEGIN
PRINT 'TBIDB_LANGUAGE_TERM_ENTRY NOT EXISTING...'
INSERT INTO [dbo].[TBIDB_LANGUAGE_TERM]
([OBJECT_ID]
,TERM_ID
,LANG_ID
,KIND_TYPE
,ADDED_WHO)
VALUES
(@DOCTYPE_ID
,@MY_DOCTYPE_TERM_ID
,@LANG_ID
,2
,@WHO_TERM_ID);
END
ELSE
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 AND TERM_ID <> @MY_DOCTYPE_TERM_ID;
END
END
GO
EXEC PRIDB_NEW_DOCTYPE 'Ausgangsrechnung','Ausgangsrechnung','System','de-DE';
EXEC PRIDB_NEW_DOCTYPE 'Ausgangsrechnung','Outgoing invoice','System','en-EN';
EXEC PRIDB_NEW_DOCTYPE 'Eingangsrechnung','Eingangsrechnung','System','de-DE';
EXEC PRIDB_NEW_DOCTYPE 'Eingangsrechnung','Incoming invoice','System','en-EN';
EXEC PRIDB_NEW_DOCTYPE 'Gutschrift','Gutschrift','System','de-DE';
EXEC PRIDB_NEW_DOCTYPE 'Gutschrift','Credit note','System','en-EN';
EXEC PRIDB_NEW_DOCTYPE 'Quittung','Quittung','System','de-DE';
GO
CREATE PROCEDURE [dbo].[PRIDB_OBJECT_SUBSTRUCTURE_CHANGED] @IDB_OBJ_ID BIGINT,@WHO VARCHAR(100)
AS
BEGIN
UPDATE TBIDB_OBJECT
SET CHANGED_WHO_SUBSTRUCTURE = @WHO, CHANGED_WHEN_SUBSTRUCTURE = GETDATE()
WHERE
IDB_OBJ_ID = @IDB_OBJ_ID
END
GO
CREATE VIEW [dbo].[VWGI_ADMIN_OVERVIEW] AS
SELECT
T3.GUID as ID,
'GROUP' As Relation,
T.USERNAME,
--T2.NAME AS GROUP_NAME,
T4.BEZEICHNUNG AS DOCTYPE,
T5.OBJECT_TITLE as OBJECT_ST_NAME,
T1.ADDED_WHEN
FROM
DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_GROUPS_USER T1,
DD_ECM.dbo.TBDD_GROUPS T2,
DD_ECM.dbo.TBDD_USRGRP_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4,
IDB.dbo.TBIDB_OBJECT_STORE T5
WHERE
T4.AKTIV = 1 AND
T.GUID = T1.[USER_ID] AND
T1.GROUP_ID = T2.GUID AND
T2.GUID = T3.GROUP_ID AND
T3.DOCTYPE_ID = T4.GUID AND
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')))
UNION
SELECT DISTINCT
T3.GUID as ID,
'USER' As Relation,
T.USERNAME,
T4.BEZEICHNUNG AS DOCTYPE,
T5.OBJECT_TITLE as OBJECT_ST_NAME,
T3.ADDED_WHEN
FROM
DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_USER_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4,
IDB.dbo.TBIDB_OBJECT_STORE T5
WHERE
T4.AKTIV = 1 AND
T.GUID = T3.[USER_ID] AND
T3.DOCTYPE_ID = T4.GUID AND
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;
GO
USE DD_ECM
GO
CREATE VIEW VWGI_DOCTYPE_USER AS
SELECT DISTINCT
T.GUID AS [USER_ID],
T.USERNAME,
--T2.NAME AS GROUP_NAME,
T3.DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.ZIEL_PFAD,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID,
T5.OBJECT_TITLE as OBJECT_ST_NAME,
T4.SEQUENCE
FROM
DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_GROUPS_USER T1,
DD_ECM.dbo.TBDD_GROUPS T2,
DD_ECM.dbo.TBDD_USRGRP_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4,
IDB.dbo.TBIDB_OBJECT_STORE T5
WHERE
T4.AKTIV = 1 AND
T.GUID = T1.[USER_ID] AND
T1.GROUP_ID = T2.GUID AND
T2.GUID = T3.GROUP_ID AND
T3.DOCTYPE_ID = T4.GUID AND
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')))
UNION
SELECT DISTINCT
T.GUID AS [USER_ID],
T.USERNAME,
--'' AS GROUP_NAME,
T4.GUID as DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.ZIEL_PFAD,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID,
T5.OBJECT_TITLE as OBJECT_ST_NAME,
T4.SEQUENCE
FROM
DD_ECM.dbo.TBDD_USER T,
DD_ECM.dbo.TBDD_USER_DOKTYPE T3,
DD_ECM.dbo.TBDD_DOKUMENTART T4,
IDB.dbo.TBIDB_OBJECT_STORE T5
WHERE
T4.AKTIV = 1 AND
T.GUID = T3.[USER_ID] AND
T3.DOCTYPE_ID = T4.GUID AND
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
------------------------------------------------------------------------------
CREATE OR ALTER VIEW [dbo].[VWGI_DOCTYPE_IDB] AS
SELECT
T4.GUID as DOCTYPE_ID,
T4.BEZEICHNUNG AS DOCTYPE,
T4.BEZEICHNUNG AS DOCTYPE_ONLY,
T4.KURZNAME,
T4.FOLDER_FOR_INDEX DYNAMIC_FOLDER,
T4.AKTIV,
T4.NAMENKONVENTION,
T4.OBJEKTTYP,
T6.OBJECT_TITLE AS OBJECT_STORE,
T4.IDB_OBJECT_STORE_ID OBJECT_ST_ID,
T7.CAT_TITLE AS OBJECT_ST_PATH,
T4.ERSTELLTWANN,
T4.GEAENDERTWANN,
T4.SEQUENCE,
T4.IDB_DOCTYPE_ID
FROM
DD_ECM.dbo.TBDD_DOKUMENTART T4 LEFT JOIN IDB.dbo.TBIDB_OBJECT_STORE T6 ON T4.IDB_OBJECT_STORE_ID = T6.GUID
LEFT JOIN IDB.dbo.TBIDB_CATALOG T7 On T6.CAT_ID = T7.GUID
WHERE
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