USP_TASKCATALOG_CREATEORUPDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(max) IN
@FUNCTIONALAREAID uniqueidentifier IN
@TASKGROUP nvarchar(100) IN
@TASKSPECXML xml IN
@SEQUENCE int IN
@CHANGEAGENTID uniqueidentifier IN
@ISFUNCTIONALAREADEFAULT bit IN

Definition

Copy


CREATE procedure dbo.USP_TASKCATALOG_CREATEORUPDATE
    @ID uniqueidentifier = null output
    @NAME nvarchar(100),
    @DESCRIPTION nvarchar(max) = '',
    @FUNCTIONALAREAID uniqueidentifier,
    @TASKGROUP nvarchar(100) = '',
    @TASKSPECXML xml, 
    @SEQUENCE integer,
    @CHANGEAGENTID uniqueidentifier = null,
    @ISFUNCTIONALAREADEFAULT bit = null
as
begin
    set nocount on

    declare @ExistingID uniqueidentifier

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

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

    if @TASKGROUP is null
        set @TASKGROUP = ''

    if @ISFUNCTIONALAREADEFAULT is null
        set @ISFUNCTIONALAREADEFAULT = 0

    declare @date datetime
    set @date = getDate()

    if @ExistingID is null 

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

            insert into dbo.TASKCATALOG
            (ID, [NAME], DESCRIPTION, FUNCTIONALAREAID, TASKGROUP, TASKSPECXML, SEQUENCE, ISFUNCTIONALAREADEFAULT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values 
            (@ID, @NAME, @DESCRIPTION, @FUNCTIONALAREAID, @TASKGROUP, @TASKSPECXML, @SEQUENCE, @ISFUNCTIONALAREADEFAULT, @ChangeAgentID, @ChangeAgentID, @date, @date)        
        end

    else
        update dbo.TASKCATALOG
            set [NAME] = @NAME,
                DESCRIPTION = @DESCRIPTION,
                FUNCTIONALAREAID = @FUNCTIONALAREAID,
                TASKGROUP = @TASKGROUP,
                TASKSPECXML = @TASKSPECXML,
                SEQUENCE = @SEQUENCE,
                ISFUNCTIONALAREADEFAULT = @ISFUNCTIONALAREADEFAULT,
                CHANGEDBYID = @ChangeAgentID,
                DATECHANGED = @date
            where ID = @ID;

    if @@rowcount=0 return 1;

    return 0;
end