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;