USP_DATAFORMTEMPLATE_ADD_PROSPECTSEGMENTATION
The save procedure used by the add dataform template "Prospect Segmentation 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. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@OTHERSCANMODIFY | bit | IN | Others can modify |
@RESEARCHGROUPID | uniqueidentifier | IN | Research group |
@IDSETREGISTERID | uniqueidentifier | IN | Selection |
@PRIMARYVARIABLE | tinyint | IN | Select score/rating |
@SECONDARYVARIABLE1 | tinyint | IN | Select score/rating |
@SECONDARYVARIABLE2 | tinyint | IN | Secondary variable 2 |
@PRIMARYSECTIONS | xml | IN | |
@SECONDARYSECTIONS1 | xml | IN | |
@SECONDARYSECTIONS2 | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PROSPECTSEGMENTATION (
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = null,
@OTHERSCANMODIFY bit = 1,
@RESEARCHGROUPID uniqueidentifier = null,
@IDSETREGISTERID uniqueidentifier = null,
@PRIMARYVARIABLE tinyint,
@SECONDARYVARIABLE1 tinyint,
@SECONDARYVARIABLE2 tinyint = 0,
@PRIMARYSECTIONS xml = null,
@SECONDARYSECTIONS1 xml = null,
@SECONDARYSECTIONS2 xml = null
) as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @ID is null
set @ID = newid();
declare
@InfoMsg nvarchar(100),
@ErrorMessage nvarchar(1000),
@ErrorSeverity int,
@ErrorState int;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
--Validate the Section Counts
declare @PRIMARYSECTIONSCOUNT int;
declare @SECONDARYSECTIONS1COUNT int;
declare @SECONDARYSECTIONS2COUNT int;
select
@PRIMARYSECTIONSCOUNT = COUNT(T.c.value('(SEQUENCE)[1]','int'))
from
@PRIMARYSECTIONS.nodes('/PRIMARYSECTIONS/ITEM') T(c)
select
@SECONDARYSECTIONS1COUNT = COUNT(T.c.value('(SEQUENCE)[1]','int'))
from
@SECONDARYSECTIONS1.nodes('/SECONDARYSECTIONS1/ITEM') T(c)
select
@SECONDARYSECTIONS2COUNT = COUNT(T.c.value('(SEQUENCE)[1]','int'))
from
@SECONDARYSECTIONS2.nodes('/SECONDARYSECTIONS2/ITEM') T(c)
if @PRIMARYSECTIONSCOUNT < 1
raiserror ('ERR_PRIMARYSECTIONS_EMPTY',13,1);
if @SECONDARYSECTIONS1COUNT < 1
raiserror ('ERR_SECONDARYSECTIONS1_EMPTY',13,1);
if @SECONDARYSECTIONS2COUNT < 1 and @SECONDARYVARIABLE2 > 0
raiserror ('ERR_SECONDARYSECTIONS2_EMPTY',13,1);
if @SECONDARYSECTIONS1COUNT < @SECONDARYSECTIONS2COUNT
raiserror ('ERR_SECONDARYSECTIONS2_TOOMANY',13,1);
--Create Prospect Segmentation
insert into dbo.PROSPECTSEGMENTATION(
ID,
NAME,
DESCRIPTION,
OWNERID,
OTHERSCANMODIFY,
RESEARCHGROUPID,
IDSETREGISTERID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)values(
@ID,
@NAME,
@DESCRIPTION,
@CURRENTAPPUSERID,
@OTHERSCANMODIFY,
@RESEARCHGROUPID,
@IDSETREGISTERID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
--Create Primary Variable
declare @PRIMARYVARIABLEID uniqueidentifier
set @PRIMARYVARIABLEID =newid();
insert into dbo.PROSPECTSEGMENTATIONVARIABLE(
ID,
TYPECODE,
ISPRIMARY,
PROSPECTSEGMENTATIONID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)values(
@PRIMARYVARIABLEID,
@PRIMARYVARIABLE,
1,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
set @PRIMARYSECTIONS =
(select
T.c.value('(ID)[1]','uniqueidentifier') AS 'ID',
T.c.value('(SEQUENCE)[1]','int') AS 'SEQUENCE',
T.c.value('(LABEL)[1]','nvarchar(20)') AS 'LABEL',
isnull(T.c.value('(RANGELOW)[1]','int'),-1) AS 'RANGELOW',
isnull(T.c.value('(RANGEHIGH)[1]','int'), -1) AS 'RANGEHIGH',
T.c.value('(ESTIMATEDWEALTHLOWID)[1]','uniqueidentifier') AS 'ESTIMATEDWEALTHLOWID',
T.c.value('(ESTIMATEDWEALTHHIGHID)[1]','uniqueidentifier') AS 'ESTIMATEDWEALTHHIGHID',
T.c.value('(MAJORGIVINGCAPACITYLOWID)[1]','uniqueidentifier') AS 'MAJORGIVINGCAPACITYLOWID',
T.c.value('(MAJORGIVINGCAPACITYHIGHID)[1]','uniqueidentifier') AS 'MAJORGIVINGCAPACITYHIGHID',
T.c.value('(TARGETGIFTRANGELOWID)[1]','uniqueidentifier') AS 'TARGETGIFTRANGELOWID',
T.c.value('(TARGETGIFTRANGEHIGHID)[1]','uniqueidentifier') AS 'TARGETGIFTRANGEHIGHID',
T.c.value('(WEALTHESTIMATORRATINGLOWID)[1]','uniqueidentifier') AS 'WEALTHESTIMATORRATINGLOWID',
T.c.value('(WEALTHESTIMATORRATINGHIGHID)[1]','uniqueidentifier') AS 'WEALTHESTIMATORRATINGHIGHID'
from
@PRIMARYSECTIONS.nodes('/PRIMARYSECTIONS/ITEM') T(c)
for
xml raw('ITEM'),type,elements,root('PRIMARYSECTIONS'),BINARY BASE64
)
begin try
exec dbo.USP_PROSPECTSEGMENTATION_SECTIONS_PRIMARY_ADDFROMXML @PRIMARYVARIABLEID,
@PRIMARYSECTIONS,
@CHANGEAGENTID;
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50001';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
--Create Secondary Variable
declare @SECONDARYVARIABLEID uniqueidentifier
set @SECONDARYVARIABLEID =newid();
insert into dbo.PROSPECTSEGMENTATIONVARIABLE(
ID,
TYPECODE,
TYPE2CODE,
ISPRIMARY,
PROSPECTSEGMENTATIONID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)values(
@SECONDARYVARIABLEID,
@SECONDARYVARIABLE1,
@SECONDARYVARIABLE2,
0,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
declare @SECONDARYSECTIONS xml
set @SECONDARYSECTIONS =
(select
T.c.value('(ID)[1]','uniqueidentifier') AS 'ID',
T.c.value('(SEQUENCE)[1]','int') AS 'SEQUENCE',
T.c.value('(LABEL)[1]','nvarchar(20)') AS 'LABEL',
isnull(T.c.value('(RANGELOW)[1]','int'),-1) AS 'RANGELOW',
isnull(T.c.value('(RANGEHIGH)[1]','int'), -1) AS 'RANGEHIGH',
T.c.value('(ESTIMATEDWEALTHLOWID)[1]','uniqueidentifier') AS 'ESTIMATEDWEALTHLOWID',
T.c.value('(ESTIMATEDWEALTHHIGHID)[1]','uniqueidentifier') AS 'ESTIMATEDWEALTHHIGHID',
T.c.value('(MAJORGIVINGCAPACITYLOWID)[1]','uniqueidentifier') AS 'MAJORGIVINGCAPACITYLOWID',
T.c.value('(MAJORGIVINGCAPACITYHIGHID)[1]','uniqueidentifier') AS 'MAJORGIVINGCAPACITYHIGHID',
T.c.value('(TARGETGIFTRANGELOWID)[1]','uniqueidentifier') AS 'TARGETGIFTRANGELOWID',
T.c.value('(TARGETGIFTRANGEHIGHID)[1]','uniqueidentifier') AS 'TARGETGIFTRANGEHIGHID',
T.c.value('(WEALTHESTIMATORRATINGLOWID)[1]','uniqueidentifier') AS 'WEALTHESTIMATORRATINGLOWID',
T.c.value('(WEALTHESTIMATORRATINGHIGHID)[1]','uniqueidentifier') AS 'WEALTHESTIMATORRATINGHIGHID',
isnull(T2.c.value('(LABEL)[1]','nvarchar(20)'),'') AS 'LABEL2',
isnull(T2.c.value('(RANGELOW)[1]','int'),-1) AS 'RANGE2LOW',
isnull(T2.c.value('(RANGEHIGH)[1]','int'), -1) AS 'RANGE2HIGH',
T2.c.value('(ESTIMATEDWEALTHLOWID)[1]','uniqueidentifier') AS 'ESTIMATEDWEALTH2LOWID',
T2.c.value('(ESTIMATEDWEALTHHIGHID)[1]','uniqueidentifier') AS 'ESTIMATEDWEALTH2HIGHID',
T2.c.value('(MAJORGIVINGCAPACITYLOWID)[1]','uniqueidentifier') AS 'MAJORGIVINGCAPACITY2LOWID',
T2.c.value('(MAJORGIVINGCAPACITYHIGHID)[1]','uniqueidentifier') AS 'MAJORGIVINGCAPACITY2HIGHID',
T2.c.value('(TARGETGIFTRANGELOWID)[1]','uniqueidentifier') AS 'TARGETGIFTRANGE2LOWID',
T2.c.value('(TARGETGIFTRANGEHIGHID)[1]','uniqueidentifier') AS 'TARGETGIFTRANGE2HIGHID',
T2.c.value('(WEALTHESTIMATORRATINGLOWID)[1]','uniqueidentifier') AS 'WEALTHESTIMATORRATING2LOWID',
T2.c.value('(WEALTHESTIMATORRATINGHIGHID)[1]','uniqueidentifier') AS 'WEALTHESTIMATORRATING2HIGHID'
from
@SECONDARYSECTIONS1.nodes('/SECONDARYSECTIONS1/ITEM') T(c)
left join
@SECONDARYSECTIONS2.nodes('/SECONDARYSECTIONS2/ITEM') T2(c)
on
T.c.value('(SEQUENCE)[1]','int') = T2.c.value('(SEQUENCE)[1]','int')
for
xml raw('ITEM'),type,elements,root('SECONDARYSECTIONS'),BINARY BASE64
)
begin try
exec dbo.USP_PROSPECTSEGMENTATION_SECTIONS_SECONDARY_ADDFROMXML @SECONDARYVARIABLEID,
@SECONDARYSECTIONS,
@CHANGEAGENTID;
end try
begin catch
set @InfoMsg='BBERR_ORIGINAL_ERROR:50002';
raiserror (@InfoMsg,1,11);
select
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror(@ErrorMessage,@ErrorSeverity,@ErrorState);
return 1;
end catch
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;