ServiceManager.Report.Common.SP.GetWIsRelatedToWI.Install (Resource)

Element properties:

TypeResource
File NameServiceManager.Report.Common.SP.GetWIsRelatedToWI.Install.sql
AccessibilityPublic

Source Code:

<Resource ID="ServiceManager.Report.Common.SP.GetWIsRelatedToWI.Install" Accessibility="Public" FileName="ServiceManager.Report.Common.SP.GetWIsRelatedToWI.Install.sql"/>

File Content: ServiceManager.Report.Common.SP.GetWIsRelatedToWI.Install.sql

SET ANSI_NULLS ON

GO
SET QUOTED_IDENTIFIER ON
GO

-- Drop stored procedure if it already exists
IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_SCHEMA = N'dbo'
AND SPECIFIC_NAME = N'ServiceManager_Report_Common_SP_GetWIsRelatedToWI'
)
DROP PROCEDURE dbo.ServiceManager_Report_Common_SP_GetWIsRelatedToWI
GO

CREATE PROCEDURE dbo.ServiceManager_Report_Common_SP_GetWIsRelatedToWI
@LangCode nvarchar(16) = 'ENU',
@WorkItemDimKey int = -1,
@IncludeDeleted bit = 0

AS
BEGIN
SET NOCOUNT ON
DECLARE @Error int
DECLARE @ExecError int

SELECT DISTINCT
WorkItems.Id,
WorkItems.Title,
E.LastModified LastModified,
AssignedTo.DisplayName AS AssignedToUserName,
ISNULL(WITypeDS.DisplayName, WIType.TypeName) TypeDisplayName,
WIType.TypeName,
StatusValue =
CASE
WHEN(CRStatusEnum.ChangeStatusValue IS NOT NULL)
THEN ISNULL(ChangeStatusEnumDisplayString.DisplayName, CRStatusEnum.ChangeStatusValue)

WHEN (RRStatusEnum.ReleaseStatusValue IS NOT NULL)
THEN ISNULL(ReleaseStatusEnumDisplayString.DisplayName, RRStatusEnum.ReleaseStatusValue)

WHEN(IncidentStatusEnum.IncidentStatusValue IS NOT NULL)
THEN ISNULL(IncidentStatusEnumDisplayString.DisplayName, IncidentStatusEnum.IncidentStatusValue)

WHEN(PRStatusEnum.ProblemStatusValue IS NOT NULL)
THEN ISNULL(ProblemStatusEnumDisplayString.DisplayName, PRStatusEnum.ProblemStatusValue)

WHEN(AcStatusEnum.ActivityStatusValue IS NOT NULL)
THEN ISNULL(ActivityStatusEnumDisplayString.DisplayName, AcStatusEnum.ActivityStatusValue)

ELSE NULL

END

FROM
(
SELECT
dimWI.WorkItemDimKey,
dimWI.EntityDimKey,
dimWI.Id,
dimWI.Title
FROM dbo.WorkItemRelatesToWorkItemFactvw factWI

INNER JOIN dbo.WorkItemDimvw dimWI
ON (dimWI.WorkItemDimKey = ISNULL(NULLIF(factWI.WorkItemDimKey, @WorkItemDimKey), factWI.WorkItemRelatesToWorkItem_WorkItemDimKey))

WHERE
(factWI.WorkItemDimKey = @WorkItemDimKey OR factWI.WorkItemRelatesToWorkItem_WorkItemDimKey = @WorkItemDimKey)
AND(@IncludeDeleted = 1 OR factWI.DeletedDate IS NULL)
) As WorkItems

LEFT OUTER JOIN
dbo.IncidentDimvw i on (WorkItems.EntityDimKey = i.EntityDimKey)

LEFT OUTER JOIN
dbo.ChangeRequestDimvw c on (c.EntityDimKey = WorkItems.EntityDimKey)

LEFT OUTER JOIN
dbo.ReleaseRecordDimvw r on (r.EntityDimKey = WorkItems.EntityDimKey)

LEFT OUTER JOIN
dbo.ProblemDimvw p on (p.EntityDimKey = WorkItems.EntityDimKey)

LEFT OUTER JOIN
dbo.ActivityDimvw a on (a.EntityDimKey = WorkItems.EntityDimKey)

LEFT OUTER JOIN
dbo.WorkItemAssignedToUserFactvw IAssignedUserFact
ON (IAssignedUserFact.WorkItemDimKey = WorkItems.WorkItemDimKey AND IAssignedUserFact.DeletedDate IS NULL)

LEFT OUTER JOIN
dbo.UserDimvw AssignedTo
ON IAssignedUserFact.WorkItemAssignedToUser_UserDimKey = AssignedTo.UserDimKey

LEFT OUTER JOIN
dbo.IncidentStatusvw IncidentStatusEnum
ON IncidentStatusEnum.IncidentStatusId = i.Status_IncidentStatusId

LEFT OUTER JOIN
dbo.DisplayStringDimvw IncidentStatusEnumDisplayString
ON (IncidentStatusEnum.EnumTypeId = IncidentStatusEnumDisplayString.BaseManagedEntityId AND
IncidentStatusEnumDisplayString.LanguageCode = @LangCode)

LEFT OUTER JOIN
dbo.ChangeStatusvw CRStatusEnum
ON CRStatusEnum.ChangeStatusId = c.Status_ChangeStatusId

LEFT OUTER JOIN
dbo.DisplayStringDimvw ChangeStatusEnumDisplayString
ON (CRStatusEnum.EnumTypeId = ChangeStatusEnumDisplayString.BaseManagedEntityId AND
ChangeStatusEnumDisplayString.LanguageCode = @LangCode)

LEFT OUTER JOIN
dbo.ReleaseStatusvw RRStatusEnum
ON RRStatusEnum.ReleaseStatusId = r.Status_ReleaseStatusId

LEFT OUTER JOIN
dbo.DisplayStringDimvw ReleaseStatusEnumDisplayString
ON (RRStatusEnum.EnumTypeId = ReleaseStatusEnumDisplayString.BaseManagedEntityId AND
ReleaseStatusEnumDisplayString.LanguageCode = @LangCode)

LEFT OUTER JOIN
dbo.ProblemStatusvw PRStatusEnum
ON PRStatusEnum.ProblemStatusId = p.Status_ProblemStatusId

LEFT OUTER JOIN
dbo.DisplayStringDimvw ProblemStatusEnumDisplayString
ON (PRStatusEnum.EnumTypeId = ProblemStatusEnumDisplayString.BaseManagedEntityId AND
ProblemStatusEnumDisplayString.LanguageCode = @LangCode)

LEFT OUTER JOIN
dbo.ActivityStatusvw AcStatusEnum
ON AcStatusEnum.ActivityStatusId = a.Status_ActivityStatusId

LEFT OUTER JOIN
dbo.DisplayStringDimvw ActivityStatusEnumDisplayString
ON (AcStatusEnum.EnumTypeId = ActivityStatusEnumDisplayString.BaseManagedEntityId AND
ActivityStatusEnumDisplayString.LanguageCode = @LangCode)

LEFT OUTER JOIN
dbo.EntityDim E
ON E.EntityDimKey = WorkItems.EntityDimKey

LEFT OUTER JOIN dbo.EntityManagedTypeFactvw WITypeFact
ON WITypeFact.EntityDimKey = E.EntityDimKey
AND (@IncludeDeleted = 1 OR WITypeFact.DeletedDate IS NULL)

INNER JOIN dbo.ManagedTypeDim WIType
ON WIType.ManagedTypeDimKey = WITypeFact.ManagedTypeDimKey

LEFT OUTER JOIN dbo.DisplayStringDimvw WITypeDS
ON WIType.ManagedTypeId = WITypeDS.BaseManagedEntityId
AND WITypeDS.LanguageCode = @LangCode

SET @Error = @@ERROR

QuitError:

RETURN @Error
END
GO


GRANT EXECUTE ON dbo.ServiceManager_Report_Common_SP_GetWIsRelatedToWI TO reportuser
GO