Added function vefn_CompareROIDs

Modified stored procedure getAffectedDRoUsages to utilize function
This commit is contained in:
Rich 2014-07-22 17:46:56 +00:00
parent a16ea8a6ac
commit 69bbda7ed8

View File

@ -6712,7 +6712,9 @@ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedDRoUs
GO
/*
getAffectedDROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR'
getAffectedDROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR',''
getAffectedDROUsages 1, '000300003D8E', 'KBR Test', 'Changed', 'KBR',''
*/
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
@ -6738,13 +6740,20 @@ AS
SELECT Distinct ContentID From vefn_GetVersionItems(@VersionList)
DECLARE @typeID int
SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required'
DECLARE @DRoUsages TABLE
(
DRoUsageID int primary key
)
Insert INTO @DRoUsages
select DRoUsageID from DRoUsages where ROID like substring(@ROID,1,12) + '%' AND dbo.vefn_CompareROIDS(ROID,@ROID) > 0
-- Add "Verification Required" Annotation for each ROUsage
INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID])
SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID
FROM Items where CONTENTID in (SELECT ContentID
FROM DROUsages DR
FROM (select dr.* from DRoUsages dr join @DRoUsages dd on dr.DRoUsageid = dd.DRoUsageid) DR
JOIN Entries EE on EE.DocID = DR.DocID
where RODbID = @RODbID AND ROID = @ROID AND ContentID in (select ContentID from @JustThisVersion))
where RODbID = @RODbID AND ContentID in (select ContentID from @JustThisVersion))
SELECT
[DROUsages].[DROUsageID],
[DROUsages].[DocID],
@ -6765,7 +6774,7 @@ AS
JOIN [Documents] ON
[Documents].[DocID]=[DROUsages].[DocID]
WHERE
[DRoUsages].[RODbID]=@RODbID AND [DRoUsages].[ROID]=@ROID
[DRoUsages].[DRoUsageID] in (select DRoUsageid from @DRoUsages)
AND [Documents].[DocID] in (select EE.DocID from Entries EE where ContentID in (select ContentID from @JustThisVersion))
RETURN
END
@ -8664,3 +8673,37 @@ IF (@@Error = 0) PRINT 'Procedure Creation: getOwnersByVersionID Succeeded'
ELSE PRINT 'Procedure Creation: getOwnersByVersionID Error on Creation'
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CompareROIDs]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
DROP FUNCTION [vefn_CompareROIDs];
/****** Object: UserDefinedFunction [dbo].[vefn_CompareROIDs] Script Date: 07/21/2014 17:50:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create function vefn_CompareROIDs (@roid1 varchar(16), @roid2 varchar(16))
returns int
as begin
declare @len1 int
declare @len2 int
if @roid1 = @roid2
return 1
set @len1 = len(@roid1)
set @len2 = len(@roid2)
if @len1 = @len2
begin
if @len1 = 16 and substring(@roid1,13,4) = '0000' and substring(@roid2,13,4) = '0041'
return 2
if @len1 = 16 and substring(@roid2,13,4) = '0000' and substring(@roid1,13,4) = '0041'
return 3
return 0
end
if substring(@roid1,1,12) = substring(@roid2,1,12)
return 4
return 0
end
GO
-- Display the status of ScalarFunction creation
IF (@@Error = 0) PRINT 'Function: vefn_CompareROIDs Succeeded'
ELSE PRINT 'Function: vefn_CompareROIDs Error on Creation'
GO