USP_SYSTEMROLE_COPYBUSINESSPROCESSPERMISSIONS

Parameters

Parameter Parameter Type Mode Description
@NEWFEATUREID uniqueidentifier IN
@PERMISSIONEDFEATUREID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy

create procedure dbo.[USP_SYSTEMROLE_COPYBUSINESSPROCESSPERMISSIONS]
(
  @NEWFEATUREID uniqueidentifier,
  @PERMISSIONEDFEATUREID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier
)
as
  --Used for revisions
  set nocount on;

  begin try
    declare @CURRENTDATE datetime;

    set @CURRENTDATE = getdate();

    if @CHANGEAGENTID is null
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    insert into dbo.[SYSTEMROLEPERM_BUSINESSPROCESS]
    (
      [SYSTEMROLEID],
      [BUSINESSPROCESSCATALOGID],
      [GRANTORDENY],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    )
    select
      [SYSTEMROLEID],
      @NEWFEATUREID,
      [GRANTORDENY],
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    from dbo.[SYSTEMROLEPERM_BUSINESSPROCESS]
    where [BUSINESSPROCESSCATALOGID] = @PERMISSIONEDFEATUREID
    and not exists(select top 1 [SUB].[ID]
                   from dbo.[SYSTEMROLEPERM_BUSINESSPROCESS] as [SUB]
                   where [SUB].[BUSINESSPROCESSCATALOGID] = @NEWFEATUREID
                   and [SUB].[SYSTEMROLEID] = [SYSTEMROLEPERM_BUSINESSPROCESS].[SYSTEMROLEID])
    and exists(select top 1 [CAT].[ID] from dbo.[BUSINESSPROCESSCATALOG] as [CAT] where [CAT].[ID] = @NEWFEATUREID);
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;