UFN_ADDPROSPECTPLANPROCESS_STEPS_FROMITEMLISTXML
Used to convert an xml string to a table.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ITEMLISTXML | xml | IN | |
@PLANSTARTDATE | datetime | IN |
Definition
Copy
CREATE function [dbo].[UFN_ADDPROSPECTPLANPROCESS_STEPS_FROMITEMLISTXML]
(
@ITEMLISTXML xml,
@PLANSTARTDATE datetime
)
returns table as
return
(
select
T.c.value('(ACTUALDATE)[1]','datetime') as 'ACTUALDATE',
case when T.c.exist('./ADDITIONALFUNDRAISERS/ITEM') = 1 then T.c.query('(ADDITIONALFUNDRAISERS/ITEM)[1]') else null end AS 'ADDITIONALFUNDRAISERS',
case when T.c.exist('./PARTICIPANTS/ITEM') = 1 then T.c.query('(PARTICIPANTS/ITEM)[1]') else null end AS 'PARTICIPANTS',
T.c.value('(COMMENT)[1]','nvarchar(max)') as 'COMMENT',
T.c.value('(CONSTITUENTID)[1]','uniqueidentifier') as 'CONSTITUENTID',
coalesce(T.c.value('(EXPECTEDDATE)[1]','datetime'), dateadd(day, T.c.value('(DATEOFFSET)[1]','int'), dbo.UFN_DATE_GETEARLIESTTIME(@PLANSTARTDATE))) as 'EXPECTEDDATE',
-- Rename OWNERID to FUNDRAISERID. The SP that updates the values requires the field to be FUNDRAISERID since
-- that is the table's column name but the form needs to use OWNERID since a collection also uses FUNDRAISERID
-- and that causes an issue with searchlists.
case when T.c.exist('./OWNERID') = 1 then T.c.value('(OWNERID)[1]','uniqueidentifier') else null end as 'FUNDRAISERID',
T.c.value('(HASADDITIONALFUNDRAISERS)[1]','int') as 'HASADDITIONALFUNDRAISERS',
T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
T.c.value('(INTERACTIONTYPECODEID)[1]','uniqueidentifier') as 'INTERACTIONTYPECODEID',
T.c.value('(INTERACTIONSUBCATEGORYID)[1]','uniqueidentifier') as 'INTERACTIONSUBCATEGORYID',
T.c.value('(OBJECTIVE)[1]','nvarchar(100)') as'OBJECTIVE',
T.c.value('(PLANOUTLINESTEPID)[1]','uniqueidentifier') as 'PLANOUTLINESTEPID',
T.c.value('(PROSPECTPLANSTATUSCODEID)[1]','uniqueidentifier') as 'PROSPECTPLANSTATUSCODEID',
T.c.value('(STATUSCODE)[1]','tinyint') as 'STATUSCODE',
T.c.value('(EXPECTEDSTARTTIME)[1]','dbo.UDT_HOURMINUTE') as 'EXPECTEDSTARTTIME',
T.c.value('(EXPECTEDENDTIME)[1]','dbo.UDT_HOURMINUTE') as 'EXPECTEDENDTIME',
T.c.value('(TIMEZONEENTRYID)[1]','uniqueidentifier') as 'TIMEZONEENTRYID',
case when T.c.value('(EXPECTEDSTARTTIME)[1]','dbo.UDT_HOURMINUTE') = '' then 1 else 0 end as 'ISALLDAYEVENT',
T.c.value('(ACTUALSTARTTIME)[1]','dbo.UDT_HOURMINUTE') as 'ACTUALSTARTTIME',
T.c.value('(ACTUALENDTIME)[1]','dbo.UDT_HOURMINUTE') as 'ACTUALENDTIME'
from @ITEMLISTXML.nodes('/STEPS/ITEM') T(c)
)