UFN_BBNC_CONSTITATTRIBUTEDATA
Returns a list of attributes for the specified constituent for Blackbaud Internet Solutions. The list may be filtered by attribute type.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | int | IN | |
@ATTRIBUTETYPEID | int | IN |
Definition
Copy
CREATE function dbo.UFN_BBNC_CONSTITATTRIBUTEDATA(@CONSTITUENTID int, @ATTRIBUTETYPEID int = null)
returns @TABLE table
(
ID int,
ATTRIBUTETYPEID int,
ATTRIBUTEDATATYPE tinyint,
COMMENTS nvarchar(max),
SEQUENCE int,
DESCRIPTION nvarchar(max),
TABLEENTRYID int,
CURRENCYISO4217 nvarchar(3)
)
as
begin
declare @BUILTINATTRIBID int;
set @ATTRIBUTETYPEID = coalesce(@ATTRIBUTETYPEID, 0);
/* ***
if @ATTRIBUTETYPEID = 0 or @ATTRIBUTETYPEID = 1
JamesWill 02/29/2008 CR294475-022508 Having a "Nickname" attribute is confusing BBNC (because of the "Nickname" ConstitData.Bio field)
-- Nickname
insert into @TABLE
(
ID,
ATTRIBUTETYPEID,
ATTRIBUTEDATATYPE,
COMMENTS,
SEQUENCE,
DESCRIPTION,
TABLEENTRYID
)
select
@CONSTITUENTID as ID,
convert(int, 1) as ATTRIBUTETYPEID, -- as defined in UFN_BBNC_ATTRIBUTETYPE_GETLIST
convert(tinyint, 1) as ATTRIBUTEDATATYPE, -- TEXT
'' as COMMENTS,
1 as SEQUENCE,
NICKNAME as [VALUE],
null as [TABLEENTRYID]
from
dbo.CONSTITUENT
where
CONSTITUENT.SEQUENCEID = @CONSTITUENTID;
*/
if @ATTRIBUTETYPEID = 0 or @ATTRIBUTETYPEID = 2
-- Interests
insert into @TABLE
(
ID,
ATTRIBUTETYPEID,
ATTRIBUTEDATATYPE,
COMMENTS,
SEQUENCE,
DESCRIPTION,
TABLEENTRYID
)
select
convert(int, row_number() over (order by CONSTITUENTINTEREST.DATEADDED)) as ID,
2 as ATTRIBUTETYPEID, -- as defined in UFN_BBNC_ATTRIBUTETYPE_GETLIST
convert(tinyint, 6) as ATTRIBUTEDATATYPE, -- TABLEENTRY
CONSTITUENTINTEREST.NOTE as COMMENTS,
1 as SEQUENCE,
CONSTITUENTINTERESTCODE.DESCRIPTION as [VALUE],
BBNCCODETABLEIDMAP.ID as [TABLEENTRYID]
from
dbo.CONSTITUENT
inner join
dbo.CONSTITUENTINTEREST on CONSTITUENT.ID = CONSTITUENTINTEREST.CONSTITUENTID
inner join dbo.CONSTITUENTINTERESTCODE
on CONSTITUENTINTEREST.CONSTITUENTINTERESTCODEID = CONSTITUENTINTERESTCODE.ID
inner join dbo.BBNCCODETABLEIDMAP
on CONSTITUENTINTERESTCODE.ID = BBNCCODETABLEIDMAP.TABLEENTRYID and BBNCCODETABLEIDMAP.CODETABLECATALOGID = '0C51D76A-D06C-4A63-88B6-4104BE00D11C'
where
CONSTITUENT.SEQUENCEID = @CONSTITUENTID;
-- Add any built-in attributes (DO NOT REMOVE OR MODIFY THIS SECTION!!)
if @ATTRIBUTETYPEID = 0 or @ATTRIBUTETYPEID > 499
begin
select @BUILTINATTRIBID = object_id('dbo.UFN_BBNC_CONSTITATTRIBUTEDATABUILTIN');
if @BUILTINATTRIBID > 0
insert into @TABLE
(
ID,
ATTRIBUTETYPEID,
ATTRIBUTEDATATYPE,
COMMENTS,
SEQUENCE,
DESCRIPTION,
TABLEENTRYID,
CURRENCYISO4217
)
select
ID,
ATTRIBUTETYPEID,
ATTRIBUTEDATATYPE,
COMMENTS,
SEQUENCE,
DESCRIPTION,
TABLEENTRYID,
CURRENCYISO4217
from
dbo.UFN_BBNC_CONSTITATTRIBUTEDATABUILTIN(@CONSTITUENTID,@ATTRIBUTETYPEID);
end;
return;
end;