SharePoint Online에서 항목 업데이트 상태 얻기(ChangeQuery)
15897 단어 SharePointPowerShell
경위
SharePoint Online의 한 목록에서 정기적으로 업데이트 정보를 가져와 다른 저장소에 저장하는 작업을 수행했기 때문에 현재 사용한 ChangeQuery에 대한 메모.
환경
클라이언트 환경
SharePoint Online 환경
열 이름
내부 열 이름
열 유형
제목
Title
한 줄 텍스트
코멘트
Comment
한 줄 텍스트
코드
첫째, 평소 SharePoint Online에 로그인할 때까지입니다.
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
# SharePoint Online の URL
$siteUrl = 'https://<tenant>.sharepoint.com/sites/example'
# ユーザー名
$user = '[email protected]';
# パスワード
$secure = Read-Host -Prompt "Enter the password for ${user}(Office365)" -AsSecureString;
# SharePoint Online 認証情報
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($user, $secure);
# SharePoint Client Context インスタンスを生成
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
$ctx.Credentials = $credentials
그런 다음 ChangeQuery 인스턴스를 생성하고 설정합니다.
# ChangeQueryの定義
$cq = [Microsoft.SharePoint.Client.ChangeQuery]::new($false, $false)
$cq.Item = $true # アイテムの更新が対象
$cq.Add = $true # 追加したアイテム情報が対象
$cq.Update = $true # 修正したアイテム情報が対象
$cq.DeleteObject = $true # 削除したアイテム情報が対象
ChangeQeury 인스턴스를 생성할 때의 인수는 다음과 같습니다.
new(allChangeObjectTypes:boolean, allChangeTypes:boolean)
ALL 라든지 사용하는 것보다, 개인적으로는 코드로 설정하는 편이 알기 쉽다고 생각한다
나머지는 목록에서 항목을 얻기 만
# 対象リスト
$list = $ctx.Web.Lists.GetByTitle('SyncBase')
# 対象リストから更新のあったアイテムを取得
$changeItems = $list.GetChanges($cq)
$ctx.Load($changeItems)
$ctx.ExecuteQuery()
취득한 건수를 확인
PS > $changeItems.Count
0
우선 0건
목록 SyncBase 항목 추가
그 후, 데이터 취득 처리를 다시 시도한다.
$changeItems = $list.GetChanges($cq)
$ctx.Load($changeItems)
$ctx.ExecuteQuery()
PS > $changeItems.Count
1
획득한 아이템 정보
PS > $changeItems
ActivityType :
ContentTypeId :
Editor :
EditorEmailHint :
EditorLoginName :
FileSystemObjectType :
FileType :
Hashtag :
Hidden :
ItemId : 1
ListId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ListTemplate :
ListTitle :
ServerRelativeUrl :
SharedByUser :
SharedWithUsers :
Title :
WebId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ChangeToken : Microsoft.SharePoint.Client.ChangeToken
ChangeType : Add
RelativeTime :
SiteId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Time : 2018/07/21 11:24:50
Context : Microsoft.SharePoint.Client.ClientContext
Tag :
Path :
ObjectVersion :
ServerObjectIsNull : False
TypedObject : Microsoft.SharePoint.Client.ChangeItem
ItemId와 ChangeType이 Add에서 검색되었음을 알 수 있습니다.
다음으로 편집하여 ItemId, ChageType, Time으로 짜서 다시 시도해 봅니다.
PS > $changeItems | Select-Object ItemId, ChangeType, Time
ItemId ChangeType Time
------ ---------- ----
1 Add 2018/07/21 11:24:50
1 Update 2018/07/21 12:15:46
마지막으로 삭제하고 ItemId, ChageType, Time으로 짜서 다시 시도합니다.
PS > $changeItems | Select-Object ItemId, ChangeType, Time
ItemId ChangeType Time
------ ---------- ----
1 Add 2018/07/21 11:24:50
1 Update 2018/07/21 12:15:46
1 DeleteObject 2018/07/21 12:26:23
이번에는 이것으로 끝납니다!
참고
Reference
이 문제에 관하여(SharePoint Online에서 항목 업데이트 상태 얻기(ChangeQuery)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miyamiya/items/a0ea53978867de57f127텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)