アプリ開発の調査にかかる
時間を削減したい
内製化支援サービス
アプリを自分たちで
作成できるようになりたい
DX人材育成プログラム
プロに開発を依頼したい
アプリ開発導入支援サービス
SharePoint デザイン拡張サービス
X-SP Style
モダン化から運用管理までサポート
移行・モダン化コンサルティング
今回は自分の備忘録として、Power AutomateでSharePointの登録者・更新者・登録日・更新日列を変更する方法について調査したので、紹介します。
普段はあまり使うことはないですが、データ移行などを行った場合に本内容が活用できるかと思います。
前提:やりたいこと
SharePointリストやドキュメントライブラリを作成した場合には、以下の列が自動的に作成されます。
- 登録者 (Author): アイテムを新規追加したユーザー
- 更新者 (Editor) : アイテムを最終更新したユーザー
- 登録日時 (Created) : アイテムを新規追加した日時
- 更新日時 (Modified): アイテムを最終更新した日時
上記列に関しては、SharePoint側が自動的に値を付与する仕様のため、Power Automateの標準アクション(例:項目の更新や項目の作成)では、値の編集ができません。
そこで今回は、「SharePoint に HTTP 要求を送信します」アクションを利用します。
登録者・更新者を変更する方法
最初は登録者・更新者を変更する方法です。
アクションの詳細は以下となります。
※以下は登録者列を変更する際のスクリーンショットです。
項目 | 値 |
---|---|
方法 | POST |
URI | _api/web/lists/GetByTitle(‘<リスト名>’)/items(<ID>)/validateUpdateListItem |
ボディ | 下記参照 |
{
"formValues":[
{
"FieldName":"Author",
"FieldValue":"[{'Key':'i:0#.f|membership|<メールアドレス>'}]"
}
],
"bNewDocumentUpdate":true
}
ポイントとしては、以下となります。
- FieldName : 変更する列を指定します。
- FieldValue : 変更するユーザーを指定します。
- bNewDocumentUpdate : バージョン履歴に残すのか、残さないのかを指定します。
登録者列の場合は「Author」、更新者列の場合は「Editor」を指定します。
|membership| の後続に、メールアドレスを指定します。
trueの場合は、バージョン履歴に残りません。 一方falseの場合は、バージョン履歴に残ります。
登録日・更新日を変更する方法
続いて、登録日・更新日を変更する方法です。
アクションの詳細は以下となります。
※以下は登録日列を変更する際のスクリーンショットです。
項目 | 値 |
---|---|
方法 | POST |
URI | _api/web/lists/GetByTitle(‘<リスト名>’)/items(<ID>)/validateUpdateListItem |
ボディ | 下記参照 |
{
"formValues":[
{
"FieldName":"Author",
"FieldValue":"2112/09/03 12:00:00"
}
],
"bNewDocumentUpdate":false
}
ポイントとしては、以下となります。
- FieldName : 変更する列を指定します。
- FieldValue : 変更する日時を指定します。
- bNewDocumentUpdate : バージョン履歴に残すのか、残さないのかを指定します。
登録日列の場合は「Created」、更新日列の場合は「Modified」を指定します。
フォーマット: yyyy/MM/dd hh:mm:ss ※ローカル時間での登録となります。
例:SharePointサイトのタイムゾーンがJST(UTC+09:00)、かつ設定値が”2112/09/03 12:00:00″の場合は、2112/09/03 12:00:00(JST)( = 2112/09/03 3:00:00(UTC))にて登録される。
trueの場合は、バージョン履歴に残りません。 一方falseの場合は、バージョン履歴に残ります。
参考:複数列を一括更新
上記にて、登録者・更新者・登録日・更新日の各列を更新する方法をお伝えしましたが、複数列を一括で変更することも可能です。
参考:PnP PowerShellでも登録者・更新者・登録日・更新日列を変更することが可能
Power Automateだけではなく、PnP PowerShellでも対応は可能です。
PnP PowerShellの詳細については、以下URLをご参照ください。
PnP PowerShell の概要
以下はサンプルプログラムです。
# サイト名
$siteUrl = "https://your-tenant.sharepoint.com/sites/your-site"
# リスト名
$listName = "sampleList"
# SPOへログイン
Connect-PnPOnline -Url $siteUrl -UseWebLogin
# 更新する値
$newAuthor = "<メールアドレス>"
$newEditor = "<メールアドレス>"
$newCreated = "2024/10/25 09:00:00"
$newModified = "2024/11/28 10:00:00"
# 値の更新
$itemId = 1
Set-PnPListItem -List $listName -Identity $itemId -Values @{
"Author" = $newAuthor
"Editor" = $newEditor
"Created" = $newCreated
"Modified" = $newModified
}
おわりに
今回は自分の備忘録として、Power AutomateでSharePointの登録者・更新者・登録日・更新日列を変更する方法について紹介しました。
簡単に行うのであれば、Power Automateで対応することをおすすめしますが、 大量データを更新したい場合は、PowerShellで行う方が効率的かと思います。
最後まで読んでいただき、ありがとうございました!
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
(最近はCopilot Studioについても勉強中)
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200/SC-100
こんにちは。アーティサン株式会社の小刀稱(ことね)です。