SPWeb.GetChanges method (SPChangeToken, SPChangeToken)
取得在指定的一段時間登入的變更。
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
Public Function GetChanges ( _
changeToken As SPChangeToken, _
changeTokenEnd As SPChangeToken _
) As SPChangeCollection
'用途
Dim instance As SPWeb
Dim changeToken As SPChangeToken
Dim changeTokenEnd As SPChangeToken
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges(changeToken, _
changeTokenEnd)
public SPChangeCollection GetChanges(
SPChangeToken changeToken,
SPChangeToken changeTokenEnd
)
參數
changeToken
Type: Microsoft.SharePoint.SPChangeToken指定點在變更記錄檔位置的變更及變更的變更語彙基元傳回之後。
changeTokenEnd
Type: Microsoft.SharePoint.SPChangeToken變更語彙基元會傳回指定點在變更記錄檔位置的變更和之前的變更。
傳回值
Type: Microsoft.SharePoint.SPChangeCollection
所做的變更。
Exceptions
Exception | Condition |
---|---|
SPException | changeToken或changeTokenEnd指的是一個點之後,才開始目前的變更記錄檔。 |
備註
若要建構這個方法的SPChangeToken物件,傳遞SPChangeCollection.CollectionScope Web做為建構函式的第一個引數,目前物件的SPWeb.ID屬性,做為第二個引數和第三個引數的DateTime物件的值。
此外,可套用下列規則:
如果changeTokenEnd中的變更記錄檔的位置是在變更記錄檔中的changeToken位置之前,這個方法會傳回空集合。
如果changeToken是 null ,變更集合會傳回從目前的變更記錄檔的開頭開始。
如果changeTokenEnd是 null ,則會傳回變更集合會包含所有變更之後changeToken,單一集合的限制所指定的位置。如果更多的變更發生在這段期間,會傳回第一批次。
注意事項 |
---|
根據預設,變更記錄會保留資料的 60 天。若要變更預設的保留期限,請設定ChangeLogRetentionPeriod屬性。 |
Examples
下列範例是主控台應用程式,查詢在七天的期間內發生的變更的變更記錄檔。應用程式接著會列印到主控台的每個變更的相關資訊。
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.RootWeb)
{
SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
long total = 0;
SPChangeToken startToken = new SPChangeToken(
SPChangeCollection.CollectionScope.Web,
webSite.ID,
new DateTime(2008, 11, 17));
SPChangeToken endToken = new SPChangeToken(
SPChangeCollection.CollectionScope.Web,
webSite.ID,
new DateTime(2008, 11, 23));
SPChangeCollection changes = webSite.GetChanges(startToken, endToken);
while (changes.Count > 0)
{
total += changes.Count;
foreach (SPChange change in changes)
{
Console.WriteLine("\nDate: {0}", timeZone.UTCToLocalTime(change.Time).ToString());
Console.WriteLine("Object type: {0}", change.GetType().ToString());
Console.WriteLine("Change type: {0}", change.ChangeType);
}
startToken = changes.LastChangeToken;
changes = webSite.GetChanges(startToken, endToken);
}
Console.WriteLine("\nTotal changes = {0:#,#}", total);
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.RootWeb
Dim timeZone As SPTimeZone = webSite.RegionalSettings.TimeZone
Dim total As Long = 0
Dim startToken As New SPChangeToken(SPChangeCollection.CollectionScope.Web, _
webSite.ID, _
New DateTime(2008, 11, 17))
Dim endToken As New SPChangeToken(SPChangeCollection.CollectionScope.Web, _
webSite.ID, _
New DateTime(2008, 11, 23))
Dim changes As SPChangeCollection = webSite.GetChanges(startToken, endToken)
While changes.Count > 0
total += changes.Count
For Each change As SPChange In changes
Console.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
Console.WriteLine("Object type: {0}", change.GetType().ToString())
Console.WriteLine("Change type: {0}", change.ChangeType)
Next change
startToken = changes.LastChangeToken
changes = webSite.GetChanges(startToken, endToken)
End While
Console.WriteLine(vbCrLf + "Total changes = {0:#,#}", total)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
請參閱
參照
Microsoft.SharePoint namespace