USP_DATAFORMTEMPLATE_VIEW_SMARTQUERY_DEFINITIONS

The load procedure used by the view dataform template "Smart Query Source View Form"

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@SMARTQUERYDEFINITIONS_COMMON xml INOUT SMARTQUERYDEFINITIONS_COMMON
@SMARTQUERYDEFINITIONS xml INOUT Select a Query Type

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_SMARTQUERY_DEFINITIONS
(
    @CURRENTAPPUSERID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @SMARTQUERYDEFINITIONS_COMMON xml = null output,
    @SMARTQUERYDEFINITIONS xml = null output
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows

    set @DATALOADED = 1;

    declare @DEFINITIONS table
    (
        ID uniqueidentifier,
        NAME nvarchar(60),     
        RECORDTYPE nvarchar(50),
        [DESCRIPTION] nvarchar(1000)
    )

    insert into @DEFINITIONS
    (
        ID,
        NAME,
        [DESCRIPTION],
        RECORDTYPE
    )
    select
        SMARTQUERYCATALOG.ID, 
        SMARTQUERYCATALOG.NAME, 
        SMARTQUERYCATALOG.DESCRIPTION, 
        RECORDTYPE.NAME 'RECORDTYPE'
    from dbo.SMARTQUERYCATALOG
        inner join dbo.RECORDTYPE on SMARTQUERYCATALOG.RECORDTYPEID = RECORDTYPE.ID
    where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
            or dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTQUERY_IN_SYSTEMROLE(@CURRENTAPPUSERID,SMARTQUERYCATALOG.ID) = 1
        )
        and 1 = dbo.UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED
                    (
                        SMARTQUERYCATALOG.[SMARTQUERYSPEC].query
                            (
                                'declare namespace common="bb_appfx_commontypes";
                                /*/common:InstalledProductList'
                            )
                    )
    order by RECORDTYPE.NAME, SMARTQUERYCATALOG.NAME

    select
          @SMARTQUERYDEFINITIONS = (
                select
                      DEFINITIONS.ID,
                      DEFINITIONS.NAME,
                      DEFINITIONS.RECORDTYPE as GROUPTYPE,
                      DEFINITIONS.DESCRIPTION     
                from @DEFINITIONS DEFINITIONS
                order by GROUPTYPE, NAME
                for xml raw('ITEM'),type,elements,root('SMARTQUERYDEFINITIONS'),binary base64
          ),
          @SMARTQUERYDEFINITIONS_COMMON = (
                select top(5)
                      DEFINITIONS.ID,
                      DEFINITIONS.NAME,
                      DEFINITIONS.RECORDTYPE as GROUPTYPE,
                      DEFINITIONS.DESCRIPTION
                from @DEFINITIONS DEFINITIONS
                      inner join dbo.SMARTQUERYINSTANCE on DEFINITIONS.ID = SMARTQUERYINSTANCE.SMARTQUERYCATALOGID
                group by
                      DEFINITIONS.ID,
                      DEFINITIONS.NAME,
                      DEFINITIONS.RECORDTYPE,
                      DEFINITIONS.DESCRIPTION
                order by COUNT(SMARTQUERYINSTANCE.ID) desc
                for xml raw('ITEM'),type,elements,root('SMARTQUERYDEFINITIONS_COMMON'),binary base64
          )

    return 0;