USP_MKTCOMMUNICATIONNAMESCHEME_COPY
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@UNIQUENAME | nvarchar(100) | IN | |
@MKTSEGMENTATIONID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTCOMMUNICATIONNAMESCHEME_COPY]
(
@ID uniqueidentifier output,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@UNIQUENAME nvarchar(100),
@MKTSEGMENTATIONID uniqueidentifier = null
)
as
set nocount on;
declare @SOURCENAMESCHEMEID uniqueidentifier;
declare @TARGETNAMESCHEMEID uniqueidentifier;
declare @PARENTCOMMUNICATIONNAMESCHEMEID uniqueidentifier;
declare @ORIGINALPARENTCOMMUNICATIONNAMESCHEMEID uniqueidentifier;
begin try
set @SOURCENAMESCHEMEID = @ID;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
declare @SITEID uniqueidentifier;
declare @NAMEPARTS xml;
declare @ISACTIVE bit;
/* load existing name pattern */
exec dbo.[USP_DATAFORMTEMPLATE_EDITLOAD_MKTCOMMUNICATIONNAMESCHEME]
@ID = @SOURCENAMESCHEMEID,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@SITEID = @SITEID output,
@NAMEPARTS = @NAMEPARTS output,
@ISACTIVE = @ISACTIVE output;
/* remove nameparts ids, unique ids will be added back in the name pattern add */
set @NAMEPARTS.modify('delete (/NAMEPARTS/ITEM/@ID)')
if @MKTSEGMENTATIONID is not null
begin
set @PARENTCOMMUNICATIONNAMESCHEMEID = @SOURCENAMESCHEMEID;
-- when copying for an effort we need to get the top level template
select
@ORIGINALPARENTCOMMUNICATIONNAMESCHEMEID = [MKTCOMMUNICATIONNAMESCHEME].[PARENTCOMMUNICATIONNAMESCHEMEID]
from
dbo.[MKTCOMMUNICATIONNAMESCHEME]
where
[MKTCOMMUNICATIONNAMESCHEME].[ID] = @SOURCENAMESCHEMEID;
if @ORIGINALPARENTCOMMUNICATIONNAMESCHEMEID is not null
set @PARENTCOMMUNICATIONNAMESCHEMEID = @ORIGINALPARENTCOMMUNICATIONNAMESCHEMEID;
end
/* create the copy of the name pattern */
exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTCOMMUNICATIONNAMESCHEME]
@ID = @TARGETNAMESCHEMEID output,
@CHANGEAGENTID = @CHANGEAGENTID,
@NAME = @UNIQUENAME,
@SITEID = @SITEID,
@NAMEPARTS = @NAMEPARTS,
@MKTSEGMENTATIONID = @MKTSEGMENTATIONID,
@PARENTCOMMUNICATIONNAMESCHEMEID = @PARENTCOMMUNICATIONNAMESCHEMEID;
/* update active status */
update dbo.[MKTCOMMUNICATIONNAMESCHEME]
set
[ISACTIVE] = @ISACTIVE,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = getdate()
where [ID] = @TARGETNAMESCHEMEID;
/* return the new name pattern ID */
set @ID = @TARGETNAMESCHEMEID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;