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;