USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENT_2
USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENT_2
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. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@SEGMENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@CODE | nvarchar(10) | IN | Code |
@QUERYVIEWCATALOGID | uniqueidentifier | IN | Record source |
@SELECTIONS | xml | IN | Selections |
@GROUPS | xml | IN | Groups |
@ALLOWCODEUPDATE | bit | IN | Allow code update? |
@CODEVALUEID | uniqueidentifier | IN | Code value ID |
Definition
Copy
CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENT_2]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@SEGMENTCATEGORYCODEID uniqueidentifier,
@CODE nvarchar(10),
@QUERYVIEWCATALOGID uniqueidentifier,
@SELECTIONS xml,
@GROUPS xml,
@ALLOWCODEUPDATE bit,
@CODEVALUEID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @SEGMENTTYPECODE tinyint;
if exists (select top 1 1 from dbo.[MKTSEGMENT] where [ID] = @ID and [ISSYSTEM] = 1)
begin
raiserror('ERR_MKTSEGMENT_ISSYSTEMSEGMENT', 13, 1);
return 1;
end
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
select
@SEGMENTTYPECODE = [SEGMENTTYPECODE],
@CURRENTDATE = getdate()
from dbo.[MKTSEGMENT]
where [ID] = @ID;
/* Save the segment */
update dbo.[MKTSEGMENT] set
[NAME] = @NAME,
[DESCRIPTION] = @DESCRIPTION,
[SEGMENTCATEGORYCODEID] = @SEGMENTCATEGORYCODEID,
[CODE] = (case when @ALLOWCODEUPDATE = 1 then @CODE else [CODE] end),
[QUERYVIEWCATALOGID] = @QUERYVIEWCATALOGID,
[PARTDEFINITIONVALUESID] = @CODEVALUEID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
/* Save all the new selections */
exec dbo.[USP_MKTSEGMENT_GETSELECTIONS_UPDATEFROMXML] @ID, null, @SELECTIONS, @CHANGEAGENTID, @CURRENTDATE;
/* Save all the groups */
exec dbo.[USP_MKTSEGMENT_GETGROUPS_UPDATEFROMXML] @ID, @GROUPS, @CHANGEAGENTID, @CURRENTDATE;
if @SEGMENTTYPECODE not in (2, 6, 7, 8, 9) and @QUERYVIEWCATALOGID is not null
/* Create the view and add it to IDSETREGISTER (not for list or public media segments) */
exec dbo.[USP_MKTSEGMENT_CREATEORUPDATEVIEW] @ID, @CHANGEAGENTID;
/* Update the segment with the selected code */
if @ALLOWCODEUPDATE = 1
exec dbo.[USP_MKTSEGMENT_UPDATECODE] @ID, @CODE, @CODEVALUEID, @CHANGEAGENTID, 1;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;