LoginSignup
2
2

More than 1 year has passed since last update.

PowerAutomate: SharePoint Lists のユーザー列をクリアする方法(Rest API より簡単に)

Posted at

はじめに

Rest API でやる方法 以外にもやる方法がありますよってお話

Rest API に慣れてるなら、リスト名や列のID 取得も問題ないんですが、
ローコード開発って考えると、なるべく使わずにやる方が良いかな、というお話。

概要

詳細

Update Item を動的更新にする

一番簡単なのは、List Name の変数化
List Name の変数化.png

補足:上記の List Name の取得方法

Get_items でアイテム一覧取得してあるとして、
以下で、Get_items で利用した List Name (Table ID) を取得

List Name 取得.png

Get items で利用した List Name 取得
actions('Get_items')?['inputs/parameters/table']

JSON でユーザーをクリア

以下の用に、"User" 列を null 指定してやるだけ

null じゃなくて "" でもOK.png

ユーザーをクリア
{
  "User": null
}

null じゃなくて "" でもOK

よくある躓きに対する説明

単純に null() で Clearした場合

上手くいったようにみせかけて、何も処理されない!ってなりませんか?

では、他の更新したくない列ってどう設定してますか?
update item は更新したくない列は放置 = null ですよね?

明示的に null() を渡してるつもりが、
コネクターとしては、値が空っぽなので更新したくないって認識してるんだと思います。

User 自体を事前にチェックしているからこそ、以下のようなエラーも出るわけですしね。

頑張って色々やると「そんなユーザーなんていない!」と怒られる

"User": に渡される値でユーザー検索して見つからないってことなんだろうな、と
以下の場合であれば、改行コード :laughing:

で、null() 設定すると、上述のように、"User": 毎除外されるので更新されない、と。

そんなユーザーなんていない.png

一応・・Rest API でのクリア方法は以下

こんなの毎回やるの面倒だよね?ってお話でした。

元ネタ

実行例

image.png

Uri
/_api/web/lists/GetByTitle('StoreOfTeamsAttachements')/items(1)
ClearHeader
{
  "Content-Type": "application/json;odata=verbose",
  "X-HTTP-Method": "MERGE",
  "IF-MATCH": "*"
}
ClearBody
{
  '__metadata': { 'type': 'SP.Data.StoreOfTeamsAttachementsListItem' },
  'UserStringId': '',
  'UserId': -1
}

説明

List 名

StoreOfTeamsAttachements

type/Id/StringId 等の取得方法
https://shimakuma.sharepoint.com/sites/<siteName>/_api/web/lists/GetByTitle('<listName>')/items

を実行した結果の xml から取得
image.png

あとがき

Excel コネクタの update とかと同じ考えですね。困ったら、動的設定で、JSON 指定へ。

keyword

how to clear "person or group" column in sharepoint lists

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2