USP_DATAFORMTEMPLATE_EDIT_PDACCOUNTSEGMENTMAP

The save procedure used by the edit dataform template "Account Segment Map Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@PDACCOUNTSTRUCTUREID nvarchar(36) IN Structure id
@LONGDESCRIPTIONID nvarchar(36) IN Long description id
@PDACCOUNTSEGMENTVALUEID nvarchar(36) IN Segment value

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PDACCOUNTSEGMENTMAP (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @PDACCOUNTSTRUCTUREID nvarchar(36),
    @LONGDESCRIPTIONID nvarchar(36),
    @PDACCOUNTSEGMENTVALUEID nvarchar(36)
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        merge dbo.PDACCOUNTSEGMENTMAPPING as Target
        using (select     
        @ID as ID,
        @CHANGEAGENTID as CHANGEAGENTID,
        @PDACCOUNTSTRUCTUREID as PDACCOUNTSTRUCTUREID,
        @LONGDESCRIPTIONID as LONGDESCRIPTIONID,    
        @PDACCOUNTSEGMENTVALUEID as PDACCOUNTSEGMENTVALUEID,
        @CURRENTDATE as CURRENTDATE)
        as Source
        on (Target.LongDescriptionID = Source.LongDescriptionID)
        when matched then
            update set Target.PDACCOUNTSEGMENTVALUEID = Source.PDACCOUNTSEGMENTVALUEID,
                Target.CHANGEDBYID = Source.CHANGEAGENTID,
                Target.DATECHANGED = Source.CURRENTDATE
        when not matched by Target then
            insert (PDACCOUNTSTRUCTUREID,LONGDESCRIPTIONID,PDACCOUNTSEGMENTVALUEID,ISDEFAULT,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
            values (Source.PDACCOUNTSTRUCTUREID, Source.LONGDESCRIPTIONID, Source.PDACCOUNTSEGMENTVALUEID,0, Source.CHANGEAGENTID, Source.CHANGEAGENTID, Source.CURRENTDATE, Source.CURRENTDATE);
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;