ALTER PROCEDURE [dbo].[TPS_sp_MappingGetReport3]
@uploadbatch_id varchar(100)
Declare @uploadbatchid varchar(40)
Declare @templateName nvarchar(255) =
select @templateName = tn.TemplateName
from [dbo].[TPS_MasterUploadDetails] mud WITH(NOLOCK)
inner join [dbo].[TPS_TemplateName_List] tn WITH(NOLOCK) on tn.TNID = mud.UploadTemplateType
where mud.UploadBatchID = @uploadbatch_id
set @uploadbatchid = @uploadbatch_id
DECLARE @pmid nvarchar(max), @Domain nvarchar(max), @BaselineUnqID nvarchar(max), @RequirementStatement nvarchar(max),
@ResultMapping nvarchar(max), @PolicyDetails nvarchar(max), @MaturityRatings nvarchar(max),
@Createdby nvarchar(max), @CreatedDate nvarchar(max), @IdentifiedGaps nvarchar(max)
CREATE TABLE #TPS_Report(
BaselineUnqID nvarchar(max),
RequirementStatement nvarchar(max),
ResultMapping nvarchar(max),
PolicyDetails nvarchar(max),
MaturityRatings nvarchar(max),
IdentifiedGaps nvarchar(max),
CreatedDate nvarchar(max),
IncludedControls nvarchar(max),
ExcludedControls nvarchar(max),
ALTER TABLE #TPS_Report DROP COLUMN MaturityRatings;
-- Temporary table to store excluded controls
CREATE TABLE #TPS_ControlStandardsExcluded(
[CXIID] [bigint] NOT NULL,
[PMID] [varchar](40) NOT NULL,
[ControlStandards] [nvarchar](max) NULL,
[CreatedDate] [datetime] NULL,
[IsActive] [bit] NOT NULL,
[ActionType] [varchar](40) NOT NULL,
[RequirementStatement] [nvarchar](max) NULL,
DECLARE cursor_ReportData CURSOR FOR
Select Domain, BaselineUnqID, RequirementStatement, PMID, Comments
from [dbo].[TPS_Upload_PolicyMappingData] WITH(NOLOCK)
where UploadBatchID = @uploadbatchid
FETCH NEXT FROM cursor_ReportData INTO @Domain, @BaselineUnqID, @RequirementStatement, @pmid, @IdentifiedGaps;
DECLARE @IncludedControls nvarchar(max) =
DECLARE @ExcludedControls nvarchar(max) =
-- Process TPS_ControlStandardsCurrent
@ResultMapping = STRING_AGG(ControlStandards, CHAR(13)),
@PolicyDetails = STRING_AGG(Concat(ControlStandards,
@Createdby = STRING_AGG(ISNULL(CreatedBy,
@CreatedDate = STRING_AGG(CreatedDate, CHAR(13))
from [dbo].[TPS_ControlStandardsCurrent] WITH(NOLOCK)
where PMID = @pmid and IsActive = 1
-- Process TPS_ControlStandardsIncluded
@IncludedControls = STRING_AGG(Concat(ControlStandards,
from [dbo].[TPS_ControlStandardsIncluded] WITH(NOLOCK)
where PMID = @pmid and IsActive = 1
-- Compare Current and Included tables, populate Excluded
INSERT INTO #TPS_ControlStandardsExcluded (CXIID, PMID, ControlStandards, CreatedDate, IsActive, ActionType, RequirementStatement, MatchingScore)
csc.RequirementStatement,
[dbo].[TPS_ControlStandardsCurrent] csc WITH(NOLOCK)
[dbo].[TPS_ControlStandardsIncluded] csi WITH(NOLOCK)
csc.PMID = csi.PMID AND csc.ControlStandards = csi.ControlStandards
csc.PMID = @pmid AND csc.IsActive = 1 AND csi.CSIID IS NULL
-- Process Excluded Controls
@ExcludedControls = STRING_AGG(Concat(ControlStandards,
from #TPS_ControlStandardsExcluded
Select @MaturityRatings = mrl.MaturityRatings
from [dbo].[TPS_MaturityRatingsList] mrl WITH(NOLOCK)
inner join [dbo].[TPS_MaturityRatingsMaster] mrm WITH(NOLOCK) on mrl.MRID = mrm.MRID
SET @MaturityRatings = IIF((@MaturityRatings <>
Insert into #TPS_Report(Domain, BaselineUnqID, RequirementStatement, ResultMapping, PolicyDetails, MaturityRatings, IdentifiedGaps, Createdby, CreatedDate, IncludedControls, ExcludedControls, IsExcluded)
Values(@Domain, @BaselineUnqID, @RequirementStatement, @ResultMapping, @PolicyDetails, @MaturityRatings, @IdentifiedGaps, @Createdby, @CreatedDate, @IncludedControls, @ExcludedControls, CASE WHEN @ExcludedControls <>
Insert into #TPS_Report(Domain, BaselineUnqID, RequirementStatement, ResultMapping, PolicyDetails, IdentifiedGaps, Createdby, CreatedDate, IncludedControls, ExcludedControls, IsExcluded)
Values(@Domain, @BaselineUnqID, @RequirementStatement, @ResultMapping, @PolicyDetails, @IdentifiedGaps, @Createdby, @CreatedDate, @IncludedControls, @ExcludedControls, CASE WHEN @ExcludedControls <>
FETCH NEXT FROM cursor_ReportData INTO @Domain, @BaselineUnqID, @RequirementStatement, @pmid, @IdentifiedGaps;
DEALLOCATE cursor_ReportData;
SELECT * from #TPS_Report;
DROP TABLE #TPS_ControlStandardsExcluded;
Exec [dbo].[TPS_sp_MappingGetReport3] @uploadbatch_id = [f5b4f421-f4f5-4255-aca9-9b322fe28807];