USP_DATAFORMTEMPLATE_ADD_SMARTFIELD
The save procedure used by the add dataform template "Smart Field Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@SMARTFIELDCATALOGID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@SMARTFIELDDATAFORMITEM | xml | IN | |
@SMARTFIELDVALUEGROUPS | xml | IN | |
@NAME | nvarchar(100) | IN | Name |
@USEVALUEGROUP | bit | IN | |
@SYSTEMFIELD | bit | IN | SYSTEMFIELD |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SMARTFIELD(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@SMARTFIELDCATALOGID uniqueidentifier,
@SMARTFIELDDATAFORMITEM xml = null,
@SMARTFIELDVALUEGROUPS xml = null,
@NAME nvarchar(100) = '',
@USEVALUEGROUP bit = 0,
@SYSTEMFIELD bit = 0,
@CURRENTAPPUSERID uniqueidentifier
)
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, SMARTFIELDCATALOGID, SMARTFIELDDATAFORMITEM, USEVALUEGROUP, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, SYSTEMFIELD)
values
(@ID, @NAME, @SMARTFIELDCATALOGID, @SMARTFIELDDATAFORMITEM, @USEVALUEGROUP, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @SYSTEMFIELD);
exec dbo.USP_SMARTFIELDVALUEGROUP_GETGROUPS_ADDFROMXML @ID, @SMARTFIELDVALUEGROUPS, @CHANGEAGENTID, @CURRENTDATE
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=qv.ID
from SMARTFIELD sf
join TABLECATALOG t on t.ID=sf.TABLECATALOGID
join QUERYVIEWCATALOG qv on qv.OBJECTNAME='V_QUERY_' + t.TABLENAME
where sf.NAME=@NAME
and qv.DISPLAYNAME=@NAME
and sf.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 SYSTEMROLEPERM_QUERYVIEW
(ID,SYSTEMROLEID,QUERYVIEWCATALOGID,GRANTORDENY,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
select newid(),r.SYSTEMROLEID, @QUERYVIEWID,1,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
from dbo.UFN_APPUSER_GETSYSTEMROLELIST(@CURRENTAPPUSERID) r
join SYSTEMROLEPERM_DATAFORMINSTANCE p on p.SYSTEMROLEID=r.SYSTEMROLEID
where p.DATAFORMINSTANCECATALOGID='1441C214-BF50-4701-B4B8-5FD3EBF41577'
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;