Microsoft.SystemCenter.DataWarehouse.Report.Script.CustomConfigurationColumn (DataWarehouseScript)

Element properties:

Install ScriptRes.Microsoft.SystemCenter.DataWarehouse.Report.Script.CustomConfigurationColumn.Install
Uninstall ScriptRes.Microsoft.SystemCenter.DataWarehouse.Report.Script.CustomConfigurationColumn.Uninstall
Upgrade ScriptRes.Microsoft.SystemCenter.DataWarehouse.Report.Script.CustomConfigurationColumn.Upgrade
Upgrade UnsupportedFalse
AccessibilityPublic

Source Code:

<DataWarehouseScript ID="Microsoft.SystemCenter.DataWarehouse.Report.Script.CustomConfigurationColumn" Accessibility="Public">
<Install>
IF NOT EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList')
BEGIN
EXECUTE ('CREATE PROCEDURE dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList] AS RETURN 1')
END
GO

ALTER PROCEDURE dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList]
@StartDate datetime,
@EndDate datetime,
@ObjectList xml,
@LanguageCode varchar(3)= 'ENU'
AS

BEGIN

SET NOCOUNT ON

DECLARE @Error int
DECLARE @ExecError int
---------------------------------------------------------------------
--Create a list of Managed Entities
---------------------------------------------------------------------
CREATE TABLE #ObjectList (ManagedEntityRowId int)

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

INSERT INTO #ObjectList (ManagedEntityRowId)
EXECUTE @ExecError = [Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportObjectListParse]
@ObjectList = @ObjectList,
@StartDate = @StartDate,
@EndDate = @EndDate,
@ContainmentLevelCount = 1,
@ContainmentStartLevel = 1

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 OR @ExecError &lt;&gt; 0 GOTO QuitError
---------------------------------------------------------------------
--Create list of all relationships derived from 'System.Hosting'
-- Assuming A MAX depth (level = 0)
---------------------------------------------------------------------
CREATE TABLE #RelationshipList(RelationshipTypeRowId int)
SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

INSERT #RelationshipList
SELECT RelationshipTypeRowId
from RelationshipDerivedTypeHierarchy
(
(
SELECT RelationshipTypeRowId
FROM dbo.vRelationshipType
WHERE RelationshipTypeSystemName = 'System.Hosting'
)
,0
)

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError
---------------------------------------------------------------------
--Create list of all entities above the selected objects in their respective hosting chains
---------------------------------------------------------------------
CREATE TABLE #Entity_Tree(ManagedEntityRowId int not null, Level int not null default 0)
SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

INSERT #Entity_Tree
SELECT ManagedEntityRowId, 0
FROM #ObjectList

declare @count int
declare @level int
set @count = 1
set @level = 0

while @count &gt; 0
begin
INSERT #Entity_Tree
SELECT r.SourceManagedEntityRowId, et.Level + 1
FROM vRelationship AS r
JOIN #Entity_Tree AS et ON r.TargetManagedEntityRowId = et.ManagedEntityRowId
JOIN #RelationshipList rl ON r.RelationshipTypeRowId = rl.RelationshipTypeRowId
WHERE et.Level = @level

set @count = @@ROWCOUNT
set @level = @level + 1
end

---------------------------------------------------------------------
--Create List of Selected Properties for selected Objects
---------------------------------------------------------------------
SELECT
vManagedEntityTypeProperty.PropertyGuid as PropertyGuid,
TypeList.ManagedEntityTypeRowId as ManagedEntityTypeRowId,
vManagedEntityTypeProperty.PropertySystemName as PropertySystemName,
ISNULL(vDisplayString.Name,vManagedEntityTypeProperty.PropertyDefaultName) as PropertyDefaultName
FROM
(
SELECT Distinct t.ManagedEntityTypeRowId
FROM
#Entity_Tree Inner Join
vManagedEntity ON vManagedEntity.ManagedEntityRowId = #Entity_Tree.ManagedEntityRowId Inner Join
vTypedManagedEntity ON vManagedEntity.ManagedEntityRowId = vTypedManagedEntity.ManagedEntityRowId
CROSS APPLY ManagedEntityBaseTypeHierarchy(vTypedManagedEntity.ManagedEntityTypeRowId,0) t
) AS TypeList
INNER JOIN
vManagedEntityTypeProperty ON vManagedEntityTypeProperty.ManagedEntityTypeRowId = TypeList.ManagedEntityTypeRowId
LEFT OUTER JOIN
vDisplayString ON vManagedEntityTypeProperty.PropertyGuid = vDisplayString.ElementGuid
AND
vDisplayString.LanguageCode = @LanguageCode

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

---------------------------------------------------------------------
--Error Handling &amp; Cleanup code
---------------------------------------------------------------------
QuitError:

IF ((@Error = 0) AND (@ExecError &lt;&gt; 0)) SET @Error = @ExecError
DROP TABLE #ObjectList
DROP TABLE #RelationshipList
DROP TABLE #Entity_Tree
RETURN @Error
END
GO

GRANT EXECUTE ON dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList] TO OpsMgrReader
GO

</Install>
<Uninstall>
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = '[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList]')
BEGIN
DROP PROCEDURE dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList]
END
GO

</Uninstall>
<Upgrade>
IF NOT EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList')
BEGIN
EXECUTE ('CREATE PROCEDURE dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList] AS RETURN 1')
END
GO

ALTER PROCEDURE dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList]
@StartDate datetime,
@EndDate datetime,
@ObjectList xml,
@LanguageCode varchar(3)= 'ENU'
AS

BEGIN

SET NOCOUNT ON

DECLARE @Error int
DECLARE @ExecError int
---------------------------------------------------------------------
--Create a list of Managed Entities
---------------------------------------------------------------------
CREATE TABLE #ObjectList (ManagedEntityRowId int)

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

INSERT INTO #ObjectList (ManagedEntityRowId)
EXECUTE @ExecError = [Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportObjectListParse]
@ObjectList = @ObjectList,
@StartDate = @StartDate,
@EndDate = @EndDate,
@ContainmentLevelCount = 1,
@ContainmentStartLevel = 1

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 OR @ExecError &lt;&gt; 0 GOTO QuitError
---------------------------------------------------------------------
--Create list of all relationships derived from 'System.Hosting'
-- Assuming A MAX depth (level = 0)
---------------------------------------------------------------------
CREATE TABLE #RelationshipList(RelationshipTypeRowId int)
SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

INSERT #RelationshipList
SELECT RelationshipTypeRowId
from RelationshipDerivedTypeHierarchy
(
(
SELECT RelationshipTypeRowId
FROM dbo.vRelationshipType
WHERE RelationshipTypeSystemName = 'System.Hosting'
)
,0
)

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError
---------------------------------------------------------------------
--Create list of all entities above the selected objects in their respective hosting chains
---------------------------------------------------------------------
CREATE TABLE #Entity_Tree(ManagedEntityRowId int not null, Level int not null default 0)
SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

INSERT #Entity_Tree
SELECT ManagedEntityRowId, 0
FROM #ObjectList

declare @count int
declare @level int
set @count = 1
set @level = 0

while @count &gt; 0
begin
INSERT #Entity_Tree
SELECT r.SourceManagedEntityRowId, et.Level + 1
FROM vRelationship AS r
JOIN #Entity_Tree AS et ON r.TargetManagedEntityRowId = et.ManagedEntityRowId
JOIN #RelationshipList rl ON r.RelationshipTypeRowId = rl.RelationshipTypeRowId
WHERE et.Level = @level

set @count = @@ROWCOUNT
set @level = @level + 1
end

---------------------------------------------------------------------
--Create List of Selected Properties for selected Objects
---------------------------------------------------------------------
SELECT
vManagedEntityTypeProperty.PropertyGuid as PropertyGuid,
TypeList.ManagedEntityTypeRowId as ManagedEntityTypeRowId,
vManagedEntityTypeProperty.PropertySystemName as PropertySystemName,
ISNULL(vDisplayString.Name,vManagedEntityTypeProperty.PropertyDefaultName) as PropertyDefaultName
FROM
(
SELECT Distinct t.ManagedEntityTypeRowId
FROM
#Entity_Tree Inner Join
vManagedEntity ON vManagedEntity.ManagedEntityRowId = #Entity_Tree.ManagedEntityRowId Inner Join
vTypedManagedEntity ON vManagedEntity.ManagedEntityRowId = vTypedManagedEntity.ManagedEntityRowId
CROSS APPLY ManagedEntityBaseTypeHierarchy(vTypedManagedEntity.ManagedEntityTypeRowId,0) t
) AS TypeList
INNER JOIN
vManagedEntityTypeProperty ON vManagedEntityTypeProperty.ManagedEntityTypeRowId = TypeList.ManagedEntityTypeRowId
LEFT OUTER JOIN
vDisplayString ON vManagedEntityTypeProperty.PropertyGuid = vDisplayString.ElementGuid
AND
vDisplayString.LanguageCode = @LanguageCode

SET @Error = @@ERROR
IF @Error &lt;&gt; 0 GOTO QuitError

---------------------------------------------------------------------
--Error Handling &amp; Cleanup code
---------------------------------------------------------------------
QuitError:

IF ((@Error = 0) AND (@ExecError &lt;&gt; 0)) SET @Error = @ExecError
DROP TABLE #ObjectList
DROP TABLE #RelationshipList
DROP TABLE #Entity_Tree
RETURN @Error
END
GO

GRANT EXECUTE ON dbo.[Microsoft_SystemCenter_DataWarehouse_Report_Library_ReportColumnList] TO OpsMgrReader
GO

</Upgrade>
</DataWarehouseScript>