0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SharePoint サイトのニュースが投稿または更新を Power Automate でフェッチする。下書きはフェッチしない。

Last updated at Posted at 2025-02-24

トリガーの設定

スクリーンショット 2025-02-25 024856.png

トリガー条件

スクリーンショット 2025-02-25 025028.png

// ニュースを判別
@equals(triggerBody()?['PromotedState'],2.0)

// メジャーバージョン=投稿済みニュースと判別
@equals(mod(float(triggerBody()?['{VersionNumber}']),1.0),0)

検証メモ

SharePoint サイトの所有者のユーザーアカウントでコネクタを接続した場合、SharePoint サイトのメンバーがニュースを下書き保存すると、直前にメジャーバージョンのニュースがフェッチされてしまう。

色々調べたところ、メンバーがニュースを下書きすると、直前のメジャーバージョンに対して CheckoutUser の情報が加筆されていた。これによってファイルが変更されたと判断されて、直前のメジャーバージョンのニュースがフェッチされてしまうっぽい。

取り急ぎはトリガー条件に下記を加えて、CheckoutUser が書かれたメジャーバージョンをフェッチの対象から除外すると良さそう。

// メンバーによる下書きを除外
@empty(triggerBody()?['CheckoutUser'])

SharePoint、所有者とメンバーで下書きの扱いが違うのが謎。引き続き、SharePoint の仕様を調査。

検証メモ on 2025.03.25

// メンバーによる下書きを除外
@empty(triggerBody()?['CheckoutUser'])

トリガーから上記の条件を抜いたうえで、トリガーの接続を SharePoint サイトのメンバーのアカウントに切り替えて実験。結果として、メンバーがニュースを下書き保存を行っても、直前にメジャーバージョンのニュースがフェッチされない。

下書き保存者とトリガーの接続のアカウントをイコールにしないと、下書き情報を適切に取得できない感あり。故に直近の取得可能なデータである、現在公開されているニュースをフェッチしてしまったと推察。

結論

SharePoint の権限でどうにかするより、Power Automate のトリガー条件を工夫したほうが良さそう。@empty(triggerBody()?['CheckoutUser']) を条件に引っ掛けるのが今のところ無難。そして特権前提の記事は要注意。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?