USP_MKTSEGMENTGROUP_COPY
Executes the "Segment Group: Copy" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTGROUP_COPY]
(
@ID uniqueidentifier output,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @SOURCEID uniqueidentifier;
declare @TARGETID uniqueidentifier;
declare @NAME nvarchar(100);
declare @SITEID uniqueidentifier;
declare @CURRENTDATE datetime;
declare @BASECURRENCYID uniqueidentifier;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @SOURCEID = @ID;
set @TARGETID = newid();
set @CURRENTDATE = getdate();
begin try
--Get a unique segment group name...
select
@NAME = dbo.[UFN_MKTSEGMENTGROUP_GETUNIQUENAME](@TARGETID, [NAME], null),
@SITEID = [SITEID]
from dbo.[MKTSEGMENTGROUP]
where [ID] = @ID;
select @BASECURRENCYID = [BASECURRENCYID] from dbo.[MKTSEGMENTGROUP] where [ID] = @SOURCEID;
--Create a new segment group...
insert into dbo.[MKTSEGMENTGROUP] (
[ID],
[NAME],
[SITEID],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED],
[BASECURRENCYID]
) values (
@TARGETID,
@NAME,
@SITEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@BASECURRENCYID
);
--Copy the segments from the old group into the new group...
insert into dbo.[MKTGROUPSEGMENTS] (
[ID],
[SEGMENTID],
[SEGMENTGROUPID],
[SEQUENCE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
select
newid(),
[SEGMENTID],
@TARGETID,
[SEQUENCE],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.[MKTGROUPSEGMENTS]
where [SEGMENTGROUPID] = @SOURCEID;
set @ID = @TARGETID;
exec dbo.[USP_MKTSEGMENTGROUPREFRESHPROCESS_SAVE] @ID, @CHANGEAGENTID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;