spLogPageHit_BULK

Parameters

Parameter Parameter Type Mode Description
@XML xml IN

Definition

Copy

CREATE PROCEDURE [dbo].[spLogPageHit_BULK] (@XML as xml) AS

    DECLARE @idoc int
    DECLARE @Hit Table (
        [CLID] int,
        [CSID] int,
        [UID] int,
        [SID] nvarchar(64),
        [RQDT] datetime,
        [PGID] int,
        [SRID] int,
        [STID] int,
        [TCPIP] nvarchar(30),
        [RURL] ntext,
        [REID] int,
        [EJRID] int,
        [FRSID] int,
        [FRTID] int,
        [URL] nvarchar(1784),
        [UA] nvarchar(256),
        [GUID] nchar(36),
        [UPPGID] int,
        [CCPRELID] int,
        [DID] int
    )

    EXEC sp_xml_preparedocument @idoc OUTPUT, @XML

    INSERT INTO @Hit (
        [CLID],
        [CSID],
        [UID],
        [SID],
        [RQDT],
        [PGID],
        [SRID],
        [STID],
        [TCPIP],
        [RURL],
        [REID],
        [EJRID],
        [FRSID],
        [FRTID],
        [URL],
        [UA],
        [GUID],
        [UPPGID],
        [CCPRELID],
        [DID]
    )
    SELECT
        [CLID],
        [CSID],
        [UID],
        [SID],
        [RQDT],
        [PGID],
        [SRID],
        [STID],
        [TCPIP],
        [RURL],
        [REID] ,
        [EJRID],
        [FRSID],
        [FRTID],
        [URL],
        [UA],
        [GUID],
        [UPPGID],
        [CCPRELID],
        [DID]
    FROM OPENXML (@idoc, '/PageHitList/H', 2)
    WITH (
        [CLID] int,
        [CSID] int,
        [UID] int,
        [SID] nvarchar(64),
        [RQDT] datetime,
        [PGID] int,
        [SRID] int,
        [STID] int,
        [TCPIP] nvarchar(30),
        [RURL] ntext,
        [REID] int,
        [EJRID] int,
        [FRSID] int,
        [FRTID] int,
        [URL] nvarchar(1784),
        [UA] nvarchar(256),
        [GUID] nchar(36),
        [UPPGID] int,
        [CCPRELID] int,
        [DID] int
    )

    EXEC sp_xml_removedocument @idoc

    INSERT INTO Stats
    (
    ClientsID,
    ClientSitesID,
    userID,
    SessionID,
    RequestDate,
    PageID,
    SourceID,
    SourceTypeID,
    TCPIPAddress,
    ReferringPageURL,
    SourceREID,
    EmailJobRecipientID,
    FRSolicitorID,
    FRTeamID,
    URL,
    UserAgent,
    GUID,
    UserPersonalPageID,
    CCPRELID,
    DocumentID
    )

    SELECT
    [CLID],
    [CSID],
    [UID],
    [SID],
    [RQDT],
    [PGID],
    [SRID],
    [STID],
    [TCPIP],
    [RURL],
    [REID] ,
    [EJRID],
    [FRSID],
    [FRTID],
    [URL],
    [UA],
    [GUID],
    [UPPGID],
    [CCPRELID],
    [DID]
    FROM @Hit

    if exists (select * from @Hit where not [SRID] is null and [STID]=1)
        UPDATE Email_Recipient SET ClickedThrough = 1 
        FROM Email_Recipient ER inner join @Hit t on er.userid = t.[UID] and er.EmailID = t.[SRID] and t.[STID]=1


    if exists (select * from @Hit where not [UID] is null )
        UPDATE NetAccount SET OnlineStatus = 1, [OnlineStatusUpdateDate] = getUTCDate()
        FROM NetAccount NA inner join @Hit t on NA.ClientUsersID = t.[UID
        WHERE NA.ClientUsersID IS NOT NULL


    UPDATE NetAccount SET OnlineStatus = 0, [OnlineStatusUpdateDate] = NULL, UpdateDate = getUTCDate()
    WHERE OnlineStatus=1 AND
    DATEDIFF(MINUTE, dateadd(MINUTE,-20,getutcdate()),  OnlineStatusUpdateDate) < 0