USP_DATALIST_CREATEORUPDATE_SP
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 | |
@PROCEDURE | nvarchar(128) | IN | |
@CONTEXTRECORDTYPE | nvarchar(50) | IN | |
@CONTEXTPARAMETER | nvarchar(128) | IN | |
@PARAMETERDEFXML | xml | IN | |
@RSSFEEDDEFXML | xml | IN | |
@OUTPUTDEFXML | xml | IN | |
@DATALISTSPECXML | xml | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@TASKREMINDERDEFINITION | xml | IN | |
@SPECUINAME | nvarchar(60) | IN | |
@MARTKEY | nvarchar(255) | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CREATEORUPDATE_SP
@ID uniqueidentifier = null output,
@NAME nvarchar(60),
@DESCRIPTION nvarchar(1000) = '',
@PROCEDURE nvarchar(128),
@CONTEXTRECORDTYPE nvarchar(50) = '',
@CONTEXTPARAMETER nvarchar(128) = '',
@PARAMETERDEFXML xml = null,
@RSSFEEDDEFXML xml = null,
@OUTPUTDEFXML xml,
@DATALISTSPECXML xml,
@CHANGEAGENTID uniqueidentifier = null,
@TASKREMINDERDEFINITION xml = null,
@SPECUINAME nvarchar(60) = N'',
@MARTKEY nvarchar(255) = null
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 @MARTKEY = ''
set @MARTKEY = null;
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 = '';
if len(@CONTEXTPARAMETER) > 0 and @MARTKEY is null
begin
declare @ParamName nvarchar(128);
select @ParamName =[name] FROM sys.parameters WHERE object_id = OBJECT_ID(@PROCEDURE) AND [name]='@' + @CONTEXTPARAMETER;
if @ParamName is null
begin
raiserror ('Parameter ''%s'' is not defined for procedure ''%s''.', 16, 1, @CONTEXTPARAMETER, @PROCEDURE);
return 2;
end
end
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], [PROCEDURENAME], [RECORDTYPEID], [CONTEXTPARAMETERNAME], [PARAMETERDEFINITION], [RSSFEEDDEFINITION], [OUTPUTDEFINITION], [DATALISTSPEC], [ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED], [SECURITYUIFOLDER], [TASKREMINDERDEFINITION], [SPECUINAME], [MARTKEY])
values (@ID, @NAME, @DESCRIPTION, @PROCEDURE, @RecTypeID, @CONTEXTPARAMETER, @PARAMETERDEFXML, @RSSFEEDDEFXML, @OUTPUTDEFXML, @DATALISTSPECXML, @CHANGEAGENTID, @CHANGEAGENTID, getdate(), getdate(), @SECURITYUIFOLDER, @TASKREMINDERDEFINITION, @SPECUINAME, @MARTKEY);
end
else
update dbo.[DATALISTCATALOG]
set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[PROCEDURENAME] = @PROCEDURE,
[ASSEMBLYNAME] = '',
[CLASSNAME] = '',
[IMPLEMENTATIONTYPE] = 0,
[RECORDTYPEID] = @RecTypeID,
[CONTEXTPARAMETERNAME] = @CONTEXTPARAMETER,
[PARAMETERDEFINITION] = @PARAMETERDEFXML,
[RSSFEEDDEFINITION] = @RSSFEEDDEFXML,
[STATICPARAMETERDEFINITION] = null,
[OUTPUTDEFINITION] = @OUTPUTDEFXML,
[DATALISTSPEC] = @DATALISTSPECXML,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = getdate(),
[SECURITYUIFOLDER] = @SECURITYUIFOLDER,
[TASKREMINDERDEFINITION] = @TASKREMINDERDEFINITION,
[SPECUINAME] = @SPECUINAME,
[MARTKEY] = @MARTKEY
where ID = @ExistingID;
if @@error <> 0 return 3;
return 0;