USP_DASHBOARDCATALOG_CREATEORUPDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(1000) IN
@SPECXML xml IN
@CONTEXTRECORDTYPE nvarchar(100) IN
@ChangeAgentID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_DASHBOARDCATALOG_CREATEORUPDATE
                @ID uniqueidentifier = null output
                @NAME nvarchar(100), 
                @DESCRIPTION nvarchar(1000),                
                @SPECXML xml,
                @CONTEXTRECORDTYPE nvarchar(100),                                 
                @ChangeAgentID uniqueidentifier=null
            as

            set nocount on            

            if @NAME is null or @NAME = ''
                begin
                    raiserror ('Name was missing or blank', 16,1)
                    return 5        
                end

            if @DESCRIPTION is null or @DESCRIPTION = ''
                begin
                    raiserror ('Description was missing or blank', 16,1)
                    return 6        
                end


            declare @ExistingID uniqueidentifier

            if @ID is null
                begin
                  select @ExistingID = ID from dbo.DASHBOARDCATALOG where NAME = @NAME
                  set @ID = @ExistingID
                end
            else
                select @ExistingID = ID from dbo.DASHBOARDCATALOG where ID = @ID


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

            declare @date datetime
            set @date = getDate()

            declare @RecordTypeID uniqueidentifier;

            if len(coalesce(@CONTEXTRECORDTYPE,'')) > 0
                --Add record type if it does not exist.        
                begin
                    exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME @NAME=@CONTEXTRECORDTYPE,@CHANGEAGENTID=@CHANGEAGENTID,@RECORDTYPEID=@RecordTypeID output
                end

            declare @SECURITYUIFOLDER nvarchar(255);        
            set @SECURITYUIFOLDER = coalesce(@SPECXML.value(
                'declare namespace bbfa="bb_appfx_flashdash";declare namespace c="bb_appfx_commontypes";/bbfa:FlashDashSpec[1]/@c:SecurityUIFolder',
                'nvarchar(255)'
            ),'');

            if @ExistingID is null 
                begin
                    if @ID is null set @ID = NewID()

                    insert into dbo.DASHBOARDCATALOG
                        (ID, NAME, DESCRIPTION, SPECXML, CONTEXTRECORDTYPEID, SECURITYUIFOLDER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                    values 
                        (@ID, @NAME, @DESCRIPTION, @SPECXML, @RECORDTYPEID, @SECURITYUIFOLDER, @ChangeAgentID, @ChangeAgentID, @date, @date)
                end
            else
                begin
                    update dbo.DASHBOARDCATALOG
                        set NAME = @NAME,
                            DESCRIPTION = @DESCRIPTION,
                            SPECXML = @SPECXML,
                            CONTEXTRECORDTYPEID = @RECORDTYPEID,
                            SECURITYUIFOLDER = @SECURITYUIFOLDER,
                            CHANGEDBYID = @ChangeAgentID,
                            DATECHANGED = @date
                        where ID = @ID ;
                end

            if @@rowcount=0 return 3;

            return 0;