USP_DATAFORMTEMPLATE_ADD_APPUSERFEEDALERT

The save procedure used by the add dataform template "Application User Feed Alert Add Form".

Parameters

Parameter Parameter Type Mode Description
@ALERTTYPEID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@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.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@NAME nvarchar(100) IN Name
@CONTEXTRECORDID nvarchar(100) IN Context record ID
@PARAMETERDATAFORMITEM xml IN Parameter definition

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_APPUSERFEEDALERT
(
    @ALERTTYPEID uniqueidentifier,
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @NAME nvarchar(100) = null,
    @CONTEXTRECORDID nvarchar(100) = '',
    @PARAMETERDATAFORMITEM xml = null
) as
begin

    if dbo.UFN_APPUSER_GRANTEDALERTTYPE(@CURRENTAPPUSERID, @ALERTTYPEID) = 0
        raiserror('APPUSERNOTGRANTEDALERTTYPE', 13, 1);

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

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

    if @ID is null
        set @ID = newid();

    begin try
        --For user-defined feed alerts, create a new instance


        declare @FEEDALERTINSTANCEID uniqueidentifier;
        set @FEEDALERTINSTANCEID = newid();

        insert into dbo.FEEDALERTINSTANCE 
        (
            ID,
            ALERTTYPEID,
            NAME,
            PARAMETERDATAFORMITEM,
            CONTEXTRECORDID,
            ISUSERINSTANCE,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        ) values (
            @FEEDALERTINSTANCEID,
            @ALERTTYPEID,
            @NAME,
            @PARAMETERDATAFORMITEM,
            coalesce(@CONTEXTRECORDID, N''),
            1,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        --Then, assign that instance to the appuser 

        insert into dbo.APPUSERFEEDALERTINSTANCE (
            ID,
            APPUSERID,
            FEEDALERTINSTANCEID,
            DATELASTPROCESSED,
            DATEADDED,
            DATECHANGED,
            ADDEDBYID,
            CHANGEDBYID
        ) values (
            @ID,
            @CURRENTAPPUSERID,
            @FEEDALERTINSTANCEID,
            getdate(),
            @CURRENTDATE,
            @CURRENTDATE,
            @CHANGEAGENTID,
            @CHANGEAGENTID
        );

    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1;
    end catch

    return 0;

end