USP_DATALIST_CREATEORUPDATE_CLR

Registers a stored procedure based datalist in the catalog.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@NAME nvarchar(60) IN
@DESCRIPTION nvarchar(1000) IN
@ASSEMBLYNAME nvarchar(128) IN
@CLASSNAME nvarchar(128) IN
@CONTEXTRECORDTYPE nvarchar(50) IN
@CONTEXTPARAMETER nvarchar(128) IN
@PARAMETERDEFXML xml IN
@RSSFEEDDEFXML xml IN
@OUTPUTDEFXML xml IN
@STATICPARAMETERDEFINITION xml IN
@DATALISTSPECXML xml IN
@CHANGEAGENTID uniqueidentifier IN
@TASKREMINDERDEFINITION xml IN
@SPECUINAME nvarchar(60) IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_CREATEORUPDATE_CLR
    @ID uniqueidentifier = null output
    @NAME nvarchar(60),
    @DESCRIPTION nvarchar(1000) = '',
    @ASSEMBLYNAME nvarchar(128),
    @CLASSNAME nvarchar(128),
    @CONTEXTRECORDTYPE nvarchar(50) = '',
    @CONTEXTPARAMETER nvarchar(128) = '',
    @PARAMETERDEFXML xml = null,
    @RSSFEEDDEFXML xml = null,
    @OUTPUTDEFXML xml,
    @STATICPARAMETERDEFINITION xml = null,
    @DATALISTSPECXML xml,
    @CHANGEAGENTID uniqueidentifier = null,
    @TASKREMINDERDEFINITION xml = null,
    @SPECUINAME nvarchar(60) = N''
as

--this routine registers a stored procedure based datalist in the catalog

set nocount on;

declare @RecTypeID uniqueidentifier;
declare @ExistingID uniqueidentifier;

if @SPECUINAME is null
    set @SPECUINAME = N'';

if @ID is null
    begin
      select @ExistingID = ID from dbo.DATALISTCATALOG where NAME = @NAME;
      set @ID = @ExistingID;
    end
else
    select @ExistingID = ID from dbo.DATALISTCATALOG where ID = @ID;

if @CHANGEAGENTID is null  exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

if @CONTEXTPARAMETER is null
    set @CONTEXTPARAMETER = '';

set @RecTypeID = null;
if len(@CONTEXTRECORDTYPE ) > 0
    --Add record type if it does not exist.        

    exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME @NAME=@CONTEXTRECORDTYPE,@CHANGEAGENTID=@CHANGEAGENTID,@RECORDTYPEID=@RecTypeID output;


declare @SECURITYUIFOLDER nvarchar(255);        
set @SECURITYUIFOLDER=
 coalesce(
        @DATALISTSPECXML.value(
                                '
                                declare namespace bbspec="bb_appfx_datalist";
                                declare namespace c="bb_appfx_commontypes";
                                /bbspec:DataListSpec[1]/@c:SecurityUIFolder
                                '
                                ,'nvarchar(255)')
        ,'');


if @ExistingID is null 

    begin
        if @ID is null set @ID = NewID();

        insert into dbo.DATALISTCATALOG (ID, [NAME], DESCRIPTION, ASSEMBLYNAME, CLASSNAME, IMPLEMENTATIONTYPE, RECORDTYPEID, CONTEXTPARAMETERNAME, PARAMETERDEFINITION, RSSFEEDDEFINITION, OUTPUTDEFINITION, STATICPARAMETERDEFINITION, DATALISTSPEC, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,SECURITYUIFOLDER,TASKREMINDERDEFINITION,SPECUINAME)
            values (@ID, @NAME, @DESCRIPTION, @ASSEMBLYNAME, @CLASSNAME, 1, @RecTypeID, @CONTEXTPARAMETER, @PARAMETERDEFXML, @RSSFEEDDEFXML, @OUTPUTDEFXML, @STATICPARAMETERDEFINITION, @DATALISTSPECXML, @CHANGEAGENTID, @CHANGEAGENTID, getdate(), getdate(),@SECURITYUIFOLDER,@TASKREMINDERDEFINITION,@SPECUINAME);
    end

else

    update dbo.DATALISTCATALOG 
    set 
        [NAME] = @NAME,
        DESCRIPTION = @DESCRIPTION,
        ASSEMBLYNAME = @ASSEMBLYNAME,
        CLASSNAME = @CLASSNAME,
        PROCEDURENAME = '',
        IMPLEMENTATIONTYPE = 1,
        RECORDTYPEID = @RecTypeID,
        CONTEXTPARAMETERNAME = @CONTEXTPARAMETER,
        PARAMETERDEFINITION = @PARAMETERDEFXML,
        RSSFEEDDEFINITION = @RSSFEEDDEFXML,
        OUTPUTDEFINITION = @OUTPUTDEFXML,
        STATICPARAMETERDEFINITION = @STATICPARAMETERDEFINITION,
        DATALISTSPEC = @DATALISTSPECXML,
        CHANGEDBYID = @CHANGEAGENTID,
        SECURITYUIFOLDER=@SECURITYUIFOLDER,
        DATECHANGED = getdate(),
        TASKREMINDERDEFINITION = @TASKREMINDERDEFINITION,
        SPECUINAME=@SPECUINAME
    where ID = @ExistingID;

if @@error <> 0 return 1;

return 0;