USP_MKTEXPORTDEFINITION_ADDTOSYSTEMROLEPERM_DATALIST
Adds role permissions to an export definition's preview data list.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EXPORTDEFINITIONID | uniqueidentifier | IN | |
@DATALISTCATALOGID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTEXPORTDEFINITION_ADDTOSYSTEMROLEPERM_DATALIST]
(
@EXPORTDEFINITIONID uniqueidentifier,
@DATALISTCATALOGID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @MAILINGTYPECODE tinyint;
declare @QUERYVIEWCATALOGID uniqueidentifier;
declare @SYSTEMROLEID uniqueidentifier;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @MAILINGTYPECODE = dbo.[UFN_MKTEXPORTDEFINITION_GETMAILINGTYPECODEFROMID](@EXPORTDEFINITIONID);
if @MAILINGTYPECODE = 0
declare QUERYVIEWCATALOGCURSOR cursor local fast_forward for
select [ID] from dbo.[MKTRECORDSOURCE];
else if @MAILINGTYPECODE = 1 or @MAILINGTYPECODE = 5
declare QUERYVIEWCATALOGCURSOR cursor local fast_forward for
select [QUERYVIEWCATALOGID] from dbo.[MKTGIFTRECORDSOURCE];
else if @MAILINGTYPECODE = 2
declare QUERYVIEWCATALOGCURSOR cursor local fast_forward for
select [QUERYVIEWCATALOGID] from dbo.[MKTMEMBERSHIPRECORDSOURCE];
else if @MAILINGTYPECODE = 3
declare QUERYVIEWCATALOGCURSOR cursor local fast_forward for
select [QUERYVIEWCATALOGID] from dbo.[MKTSPONSORSHIPRECORDSOURCE];
open QUERYVIEWCATALOGCURSOR;
fetch next from QUERYVIEWCATALOGCURSOR into @QUERYVIEWCATALOGID;
while (@@FETCH_STATUS = 0)
begin
declare SYSTEMROLECURSOR cursor local fast_forward for
select distinct [SYSTEMROLE].[ID]
from dbo.[SYSTEMROLE]
inner join dbo.[SYSTEMROLEPERM_QUERYVIEW] on [SYSTEMROLE].[ID] = [SYSTEMROLEPERM_QUERYVIEW].[SYSTEMROLEID]
inner join dbo.[QUERYVIEWCATALOG] on [SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] = [QUERYVIEWCATALOG].[ID]
inner join [RECORDTYPE] on [QUERYVIEWCATALOG].[RECORDTYPEID] = [RECORDTYPE].[ID]
where [SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] = @QUERYVIEWCATALOGID;
open SYSTEMROLECURSOR;
fetch next from SYSTEMROLECURSOR into @SYSTEMROLEID;
while (@@FETCH_STATUS = 0)
begin
if not exists(select top 1 1 from dbo.[SYSTEMROLEPERM_DATALIST] where [SYSTEMROLEID] = @SYSTEMROLEID and [DATALISTCATALOGID] = @DATALISTCATALOGID)
insert into dbo.[SYSTEMROLEPERM_DATALIST] (
[SYSTEMROLEID],
[DATALISTCATALOGID],
[GRANTORDENY],
[ADDEDBYID],
[CHANGEDBYID]
) values (
@SYSTEMROLEID,
@DATALISTCATALOGID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID
);
fetch next from SYSTEMROLECURSOR into @SYSTEMROLEID;
end
close SYSTEMROLECURSOR;
deallocate SYSTEMROLECURSOR;
fetch next from QUERYVIEWCATALOGCURSOR into @QUERYVIEWCATALOGID;
end
close QUERYVIEWCATALOGCURSOR;
deallocate QUERYVIEWCATALOGCURSOR;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;