前回はリスト作成をやったので、今回はリストアイテムの作成についてやっていきます(∩´∀`)∩
事前準備
PowerShellのスクリプトを実行する際に必要なSDK等がありますので、その辺のインストール等がまだの方は↓の記事を参考に準備しておいてください(∩´∀`)∩
SharePoint Online Client Component SDK というヤツを使います。
PowerShellからSharePointOnlineを操作する為の準備
今回はPowerShellからSharePoint Onlineを操作するための下準備について説明してみます。
PowerShellによる操作
まずSharePoint OnlineをPowerShellで操作するには2つの方法が用意されて...
リストの取得
接続等行った状態から説明していきます。その辺は記事末尾のサンプルコード内には書いておきますので、そちらも参考にしていただけたらと。
今回は前回作成した ほげほげ(hogehoge)というリストを対象にアイテム作成します。
で、まずはリストを取得します。
# リスト取得
$list = $Context.Web.Lists.GetByTitle("hogehoge")
# リストIDが分かっている場合、GetByIdでもOK
# $list = $Context.Web.Lists.GetById("IDの文字列")
GetByTitle か GetByID でリストを取得します。タイトルを使う時は内部名でも表示名でもどちらでもOKです。
IDで取得する場合は下記記事の方法などを使うか、PowerShellでなんやかやするなどしてIDを取得しておきます。
SharePointOnlineでリストのIDを取得する
監査ログを見るときや、プログラムからなんやかんやする時に必要になったりするリストID。今回はその取得方法というか、確認方法について簡単に説明してきます~(∩´∀`)∩
オブジェクトの作成とか値の設定とか
# オブジェクト作成
$CInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation
# 取得したリストにアイテム作成用のオブジェクトを突っ込む
$item=$list.AddItem($CInfo)
# タイトルを設定 タイトル以外も入れるならこの辺で
$item["Title"]="テストアイテム2!"
リストアイテム作成用のオブジェクトみたいなのを作ったり、リストアイテムの各値を設定したりとかします。
アイテムの値なんかは $item[] に内部列名指定して入れていきます。大文字小文字の区別があるので気を付けましょう。
更新その他
最後に更新やらロードやらえくせきゅーとやらしておきます。
# 更新
$item.Update()
# コンテキストにロード
$Context.Load($item)
# 上記の更新を実行
$Context.ExecuteQuery()
# 後始末
$Context.Dispose()
ここまでの処理を実行すると↓のようにアイテムが作成されます。
まとめ
リストをデータベース代わりに使うような場合だとか、何かのマスタデータを登録するような場面で使えるかな~~と思います。
趣味で勉強とかして覚えたんですけども、実務でまだ使ったことなかったり。。(ノ∀`)
サンプルコード
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null
#接続情報等
$SiteUrl = "https://xxxxxx.sharepoint.com/testsite"
$Account = " administrator@xxxxxx.onmicrosoft.com"
$Password = Read-Host -Prompt "Enter Password." -AsSecureString
# Credential作成
$Credential = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Account, $Password)
# Context作成
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Context.Credentials = $Credential
# リスト取得
$list = $Context.Web.Lists.GetByTitle("hogehoge")
# リストIDが分かっている場合、GetByIdでもOK
# $list = $Context.Web.Lists.GetById("IDの文字列")
# オブジェクト作成
$CInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation
# 取得したリストにアイテム作成用のオブジェクトを突っ込む
$item=$list.AddItem($CInfo)
# タイトルを設定 タイトル以外も入れるならこの辺で
$item["Title"]="テストアイテム!"
# 更新
$item.Update()
# コンテキストにロード
$Context.Load($item)
# 上記の更新を実行
$Context.ExecuteQuery()
# 後始末
$Context.Dispose()
コメント