USP_SMARTFIELD_ADDINSTANCE
Saves a new smart field instance.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SMARTFIELDCATALOGID | uniqueidentifier | IN | |
@SMARTFIELDDATAFORMITEM | xml | IN | |
@SMARTFIELDVALUEGROUPS | xml | IN | |
@NAME | nvarchar(100) | IN | |
@USEVALUEGROUP | bit | IN | |
@SYSTEMFIELD | bit | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@DATAFORMINSTANCECATALOGID | uniqueidentifier | IN | |
@DATEVALUEGROUPUNITCODE | tinyint | IN | |
@SOURCEQUERYVIEWCATALOGID | uniqueidentifier | IN | |
@SITESSELECTED | xml | IN | |
@SITEFILTERENABLEDFORINSTANCE | bit | IN | |
@DESCRIPTION | nvarchar(4000) | IN | |
@FEATUREID | uniqueidentifier | IN | |
@FEATURETYPE | tinyint | IN | |
@CURRENCYID | uniqueidentifier | IN | |
@SMARTFIELDCATEGORYCODEID | uniqueidentifier | IN | |
@SHOWINFUNDRAISERONTHEGO | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_SMARTFIELD_ADDINSTANCE
(
@ID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@SMARTFIELDCATALOGID uniqueidentifier,
@SMARTFIELDDATAFORMITEM xml = null,
@SMARTFIELDVALUEGROUPS xml = null,
@NAME nvarchar(100) = '',
@USEVALUEGROUP bit = 0,
@SYSTEMFIELD bit = 0,
@CURRENTAPPUSERID uniqueidentifier,
@DATAFORMINSTANCECATALOGID uniqueidentifier,
@DATEVALUEGROUPUNITCODE tinyint = 0,
@SOURCEQUERYVIEWCATALOGID uniqueidentifier = null,
@SITESSELECTED xml = null,
@SITEFILTERENABLEDFORINSTANCE bit = 0,
@DESCRIPTION nvarchar(4000) = '',
@FEATUREID uniqueidentifier = null,
@FEATURETYPE tinyint = 0,
@CURRENCYID uniqueidentifier = null,
@SMARTFIELDCATEGORYCODEID uniqueidentifier = null,
@SHOWINFUNDRAISERONTHEGO bit = 0
)
as
set nocount on;
declare @CURRENTDATE datetime;
begin try
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
insert into dbo.SMARTFIELD
(ID, NAME, DESCRIPTION, SMARTFIELDCATALOGID, SMARTFIELDDATAFORMITEM, USEVALUEGROUP, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, SYSTEMFIELD, DATEVALUEGROUPUNITCODE, SOURCEQUERYVIEWCATALOGID, SITEFILTERENABLEDFORINSTANCE, CURRENCYID, SMARTFIELDCATEGORYCODEID, SHOWINFUNDRAISERONTHEGO)
values
(@ID, @NAME, isnull(@DESCRIPTION, ''), @SMARTFIELDCATALOGID, @SMARTFIELDDATAFORMITEM, @USEVALUEGROUP, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @SYSTEMFIELD, @DATEVALUEGROUPUNITCODE, @SOURCEQUERYVIEWCATALOGID, @SITEFILTERENABLEDFORINSTANCE, @CURRENCYID, @SMARTFIELDCATEGORYCODEID, @SHOWINFUNDRAISERONTHEGO);
set @SMARTFIELDVALUEGROUPS = dbo.UFN_SMARTFIELDVALUEGROUP_GETGROUPS_2_SETITEMLISTXMLDEFAULTVALUES(@SMARTFIELDVALUEGROUPS);
exec dbo.USP_SMARTFIELDVALUEGROUP_GETGROUPS_2_ADDFROMXML @ID, @SMARTFIELDVALUEGROUPS, @CHANGEAGENTID, @CURRENTDATE
if @SITEFILTERENABLEDFORINSTANCE = 1
begin
-- Verify the user has permission for the sites being added
/*
this is no longer valid now that the smart field add/edit forms are NoSecurityRequired="true", SecurityUIDisplayFeature="false"
if exists ( select SITEID from dbo.UFN_SMARTFIELDSITES_GET_FROMITEMLISTXML(@SITESSELECTED)
where
SITEID not in ( select SITEID
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID, @FEATUREID, @FEATURETYPE)))
raiserror('BBERR_NOPERMISSIONFORSITE', 13, 1);
*/
exec dbo.USP_SMARTFIELDSITES_GET_ADDFROMXML @ID, @SITESSELECTED, @CHANGEAGENTID, @CURRENTDATE
end
/*
this is no longer valid now that the smart field add/edit forms are NoSecurityRequired="true", SecurityUIDisplayFeature="false"
else if (dbo.UFN_APPUSER_HASALLSITESFORFORM(@CURRENTAPPUSERID, @FEATUREID) = 0 and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('133f9bca-00f1-4007-9792-586b931340c6') = 1)
raiserror('BBERR_NOPERMISSIONTODISABLESITESECURITY', 13, 1);
*/
exec dbo.USP_SMARTFIELD_CREATESMARTFIELDTABLE @ID, @CHANGEAGENTID
--Retrieve the ID of the query view that was created for this smart field.
declare @QUERYVIEWID uniqueidentifier
select
@QUERYVIEWID = QUERYVIEWCATALOG.ID
from
dbo.SMARTFIELD
inner join dbo.TABLECATALOG on TABLECATALOG.ID = SMARTFIELD.TABLECATALOGID
inner join dbo.QUERYVIEWCATALOG on QUERYVIEWCATALOG.OBJECTNAME = 'V_QUERY_' + TABLECATALOG.TABLENAME
where
SMARTFIELD.NAME = @NAME and
QUERYVIEWCATALOG.DISPLAYNAME = @NAME and
SMARTFIELD.SMARTFIELDCATALOGID = @SMARTFIELDCATALOGID
--Grant permission to that query view to each role the current user is in that grants rights to this add form.
insert into dbo.SYSTEMROLEPERM_QUERYVIEW
(ID, SYSTEMROLEID, QUERYVIEWCATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select
newid(), ROLELIST.SYSTEMROLEID, @QUERYVIEWID, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from
dbo.UFN_APPUSER_GETSYSTEMROLELIST(@CURRENTAPPUSERID) as ROLELIST
inner join dbo.SYSTEMROLEPERM_DATAFORMINSTANCE on SYSTEMROLEPERM_DATAFORMINSTANCE.SYSTEMROLEID = ROLELIST.SYSTEMROLEID
where
SYSTEMROLEPERM_DATAFORMINSTANCE.DATAFORMINSTANCECATALOGID = @DATAFORMINSTANCECATALOGID
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;