SharePoint リストの個人列に入っている値を Power Automate のクラウドフローからクリアする(値を消す)方法を、自分が必要になるたびに調べているので、重い腰を上げてメモを残しておこうと思います。
この個人列は厄介で、値をクリアするには、SharePoint コネクタの「項目の更新」アクションでは行うことができず、「SharePoint に HTTP 要求を送信します」アクションを利用する方法があります。
そのため、事前に知っておく知識がいくつか必要となり、ややこしいわけです。
アイテムのタイプと列の更新に必要な内部名を調べる
SharePoint リストの列の値を「SharePoint に HTTP 要求を送信します」アクションで更新するには、アイテムのタイプと、更新時に指定する列の内部名を知っておく必要があります。列の内部名と言えば、リストの設定から調べる方法が良く知られていますが、今回のような場合は、ちょっと別の方法で調べる必要があります。
さて、実際に調べていきます。調べるためにも Power Automate を利用し、「SharePoint に HTTP 要求を送信します」アクションで次のように設定して実行します。
サイトのアドレス | 値を更新するリストがあるサイトの URL |
方法 | GET |
URI | _api/web/lists/GetByTitle('<リストの名前>')/items(<アイテムの ID>) |
すると、次のような結果が返ってくるので、結果から必要な値を探します。
まずは、「__metadata」の「type」です。こちらは「SP.Data.ListListItem」のような値になります。次に更新する列の更新用内部名ですが、今回は「個人」という名前で作成された列の場合、「OData__x500b__x4eba_Id」となっていました。リストの設定から調べていた内部名が「_x500b__x4eba_」でしたので、その前後に「OData_」「Id」が追加されたものになっています。
単一値の個人列の値をクリアする
さて、さっそく値をクリアしていきましょう。まず、ひとつだけユーザーを指定できる個人列では、次のようにアクションを設定します。
サイトのアドレス | 値を更新するリストがあるサイトの URL |
方法 | POST |
URI | _api/web/lists/GetByTitle('<リストの名前>')/items(<アイテムの ID>) |
ヘッダー | content-type: application/json;odata=verbose If-Match: * X-HTTP-Method: MERGE |
ボディ | 以下の通り |
列の指定値として、null を指定します。
複数値の個人列の値をクリアする
複数のユーザーを指定できる個人列では、次のようにアクションを設定します。
サイトのアドレス | 値を更新するリストがあるサイトの URL |
方法 | POST |
URI | _api/web/lists/GetByTitle('<リストの名前>')/items(<アイテムの ID>) |
ヘッダー | content-type: application/json;odata=verbose If-Match: * X-HTTP-Method: MERGE |
ボディ | 以下の通り |
列の指定値として、{'results': [0]} を指定します。
さいごに
SharePoint リストの個人列の値をクリアする方法について紹介しました。ちょっとややこしいですが、必要になるために調べていましたので、同じような方がいましたら参考にしてもらえると嬉しいです。
このページの内容
Power AutomateでSharePointコネクタを利用する場合にはいくつかのトリガーがあります。そのうちリスト関連のトリガーを紹介します。
「項目が作成されたとき」
リストに項目が作成されたときに動作するトリガーです。
作成された項目の列の値を取得できます。
対象フロー:自動化したクラウドフロー
■使い方
トリガーを選択し、下図のように設定します。
■取得できる主な値
取得できる主な値は、下記です。
(列の情報) | リストの列の情報。作成された項目のそれぞれの列の値を取得できます。 |
ID | リスト上の一意のID 「項目の更新」アクション等で利用するIDにはこの”ID”を使用します |
アイテムへのリンク | 該当項目のリンクURL |
登録日時 | 項目が作成された日時。協定世界時のためタイムゾーンの変換が必要。 |
登録者 DisplayName | 項目を作成したユーザの表示名 |
登録者 E-mail | 項目を作成したユーザのメールアドレス |
更新日時 | 項目が更新された日時。協定世界時のためタイムゾーンの変換が必要。 |
更新者 DisplayName | 項目を更新したユーザの表示名 |
更新者 E-mail | 項目を更新したユーザのメールアドレス |
添付ファイルあり | 添付ファイルがある場合true、ない場合false |
「アイテムが作成または変更されたとき」
リストに項目が作成または変更されたときに動作するトリガーです。
作成または変更された項目の列の値を取得できます。
対象フロー:自動化したクラウドフロー
■使い方
トリガーを選択し、下図のように設定します。
■取得できる主な値
取得できる主な値は、下記です。
(列の情報) | リストの列の情報。作成された項目のそれぞれの列の値を取得できます。 |
ID | リスト上の一意のID 「項目の更新」アクション等で利用するIDにはこの”ID”を使用します |
アイテムへのリンク | 該当項目のリンクURL |
登録日時 | 項目が作成された日時。協定世界時のためタイムゾーンの変換が必要。 |
登録者 DisplayName | 項目を作成したユーザの表示名 |
登録者 E-mail | 項目を作成したユーザのメールアドレス |
更新日時 | 項目が更新された日時。協定世界時のためタイムゾーンの変換が必要。 |
更新者 DisplayName | 項目を更新したユーザの表示名 |
更新者 E-mail | 項目を更新したユーザのメールアドレス |
添付ファイルあり | 添付ファイルがある場合true、ない場合false |
「項目が削除されたとき」
リストの項目が削除されたときに動作するトリガーです。
対象フロー:自動化したクラウドフロー
■使い方
トリガーを選択し、下図のように設定します。
■取得できる主な値
取得できる主な値は、下記です。
ID | リスト上の一意のID |
削除者 | 項目を削除したユーザの表示名 |
削除された時刻 | 項目が削除された日時。協定世界時のためタイムゾーンの変換が必要。 |
「アイテムまたはファイルが修正されたとき」
リストの項目が変更されたときに動作するトリガーです。項目が作成されたときは動作しません。
ドキュメントライブラリのファイルが変更されたときにも動作します。
対象フロー:自動化したクラウドフロー
■使い方
トリガーを選択し、下図のように設定します。
フォルダーの項目ですが、実はリストでもフォルダを作成でき、そのフォルダを指定したい場合には指定します。通常は空欄で良いでしょう。
■取得できる主な値
取得できる主な値は、下記です。
(列の情報) | リストの列の情報。修正された項目のそれぞれの列の値を取得できます。 |
ID | リスト上の一意のID 「アイテムやファイルの変更を取得する(プロパティのみ)」アクション等で利用するIDにはこの”ID”を使用します |
アイテムへのリンク | 該当項目のリンクURL |
登録日時 | 項目が作成された日時。協定世界時のためタイムゾーンの変換が必要。 |
登録者 DisplayName | 項目を作成したユーザの表示名 |
登録者 E-mail | 項目を作成したユーザのメールアドレス |
更新日時 | 項目が更新された日時。協定世界時のためタイムゾーンの変換が必要。 |
更新者 DisplayName | 項目を更新したユーザの表示名 |
更新者 E-mail | 項目を更新したユーザのメールアドレス |
添付ファイルあり | 添付ファイルがある場合true、ない場合false |
「選択したアイテムの場合」
リストの選択した項目に対して任意のタイミングで動作させるトリガーです。選択した項目に対して何らかの処理を行わせたい場合に使用するトリガーです。
対象フロー:インスタントクラウドフロー
■使い方
トリガーを選択し、下図のように設定します。
上記トリガーでフローを作成すると、下記のようにリストの項目を選択して作成したフローを起動できます。
■取得できる主な値
取得できる主な値は、下記です。
ID | リスト上の一意のID 「項目の更新」アクション等で利用するIDにはこの”ID”を使用します |
itemUrl | 項目のリンクURL |
ユーザー名 | フローを実行したユーザー名 |
ユーザーの電子メール | フローを実行したユーザーのメールアドレス |
タイムスタンプ | フローを実行した時刻 |
まとめ
Power AutomateでSharePointコネクタを利用する場合のリスト関連のトリガーを紹介しました。