Is anyone using the WordFly Pages integration? I'm working on configuring LP_WF_PAGE_RESPONSE_CUSTOM to write back responses to Special Activities and was wondering if anyone had any advice/suggestions based on their configuration.
Has anyone worked this out yet? We are trying to get this to be implemented.
Yep weve got it to work, with a bit of help from Tessitura Network and wonderful LP_WF_PAGE_RESPONSE_CUSTOM code for RSVPs. I'm working on Surveys with Sam @WF now
Heath Wilder,
Can you share any of your code as a starting place for use at LSC?
Sara Broderick has shared a nice bit of code for RSVPs.
thought you'd never ask dgh's how to guide is in there as well.
Re__RSVP_SPROC.zip
USE [impresario] GO /****** Object: StoredProcedure [dbo].[LP_WF_PAGE_RESPONSE_CUSTOM] Script Date: 15/06/2019 9:04:53 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: WordFly -- Create date: 2018 -- Custom for BDT May 2019 -- 2019-06-15 Adapted by DGH at MIAF to accomodate spec_act_no that are not always two digits -- ============================================= ALTER PROCEDURE [dbo].[LP_WF_PAGE_RESPONSE_CUSTOM] @pageResponseId int AS BEGIN SET NOCOUNT ON; declare @pageId int ,@customer_no int ,@emailAddress varchar(80) ,@corr_id varchar(5000) ,@spec_act_no int ,@spec_act_desc varchar(30) ,@spec_act_date datetime ,@spec_act_response_date datetime ,@spec_act_name varchar(500) ,@spec_act_notes varchar(255) ,@resp_status int ,@num_attendees int ,@attrib_no int ,@pageType int create table #rsvp_page_responses( id int identity(1,1), name varchar(500), url varchar(5000), customer_no int, email varchar(80), resp_dt datetime, question varchar(max), answer varchar(max)) select top 1 @pageId = PageId,@customer_no = customer_no,@emailAddress = Email from LT_WF_PAGE_RESPONSE with (nolock) where Id = @pageResponseId select @corr_id = a.CorrelationId, @pageType = PageTypeId from LT_WF_PAGE a with (nolock) where a.Id = @pageId --RSVP Response Special Activity Creation ------------------------------------------------------------------------------------------------------------------------------- if @pageType = 1 begin set @spec_act_no = 0 set @attrib_no = 0 -- set @spec_act_date = '2000-01-01 00:00:00:0000' --Retrieve the Activity or Attribute no from the CorrelationId if substring(@corr_id, 1,8) = 'Activity' /* 2019-06-15 DGH MIAF edit This was designed for BDT, where their spec_act_no from TR_SPECIAL_ACTIVITY must be two characters. This is not the case in all environments... */ -- set @spec_act_no = cast(substring(@corr_id, 10,2) as int) /* We do this instead, because the @corr_id is always the same format: Activity:X_20xx-xx-xx So we can look at anything between the : and _ to get the spec_act_no, and it will always work */ set @spec_act_no = cast(substring(@corr_id,CHARINDEX(':',@corr_id)+1,CHARINDEX('_',@corr_id)-CHARINDEX(':',@corr_id)-1) as int) if substring(@corr_id, 1,8) = 'Activity' and @corr_id like '%_%' set @spec_act_date = substring(@corr_id, charindex('_', @corr_id )+1, len(@corr_id)) else if substring(@corr_id, 1,9) = 'Attribute' set @attrib_no = cast(substring(@corr_id, 11,500) as int) --Obtain special activity description if @spec_act_no <> 0 begin select @spec_act_desc = sp.description from dbo.TR_SPECIAL_ACTIVITY sp (NOLOCK) where sp.id = @spec_act_no --Insert answers into temp table insert into #rsvp_page_responses (name, url, customer_No, email, resp_dt, question, answer) select a.Name, a.Url, c.customer_no, c.Email, c.PageResponseDate, b.Question, d.Answer from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id inner join LT_WF_PAGE_RESPONSE c with (nolock) on c.PageId = a.Id inner join LT_WF_PAGE_FIELD_RESPONSE d with (nolock) on d.PageFieldId = b.Id and d.PageResponseId = c.Id where c.Id = @pageResponseId --Debug --select @spec_act_no as 'special code' --select @spec_act_desc as 'special activity' --select @attrib_no as 'attribute code' --select * from #rsvp_page_responses --Determine special activity status from answers 2=Declined, 4=Accepted, 1=Invited select @resp_status = case when answer = 'yes' then 4 when answer = 'no' then 2 else 1 end from #rsvp_page_responses where id = 1 --Select number of attendees, rsvp name, and response date select @num_attendees = cast(answer as int), @spec_act_name = name, @spec_act_response_date = resp_dt from #rsvp_page_responses where id = 2 --Select notes from responses select @spec_act_notes = substring(answer,1,255) from #rsvp_page_responses where id = 3 select @spec_act_date select cast(@spec_act_date as datetime) --Insert or update retrieved data into Special Activity table if not exists (select sa_no from dbo.T_SPECIAL_ACTIVITY (nolock) where customer_no = @customer_no and sp_act = @spec_act_no and sp_act_dt = cast(@spec_act_date as datetime)) insert into dbo.T_SPECIAL_ACTIVITY (customer_no, sp_act, sp_act_dt, solicitor, perf, status, notes, num_attendees) values (@customer_no, @spec_act_no, cast(@spec_act_date as datetime), NULL, substring(@spec_act_name,1,20),@resp_status,@spec_act_notes,@num_attendees) else update dbo.T_SPECIAL_ACTIVITY set status = @resp_status, sp_act = @spec_act_no, perf = substring(@spec_act_name,1,20), notes = @spec_act_notes, num_attendees = @num_attendees where customer_no = @customer_no and sp_act = @spec_act_no and sp_act_dt = cast(@spec_act_date as datetime) end end --end -- RETURN RETURN --declare @pageId int,@customer_no int,@emailAddress varchar(80) --select top 1 @pageId = PageId,@customer_no = customer_no,@emailAddress = Email from LT_WF_PAGE_RESPONSE with (nolock) where Id = @pageResponseId --=== PAGE select * from LT_WF_PAGE a with (nolock) where a.Id = @pageId --== QUESTIONS select b.* from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id where a.Id = @pageId --== ANSWERS select b.Question, d.Answer, COUNT(*) as AnswerCount from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id inner join LT_WF_PAGE_RESPONSE c with (nolock) on c.PageId = a.Id inner join LT_WF_PAGE_FIELD_RESPONSE d with (nolock) on d.PageFieldId = b.Id and d.PageResponseId = c.Id where a.Id = @pageId group by b.Question, d.Answer order by b.Question,COUNT(*) desc --== SPECIFIED RESPONSE select a.Name,a.Url,c.customer_no,c.Email,c.PageResponseDate,b.Question,d.Answer from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id inner join LT_WF_PAGE_RESPONSE c with (nolock) on c.PageId = a.Id inner join LT_WF_PAGE_FIELD_RESPONSE d with (nolock) on d.PageFieldId = b.Id and d.PageResponseId = c.Id where c.Id = @pageResponseId --== ALL RESPONSES FOR THIS PAGE select a.Name,a.Url,c.customer_no,c.Email,c.PageResponseDate,b.Question,d.Answer from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id inner join LT_WF_PAGE_RESPONSE c with (nolock) on c.PageId = a.Id inner join LT_WF_PAGE_FIELD_RESPONSE d with (nolock) on d.PageFieldId = b.Id and d.PageResponseId = c.Id where a.Id = @pageId order by b.Id,c.Id desc --== ALL RESPONSES TO ALL PAGES FOR THIS CUSTOMER select a.Name,a.Url,c.customer_no,c.Email,c.PageResponseDate,b.Question,d.Answer from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id inner join LT_WF_PAGE_RESPONSE c with (nolock) on c.PageId = a.Id inner join LT_WF_PAGE_FIELD_RESPONSE d with (nolock) on d.PageFieldId = b.Id and d.PageResponseId = c.Id where c.customer_no = @customer_no order by b.Id,c.Id desc --== ALL RESPONSES TO ALL PAGES FOR THIS EMAIL select a.Name,a.Url,c.customer_no,c.Email,c.PageResponseDate,b.Question,d.Answer from LT_WF_PAGE a with (nolock) inner join LT_WF_PAGE_FIELD b with (nolock) on b.PageId = a.Id inner join LT_WF_PAGE_RESPONSE c with (nolock) on c.PageId = a.Id inner join LT_WF_PAGE_FIELD_RESPONSE d with (nolock) on d.PageFieldId = b.Id and d.PageResponseId = c.Id where c.Email = @emailAddress order by b.Id,c.Id desc END
I will take a look when I get a moment.
Thanks :-)
Heath Wilder
has done some testing and I believe that he has had some good results. Thank You.
Great news. I'm installing it for the wonderful Griffin Theatre folks this arvo as well.Happily I've just got our WordFly Surveys going too (thanks to Sam Orr)!