USP_WEBDASHBOARDCONTEXTRECORDHISTORY_ADD

Adds a record to the recently viewed context records for the web dashboard.

Parameters

Parameter Parameter Type Mode Description
@RECORDTYPEID uniqueidentifier IN
@APPUSERID uniqueidentifier IN
@RECORDID nvarchar(1000) IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_WEBDASHBOARDCONTEXTRECORDHISTORY_ADD(@RECORDTYPEID uniqueidentifier,
    @APPUSERID uniqueidentifier,
    @RECORDID nvarchar(1000),
    @CHANGEAGENTID uniqueidentifier)
as
    set nocount on;

    declare @EXISTINGID uniqueidentifier;

    select @EXISTINGID = ID from WEBDASHBOARDCONTEXTRECORDHISTORY where RECORDTYPEID = @RECORDTYPEID and APPUSERID = @APPUSERID and RECORDID = @RECORDID;

    if @EXISTINGID is null
    begin
        insert into dbo.WEBDASHBOARDCONTEXTRECORDHISTORY (RECORDTYPEID,
            APPUSERID,
            RECORDID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED)
        values (@RECORDTYPEID,
            @APPUSERID,
            @RECORDID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            getdate(),
            getdate());
    end
    else
    begin
        update dbo.WEBDASHBOARDCONTEXTRECORDHISTORY set CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = getdate() where ID = @EXISTINGID;
    end;

    declare @contextCache varbinary(128);

    /* cache current context information */
    set @contextCache = CONTEXT_INFO();

    /* set CONTEXT_INFO to @CHANGEAGENTID */
    if not @CHANGEAGENTID is null
        set CONTEXT_INFO @CHANGEAGENTID;

    delete from dbo.WEBDASHBOARDCONTEXTRECORDHISTORY 
    where APPUSERID = @APPUSERID 
        and RECORDTYPEID = @RECORDTYPEID and ID not in 
            (select top(5) ID 
            from dbo.WEBDASHBOARDCONTEXTRECORDHISTORY 
            where RECORDTYPEID = @RECORDTYPEID 
                and APPUSERID = @APPUSERID 
            order by DATECHANGED desc);

    /* reset CONTEXT_INFO to previous value */
    if not @contextCache is null
        set CONTEXT_INFO @contextCache;