16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Apps でデータを登録した後に通知や承認処理をしたい場合の TIPS

Last updated at Posted at 2022-12-25

はじめに

Power Apps でデータソースにデータを登録した後、通知や承認処理を行うことが良くあり、以下の二つの方法が考えられます。

① Power Apps から Power Automate を呼んで、データを登録した上で、通知や承認処理もする

image.png

② Power Apps でデータ ソースにデータを登録し、データが登録されたことをトリガーに Power Automate が動作して通知や承認処理をする

image.png

個人的には、慣れない方にとっては、② の方が簡単な気がします。
しかし、② を利用した場合、メールや Teams での送信元が全てフローを作成したユーザーになってしまいます。

例えば、以下のようなフローで休暇の連絡通知をチームの Teams のチャネルに投稿する場合、投稿者が全てフローの作成者になり、紛らわしいため、送信元をアプリ利用者自身にしたいという場合があります。

image.png
image.png

※フローの作成者が testuser002 で、休暇の連絡者が testuser001 です

この場合は ① の方法を利用するのですが、今回は、出来るだけ簡単に実現したい場合に私が良く利用する方法について説明します。 

実装方法

まず、今回は、以下のような SharePoint リストを利用します。
image.png
Power Apps でアプリを作成し、フォーム コントロールを利用し、ボタンを押した際 (OnSelect プロパティを利用)、SubmitForm を利用してデータの登録をします。
image.png
そして、フォームの OnSuccess プロパティにて以下のような処理を書きます。

'休暇申請フロー-2'.Run(FormNewRequest.LastSubmit.ID);
Notify(
    "新規申請処理が成功しました。承認されるまでしばらくお待ちください",
    NotificationType.Success
);
Navigate(ScreenTop);
ResetForm(FormNewRequest)

ポイントは以下の箇所です。
こちらは、該当のフォームで直前に登録したアイテムの情報を意味します。
※SharePoint リストの場合、ID が一意な情報となるため、今回は、ID だけを Power Automate に渡します (渡す情報が少ないのは楽ですね)

FormNewRequest.LastSubmit.ID

フォームをリセットする前に Power Automate フローを呼びます。LastSubmit.ID の情報もリセットされてしまい、フローが正しく動作しなくなるためです。

こちらの LastSubmit、以下のブログなどでも紹介されており、何かと便利です。(よく見ると私が Power Apps を触り始めるよりはるかに前の記事ですね。ありがとうございます。)

Power Automate 側の実装は以下のような感じです。
image.png
Power Apps から受け取る情報は ID だけでいいのでとても楽です。
この ID の情報を元に、SharePoint リストから直前に登録したデータを取得して動的なコンテンツとして利用できます。(上記では、ステータスを更新するため、[項目の更新] アクションを動的なコンテンツとして再利用しています)

正しく動作したようです。(タイトルのユーザー名はいらなくなりますね)

image.png

16
6
3

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
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?