UFN_FUNDINGREQUEST_STEPSWITHCHILDREN_FROMITEMLISTXML

Used to convert an xml string to a table.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ITEMLISTXML xml IN

Definition

Copy


            CREATE function [dbo].[UFN_FUNDINGREQUEST_STEPSWITHCHILDREN_FROMITEMLISTXML]
            (
                @ITEMLISTXML xml
            ) 
            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)[1]') else null end AS 'ADDITIONALFUNDRAISERS',
                case when T.c.exist('./PARTICIPANTS/ITEM') = 1 then T.c.query('(PARTICIPANTS)[1]') else null end AS 'PARTICIPANTS',
                T.c.value('(COMMENT)[1]','nvarchar(max)') as 'COMMENT',
                T.c.value('(CONSTITUENTID)[1]','uniqueidentifier') as 'CONSTITUENTID',
                T.c.value('(EXPECTEDDATE)[1]','datetime') 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('(OBJECTIVE)[1]','nvarchar(100)') as'OBJECTIVE',
                T.c.value('(FUNDINGREQUESTOUTLINESTEPID)[1]','uniqueidentifier') as 'FUNDINGREQUESTOUTLINESTEPID',
                T.c.value('(FUNDINGREQUESTSTAGECODEID)[1]','uniqueidentifier') as 'FUNDINGREQUESTSTAGECODEID',
                T.c.value('(STATUSCODE)[1]','tinyint') as 'STATUSCODE'
            from @ITEMLISTXML.nodes('/STEPS/ITEM') T(c)
            )