USP_DATAFORMTEMPLATE_ADD_PDACCOUNTSEGMENTMAPBATCHCOMMIT

The save procedure used by the add dataform template "Account Segment Mapping Batch Row Commit Add Form".

Parameters

Parameter Parameter Type Mode Description
@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.
@VALIDATEONLY bit IN
@PDACCOUNTSTRUCTUREID uniqueidentifier IN Segment type
@LONGDESCRIPTIONID uniqueidentifier IN Segment name
@PDACCOUNTSEGMENTVALUEID uniqueidentifier IN Segment value

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PDACCOUNTSEGMENTMAPBATCHCOMMIT(
    @ID uniqueidentifier output,
    @CHANGEAGENTID uniqueidentifier,
    @VALIDATEONLY bit = 0,
    @PDACCOUNTSTRUCTUREID uniqueidentifier,
    @LONGDESCRIPTIONID uniqueidentifier,
    @PDACCOUNTSEGMENTVALUEID uniqueidentifier
)
as
    set nocount on;

    -- Look for an existing record, and get it's ID  bug 86606 & 86590

    Select @ID = ID From pdAccountSegmentMapping 
      where PDACCOUNTSTRUCTUREID = @PDACCOUNTSTRUCTUREID and LONGDESCRIPTIONID = @LONGDESCRIPTIONID            

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

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

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

    begin try;

    with newitems (ID, PDACCOUNTSTRUCTUREID, LONGDESCRIPTIONID, PDACCOUNTSEGMENTVALUEID)
    as (select @ID, @PDACCOUNTSTRUCTUREID, @LONGDESCRIPTIONID, @PDACCOUNTSEGMENTVALUEID)
    merge into dbo.PDACCOUNTSEGMENTMAPPING as T1
    using newitems as T2
    on T1.ID = @ID
    when matched then
        update set
            PDACCOUNTSEGMENTVALUEID = @PDACCOUNTSEGMENTVALUEID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
    when not matched then
        insert
            (
                ID,
                PDACCOUNTSTRUCTUREID,
                LONGDESCRIPTIONID,
                PDACCOUNTSEGMENTVALUEID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            )
            values
            (
                @ID,
                @PDACCOUNTSTRUCTUREID,
                @LONGDESCRIPTIONID,
                @PDACCOUNTSEGMENTVALUEID,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );


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

    return 0;