USP_SEARCHLIST_CREATEORUPDATE_CLR
Used by the platform SQLCLR to register a CLR-based search list in the catalog
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@NAME | nvarchar(60) | IN | |
@DESCRIPTION | nvarchar(1000) | IN | |
@RECORDTYPE | nvarchar(50) | IN | |
@ASSEMBLYNAME | nvarchar(128) | IN | |
@CLASSNAME | nvarchar(128) | IN | |
@FILTERDEFXML | xml | IN | |
@OUTPUTDEFXML | xml | IN | |
@STATICPARAMETERDEFINITION | xml | IN | |
@SEARCHLISTSPECXML | xml | IN | |
@TRANSLATIONFUNCTIONCATALOGID | uniqueidentifier | IN | |
@QUICKFINDFIELD | nvarchar(100) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SPECUINAME | nvarchar(60) | IN |
Definition
Copy
CREATE procedure [dbo].[USP_SEARCHLIST_CREATEORUPDATE_CLR]
@ID uniqueidentifier = null output,
@NAME nvarchar(60),
@DESCRIPTION nvarchar(1000) = '',
@RECORDTYPE nvarchar(50),
@ASSEMBLYNAME nvarchar(128),
@CLASSNAME nvarchar(128),
@FILTERDEFXML xml,
@OUTPUTDEFXML xml,
@STATICPARAMETERDEFINITION xml = null,
@SEARCHLISTSPECXML xml,
@TRANSLATIONFUNCTIONCATALOGID uniqueidentifier,
@QUICKFINDFIELD nvarchar(100) = '',
@CHANGEAGENTID uniqueidentifier = null,
@SPECUINAME nvarchar(60) = N''
as
--this routine registers a CLR based search in the catalog
set nocount on;
declare @RecTypeID uniqueidentifier;
declare @ExistingID uniqueidentifier;
if @CHANGEAGENTID is null exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @SPECUINAME is null
set @SPECUINAME = N'';
if @ID is null
begin
select @ExistingID = ID from dbo.SEARCHLISTCATALOG where NAME = @NAME;
set @ID = @ExistingID;
end
else
select @ExistingID = ID from dbo.SEARCHLISTCATALOG where ID = @ID;
declare @SECURITYUIFOLDER nvarchar(255);
set @SECURITYUIFOLDER = coalesce(@SEARCHLISTSPECXML.value(
'
declare namespace bbspec="bb_appfx_searchlist";
declare namespace c="bb_appfx_commontypes";
/bbspec:SearchListSpec[1]/@c:SecurityUIFolder
'
,'nvarchar(255)')
,'');
if @SECURITYUIFOLDER is null
set @SECURITYUIFOLDER = '';
--Add record type if it does not exist.
exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME @NAME=@RECORDTYPE,@CHANGEAGENTID=@CHANGEAGENTID,@RECORDTYPEID=@RecTypeID output;
if @ExistingID is null
begin
if @ID is null set @ID = NewID();
insert into dbo.SEARCHLISTCATALOG (IMPLEMENTATIONTYPE, ID, [NAME], DESCRIPTION, ASSEMBLYNAME, CLASSNAME, RECORDTYPEID, FILTERFORMDEFINITION, OUTPUTDEFINITION, STATICPARAMETERDEFINITION, SEARCHLISTSPEC, TRANSLATIONFUNCTIONCATALOGID, QUICKFINDFIELD, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, SECURITYUIFOLDER, SPECUINAME)
values (1, @ID, @NAME, @DESCRIPTION, @ASSEMBLYNAME, @CLASSNAME, @RecTypeID, @FILTERDEFXML, @OUTPUTDEFXML, @STATICPARAMETERDEFINITION, @SEARCHLISTSPECXML, @TRANSLATIONFUNCTIONCATALOGID, @QUICKFINDFIELD, @CHANGEAGENTID, @CHANGEAGENTID, getdate(), getdate(), @SECURITYUIFOLDER, @SPECUINAME);
end
else
update dbo.SEARCHLISTCATALOG
set
IMPLEMENTATIONTYPE=1,
[NAME] = @NAME,
DESCRIPTION = @DESCRIPTION,
ASSEMBLYNAME = @ASSEMBLYNAME,
CLASSNAME= @CLASSNAME,
RECORDTYPEID = @RecTypeID,
FILTERFORMDEFINITION = @FILTERDEFXML,
OUTPUTDEFINITION = @OUTPUTDEFXML,
STATICPARAMETERDEFINITION = @STATICPARAMETERDEFINITION,
SEARCHLISTSPEC = @SEARCHLISTSPECXML,
TRANSLATIONFUNCTIONCATALOGID = @TRANSLATIONFUNCTIONCATALOGID,
QUICKFINDFIELD = @QUICKFINDFIELD,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = getdate(),
SECURITYUIFOLDER = @SECURITYUIFOLDER,
SPECUINAME = @SPECUINAME
where ID = @ExistingID
if @@error <> 0 return 3;
return 0;