USP_DATAFORMTEMPLATE_VIEW_COMMUNITYMEMBERMOSTFREQUENTPAGES

The load procedure used by the view dataform template "Community Member Pages Most Frequently Visited View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@NETCOMMUNITYCLIENTUSERID uniqueidentifier INOUT NETCOMMUNITYCLIENTUSERID
@TOPPAGES xml INOUT Top pages

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_COMMUNITYMEMBERMOSTFREQUENTPAGES
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @NETCOMMUNITYCLIENTUSERID uniqueidentifier = null output,
    @TOPPAGES xml = null output 
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows

    set @DATALOADED = 0;

    declare @pagetable table (PAGENAME nvarchar(50), URL nvarchar(2047), VISITCOUNT int);
    declare @pagetemptable table (PAGENAME nvarchar(50), URL nvarchar(2047), VISITCOUNT int);
    create table #NETCOMMUNITYCLIENTUSERIDSTABLE(ROWINDEX int identity(1,1),ID uniqueidentifier);
      declare @ROWINDEX int = 1,@ROWCOUNT int = 0;
    -- SP to populate data in temp table and determine the row count

    exec dbo.USP_BBNC_GETNETCOMMUNITYCLIENTUSERIDS @ID,@ROWCOUNT output;

      while(@ROWINDEX <= @ROWCOUNT)
      begin
          select @NETCOMMUNITYCLIENTUSERID = ID from #NETCOMMUNITYCLIENTUSERIDSTABLE where ROWINDEX = @ROWINDEX;

           -- default VIEWFILTER = 2 (month), top 5 pages

          insert into @pagetemptable
              exec dbo.USP_DATALIST_COMMUNITYMEMBERMOSTFREQUENTPAGES @NETCOMMUNITYCLIENTUSERID, 2, 5;

          set @ROWINDEX = @ROWINDEX +1;
      end

      insert into @pagetable(PAGENAME,URL,VISITCOUNT)
              select PAGENAME,URL,sum(VISITCOUNT) from @pagetemptable group by PAGENAME,URL;

    set @TOPPAGES = 
        (select
            PAGENAME,
            URL,
            VISITCOUNT
        from @pagetable
        for xml raw('ITEM'),type,elements,root('TOPPAGES'),BINARY BASE64)

    set @DATALOADED = 1;
    drop table #NETCOMMUNITYCLIENTUSERIDSTABLE;
    return 0;