USP_DATAFORMTEMPLATE_ADD_MARKETINGSURVEYQUESTION

The save procedure used by the add dataform template "Marketing Survey Question Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CONTEXTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(50) IN Name
@QUESTIONTEXT nvarchar(75) IN Question
@ISACTIVE bit IN Mark question active
@ANSWERS xml IN Answers

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_MARKETINGSURVEYQUESTION
                (
                    @ID uniqueidentifier = null output,
                    @CONTEXTID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @NAME nvarchar(50),
                    @QUESTIONTEXT nvarchar(75),
                    @ISACTIVE bit = 1,
                    @ANSWERS xml = null
                )
                as

                set nocount on;

                if @ID is null
                    set @ID = newid()

                if @CHANGEAGENTID is null  
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                begin try
                    -- add the question

                    insert into dbo.MARKETINGSURVEYQUESTION
                        (ID, NAME, QUESTIONTEXT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                    values
                        (@ID, @NAME, @QUESTIONTEXT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

                    -- configure the question for the current sales method

                    insert into dbo.SALESMETHODMARKETINGSURVEYCONFIGURATION
                        (ID, SALESMETHODID, MARKETINGSURVEYQUESTIONID, ISACTIVE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                    values
                        (newid(), @CONTEXTID, @ID, @ISACTIVE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

                    if @ANSWERS is not null
                    begin
                        -- add the answers

                        insert into dbo.MARKETINGSURVEYANSWER
                            (ID, MARKETINGSURVEYQUESTIONID, ANSWERTEXT, ISACTIVE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        select
                            newid(),
                            @ID,
                            T.items.value('(ANSWERTEXT)[1]','nvarchar(100)'),
                            T.items.value('(ISACTIVE)[1]','bit'),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        from @ANSWERS.nodes('/ANSWERS/ITEM') T(items)
                    end

                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch

                return 0