技術情報ブログ
SharePoint
2025.01.22

【小ネタ】Power Automate×SharePoint:登録者・更新者・登録日・更新日列を変更する方法

【小ネタ】Power Automate×SharePoint:登録者・更新者・登録日・更新日列を変更する方法
小刀稱知哉

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

今回は自分の備忘録として、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 : 変更する列を指定します。
  • 登録者列の場合は「Author」、更新者列の場合は「Editor」を指定します。

  • FieldValue : 変更するユーザーを指定します。
  • |membership| の後続に、メールアドレスを指定します。

  • bNewDocumentUpdate : バージョン履歴に残すのか、残さないのかを指定します。
  • trueの場合は、バージョン履歴に残りません。 一方falseの場合は、バージョン履歴に残ります。

登録日・更新日を変更する方法

続いて、登録日・更新日を変更する方法です。

アクションの詳細は以下となります。

※以下は登録日列を変更する際のスクリーンショットです。

項目
方法POST
URI_api/web/lists/GetByTitle(‘<リスト名>’)/items(<ID>)/validateUpdateListItem
ボディ下記参照
{
  "formValues":[
    {
      "FieldName":"Author",
      "FieldValue":"2112/09/03 12:00:00"
    }
  ],
  "bNewDocumentUpdate":false
}

ポイントとしては、以下となります。

  • FieldName : 変更する列を指定します。
  • 登録日列の場合は「Created」、更新日列の場合は「Modified」を指定します。

  • FieldValue : 変更する日時を指定します。
  • フォーマット: 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))にて登録される。

  • bNewDocumentUpdate : バージョン履歴に残すのか、残さないのかを指定します。
  • 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で行う方が効率的かと思います。

最後まで読んでいただき、ありがとうございました!

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き)、現在は東京都在住

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

シェアする
記事カテゴリ
最新記事
2025.04.30

Power Apps, Power Automate で作る NFC タグを活用したアプリ例

2025.04.16

Power Apps で NFC タグを使ってみる

2025.04.02

Copilot Studioで作成したコパイロットをTeams に追加する方法

2025.03.19

SharePoint リストで主キーを実装し、比較してみた

2025.03.12

SharePointのデザインをもっとおしゃれに!(X-SP Design | SharePoint デザイン拡張サービスのご紹介)(4) サンプルの紹介その2

データ構造.Net Core Test Explorerレスポンシブ技術カスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列X-SPNFCタグモデル駆動型アプリSortByColumns関数Dataverse for Teams入門ItcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StylePowerAutomatePower AppsTypeScriptitem関数初心者情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者StudioPower PlatformHTMLGoogle Maps中級者メッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日AISharePointEF CoreMarker Clustererキャンバスアプリメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更生成系AIExcelマイグレーションRANK()関数DatePickerfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBCopilotPower AutomateFramework CoreDynamics 365 SalesDropdownnest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携licenseC#Attribute directivesMicrosoft Translatorview入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続添付ファイルコントロールattributeO/Rマッパーマーカークラスタリングライブラリビュー動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローファイルサイズvalidationazure sql databasetailwindcssアクセス制限collectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binフルリモートワークローコードCase式マルチテナント承認コレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールごみ箱アーティサンAngularHTTP Requestドロップダウンメニューリマインド複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseアクセス許可ArtisanAccessCSSBreakpointObserverSet承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSharePoint Framework転職InfoPathxUnitメディアクエリForAllform差出人アプリdesignconcat関数ファイル勉強表示SPFx主キーMatTable.Net Core 3.1スマホUpdateContextエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替サンプルCopilot StudioAngular MaterialVSCodePCロードマップインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者samplePowerApps
PageTop
ページトップに戻る