USP_QUERYVIEW_GETQUERYNODE

Returns a query node for a root object name and path alias.

Parameters

Parameter Parameter Type Mode Description
@ROOTOBJECTNAME nvarchar(128) IN
@PATHALIAS nvarchar(128) IN
@APPUSERID uniqueidentifier IN
@USEINREPORTMODELGENERATOR bit IN

Definition

Copy


CREATE procedure dbo.[USP_QUERYVIEW_GETQUERYNODE]
(
  @ROOTOBJECTNAME nvarchar(128),
  @PATHALIAS nvarchar(128),
  @APPUSERID uniqueidentifier,
  @USEINREPORTMODELGENERATOR bit = null
)
as begin
  -- Returns related nodes to the root query view

  set nocount on;

  /*
  Do not filter out based on user rights.  Security will be checked outside this SP.
  declare @IS_SYS_ADMIN bit;
  select @IS_SYS_ADMIN = [ISSYSADMIN] from dbo.[APPUSER] where [ID] = @APPUSERID;
  */

  select
    coalesce([Q].[PATHALIAS], [RELATEDQUERYVIEW].[DISPLAYNAME]) as [DISPLAYNAME],
    [Q].[RELATEDQUERYVIEWID],
    [Q].[ROOTCOLUMN] as [ROOTCOLUMN],
    [Q].[RELATEDCOLUMN] as [RELATEDCOLUMN],
    [RELATEDQUERYVIEW].[OBJECTNAME] as [OBJECTNAME],
    [RELATEDQUERYVIEW].[OBJECTTYPE],
    [RELATEDQUERYVIEW].[SUBGROUP],
    [RELATEDQUERYVIEW].[PRIMARYKEYFIELD],
    [Q].[JOINTYPE],
    [Q].[JOINPARAMETERS],
    [RELATEDQUERYVIEW].[OUTPUTDEFINITIONXML],
    [RELATEDQUERYVIEW].[QUERYVIEWSPEC],
    [RELATEDQUERYVIEW].[ENFORCERECORDACCESSSECURITY],
    (select count(*) from dbo.[QUERYVIEWRELATIONSHIP] where [ROOTQUERYVIEWID] = [Q].[RELATEDQUERYVIEWID]) as [CHILDNODECOUNT],
    [RECORDTYPE].[ID] as [RECORDTYPEID],
    [RELATEDQUERYVIEW].[USEINREPORTMODELGENERATOR],
    [Q].[CARDINALITYTYPE],
    [RECORDTYPE].[NAME] as [RECORDTYPE],
    [Q].[DISPLAYALIAS],
    [Q].[OBSOLETE],
    cast(isnull([OLAPDATASOURCE].[SUPPORTSROLLINGDATES], 0) as bit) as [SUPPORTSROLLINGDATES],
    dbo.UFN_OLAP_GETDATAMARTLASTREFRESH([OLAPDATASOURCE].[MARTKEY]) as [DATAMARTLASTREFRESH]
  from dbo.[QUERYVIEWRELATIONSHIP] as [Q]
  inner join dbo.[QUERYVIEWCATALOG] as ROOTQUERYVIEW on [Q].[ROOTQUERYVIEWID] = [ROOTQUERYVIEW].[ID]
  inner join dbo.[QUERYVIEWCATALOG] as [RELATEDQUERYVIEW] on [Q].[RELATEDQUERYVIEWID] = [RELATEDQUERYVIEW].[ID]
  left outer join dbo.[RECORDTYPE] on [RELATEDQUERYVIEW].RECORDTYPEID = [RECORDTYPE].[ID]
  left outer join dbo.[OLAPDATASOURCE] on [OLAPDATASOURCE].[MARTKEY] = [ROOTQUERYVIEW].[MARTKEY]
  where [ROOTQUERYVIEW].[OBJECTNAME] = @ROOTOBJECTNAME
  and [Q].[PATHALIAS] = @PATHALIAS
  and (@USEINREPORTMODELGENERATOR is null or [RELATEDQUERYVIEW].[USEINREPORTMODELGENERATOR] = @USEINREPORTMODELGENERATOR);

  /* Always return this info. Do not filter out based on user rights.  Security will be checked outside this SP.
  and (
      @IS_SYS_ADMIN  = 1
      or (dbo.[UFN_SECURITY_APPUSER_CANACCESS_QUERYVIEW](@APPUSERID, [Q].[ROOTQUERYVIEWID]) = 1
          and
          dbo.[UFN_SECURITY_APPUSER_CANACCESS_QUERYVIEW](@APPUSERID, [Q].[RELATEDQUERYVIEWID]) = 1)
  );
  */

  return 0;
end