3 Protocol Details
3.1 Server Details
3.1.4 Message Processing Events and Sequencing Rules
3.1.4.51 proc_GetChanges
@ListId: The list identifier of the list (1) whose properties need to be fetched.
Return values: An integer that the protocol client MUST ignore.
Result sets: MUST return the AllListsPlus Properties Result Set (section 3.1.4.50.1).
3.1.4.50.1 AllListsPlus Properties Result Set
The AllListsPlus Properties Result Set returns no rows if the list (1) specified does not exist, else it returns one row. The T-SQL syntax for the result set is as follows:
ValidationFormula nvarchar(1024), ValidationMessage nvarchar(1024);
ValidationFormula: A Unicode string that can be used to perform custom validation rules prior to the list (1) being updated. This MUST be an expression as specified by [MS-WSSTS] section 2.9.
ValidationMessage: A Unicode string (or strings) that are suitable to display in a user interface when the list (1) fails validation based on ValidationFormula.
3.1.4.51 proc_GetChanges
The proc_GetChanges stored procedure is called to get a range of events from the change log specified by the parameters. The T-SQL syntax for the stored procedure is as follows:
PROCEDURE proc_GetChanges(
@SiteId uniqueidentifier, @WebId uniqueidentifier, @ListId uniqueidentifier, @ChangeTime datetime,
@ChangeNumber bigint, @ChangeTimeEnd datetime, @ChangeNumberEnd bigint, @ObjectTypeMask int, @EventTypeMask int, @MaxChanges bigint, @IgnoreChangeNumberIfNotFound bit,
@RequestGuid uniqueidentifier = NULL OUTPUT );
@SiteId: The site collection identifier of the site collection with which the events are associated. If this parameter is NULL, events from all site collections MUST be included.
@WebId: The site identifier of the site (2).
@ListId: The list identifier of the list (1) with which the events are associated. If this parameter is NULL, then all events in the change log that have an empty site identifier MUST be included.
@ChangeTime: A time stamp in Coordinated Universal Time (UTC). This parameter defines the lower bound time stamp of the events returned from the change log. If @ChangeTime is NULL and
@ChangeNumber is NULL then the first event (1) in the change log MUST begin the range of events included in the result. If @ChangeTime is NULL and @ChangeNumber is NOT NULL, then the event (1) with change number equal to @ChangeNumber, or the first event (1) in the change log if no such event (1) exists, MUST begin the range of events (1) included. If @ChangeTime is not NULL and @ChangeNumber is NULL, then the first event (1) that occurred before
@ChangeTime, or the first event (1) in the change log if no such event (1) exists, MUST begin the range of events (1) included in the result. If @ChangeTime is NOT NULL and @ChangeNumber is NOT NULL, then the event (1) with the change log identifier that matches @ChangeNumber MUST begin the range of events (1) included in the result unless the time stamp of the event (1) does not match @ChangeTime, in which case the beginning event (1) in the result is determined using the @IgnoreChangeNumberIfNotFound parameter.
@ChangeNumber: The lower bound change log identifier of the events to be included in the result.
@ChangeTimeEnd: A time stamp in Coordinated Universal Time (UTC). This parameter defines the upper bound time stamp of the events returned from the change log. If this parameter is NULL, then the upper bound will be the time stamp of the most recent event (1) in the change log.
@ChangeNumberEnd: The upper bound change log identifier of the events (1) returned from the change log. If this parameter is NOT NULL, then the @ChangeTimeEnd parameter MUST be ignored.
@ObjectTypeMask: A bit mask that specifies the type of objects upon which an event (1) had happened. Valid values for this flag are defined in Event Object Type Flags (section 2.2.3.1).
@EventTypeMask: A bit mask that specifies the type of an event (1). Valid values for this flag are defined in Event Type Flags (section 2.2.3.2).
@MaxChanges: The maximum number of events (1) to return.
@IgnoreChangeNumberIfNotFound: If @IgnoreChangeNumberIfNotFound is zero, and
@ChangeNumber and @ChangeTime are both not NULL, and they do not correspond to the same event (1) in the change log, then @ChangeNumber MUST be ignored in the determination of the set of events (1) in the change log. If @IgnoreChangeNumberIfNotFound is one and
@ChangeNumber and @ChangeTime are both not NULL, then @ChangeNumber MUST NOT be ignored in the determination of the set of events (1) in the change log. In that case, if
@ChangeNumber and @ChangeTime do not correspond to the same event (1), then zero rows must be returned in the EventInformation Result Set (section 3.1.4.51.1).
@RequestGuid: The optional request identifier for the current request.
Return values: An integer that the protocol client MUST ignore.
Result sets: MUST return two result sets in the order of the following sections.
3.1.4.51.1 EventInformation Result Set
The EventInformation Result Set returns the event (1) that has the smallest change log identifier in the change log. The EventInformation Result Set MUST return one row in the result set if an event (1) exists in the change log or zero rows if no event (1) exists in the change log. The T-SQL syntax for the result set is as follows:
EventTime datetime, Id bigint;
EventTime: A time stamp in Coordinated Universal Time (UTC) that specifies the time when this event (1) occurred.
Id: The change log identifier of this event (1).
3.1.4.51.2 EventDetails Result Set
The EventDetails Result Set returns details of events that satisfy the input parameters. The EventDetails Result Set MUST NOT contain more than @MaxChanges rows. The T-SQL syntax for the result set is as follows:
EventTime datetime, Id bigint,
SiteId uniqueidentifier, WebId uniqueidentifier, ListId uniqueidentifier, ItemId int,
DocId uniqueidentifier, Guid0 uniqueidentifier, Int0 int,
ContentTypeId varbinary(512), ItemFullUrl nvarchar(266), EventType int,
ObjectType int, TimeLastModified datetime, Int1 int;
EventTime: A time stamp in Coordinated Universal Time (UTC) that specifies when this event (1) occurred.
Id: The change log identifier of this event (1).
SiteId: This value is a change log SiteId (section 2.2.2.11).
WebId: This value is a change log WebId (section 2.2.2.12).
ListId: This value is a change log ListId (section 2.2.2.1).
ItemId: This value is a change log ItemId (section 2.2.2.2).
DocId: This value is a change log DocId (section 2.2.2.3).
Guid0: This value is a change log Guid0 (section 2.2.2.4).
Int0: This value is a change log Int0 (section 2.2.2.5).
ContentTypeId: This value is a change log ContentTypeId (section 2.2.2.6).
ItemFullUrl: This value is a change log ItemFullUrl (section 2.2.2.7).
EventType: A bit mask that specifies the type of an event (1). Valid values of this flag are defined in Bit Fields and Flag Structures (section 2.2.3).
ObjectType: A bit mask that specifies the type of object upon which an event (1) had happened.
Valid values of this flag are defined in Simple Data Types and Enumerations (section 2.2.1).
TimeLastModified: This value is specified in Change Log TimeLastModified (section 2.2.2.8).
Int1: This value is a change log Int1 (section 2.2.2.10).