USP_WEBDASHBOARDPERSONALIZATIONPERUSER_CREATEORUPDATE

Creates or updates the data for the personalized version of a web dashboard page for a given user.

Parameters

Parameter Parameter Type Mode Description
@WEBDASHBOARDPAGENAME nvarchar(200) IN
@WEBDASHBOARDPATH nvarchar(1000) IN
@APPUSERID uniqueidentifier IN
@PAGESETTINGS varbinary IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_WEBDASHBOARDPERSONALIZATIONPERUSER_CREATEORUPDATE(@WEBDASHBOARDPAGENAME nvarchar(200),
    @WEBDASHBOARDPATH nvarchar(1000),
    @APPUSERID uniqueidentifier,
    @PAGESETTINGS varbinary(max),
    @CHANGEAGENTID uniqueidentifier)
as
    set nocount on;

    declare @WEBDASHBOARDPAGEID uniqueidentifier;
    declare @ID uniqueidentifier;

    select @WEBDASHBOARDPAGEID = WEBDASHBOARDPAGECATALOG.ID 
    from dbo.WEBDASHBOARDPAGECATALOG 
    left join dbo.WEBDASHBOARDFOLDER on WEBDASHBOARDPAGECATALOG.WEBDASHBOARDFOLDERID = WEBDASHBOARDFOLDER.ID
    where WEBDASHBOARDPAGECATALOG.NAME = @WEBDASHBOARDPAGENAME and ((@WEBDASHBOARDPATH = '' and WEBDASHBOARDPAGECATALOG.WEBDASHBOARDFOLDERID is null) or WEBDASHBOARDFOLDER.PATH = @WEBDASHBOARDPATH);

    if @WEBDASHBOARDPAGEID is null
    begin
        raiserror('The page does not exist, or it cannot be customized by the current user.', 16, 1);
        return;
    end;

    select @ID = ID 
        from dbo.WEBDASHBOARDPERSONALIZATIONPERUSER
        where WEBDASHBOARDPAGEID = @WEBDASHBOARDPAGEID
            and APPUSERID = @APPUSERID;

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

        insert into dbo.WEBDASHBOARDPERSONALIZATIONPERUSER (ID, 
            WEBDASHBOARDPAGEID,
            APPUSERID,
            PAGESETTINGS, 
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED)
        values (@ID
            @WEBDASHBOARDPAGEID,
            @APPUSERID,
            @PAGESETTINGS
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            getdate(),
            getdate());
    end
    else
    begin
        update dbo.WEBDASHBOARDPERSONALIZATIONPERUSER set PAGESETTINGS = @PAGESETTINGS
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = getdate()
        where ID = @ID;
    end;