【PowerApps】Automateとのデータ受け渡し、意外に難しい

IT

はろー、皆さん。パワーアップスやってますか?

おとぼけ調子で記事を書きますが、PowerAppsって実はあまり実務で触ってなかったのです。

PowerAutomateはゴリゴリやってるのに。

そこで、初心者が詰まりそうなネタを紹介します。

今回はPowerAppsからPowerAutomateにデータを受け渡す方法です。

やりたいこと

利用者
利用者

PowerAppsで選択した日付をPowerAutomateに渡したいんだけど。

どうすればいいの。

我

(知らん、やったことない)

確認します。

という風に、問い合わせ風に書いてみましたが、以下のようなことをしたいです。

・SharePointリストでタスクを管理している。
・指定した日付に「新たに発生したタスク」と「完了したタスク」を抽出したい。
・PowerAppsで日付を入力しボタンを押したら、上記タスクを抽出できるようにする。

イメージはこんな感じ。

簡単そうでしょ? でも初心者は詰まると思います。

実装した内容

ではどのようなコードを描いたか具体的に紹介します。

1.PowerAutomate側でPowerAppsからデータ(日付)を受け取るトリガーを作る

ここでポイントなのは、日付であってもテキストで受け取るようにすることです。

なぜか、日付だとデータが受け取れませんでした・・私が悪いのかも

2.PowerApps側のボタンにPowerAutomateを実行するコードを書く

※PowerAppsにAutomateをインポートしている前提です

Set(
    xxx,
    TaskSearch.Run({text:DatePicker1.SelectedDate,
    text_1:DatePicker2.SelectedDate})
)

太赤字部分がPowerAutomateにデータを渡して実行している部分です。

日付フィールドに入れた値を、Text形式でPowerAutomateに引き渡しています。

3.PowerAutomateで受け取った日付データ(テキスト)を元に、SharePointリストからデータ取得

ここは今回のメインテーマでないので割愛しますが、以下のようにSharePointの複数項目の取得アクションで、条件に該当するリストをとってきます。

ポイントがあるとすれば、PowerAppsに情報を渡すために取得した複数値(複数のタスク)を1つのテキストに結合していることですかね。

4.PowerAutomateからPowerAppsに値を渡すアクションを作成

newTaskとcompTaskという変数として、PowerAppsに値を返しています。

5.PowerAppsで値を受け取り、グローバル変数にセット

PowerAppsでPowerAutomateからの値を受け取る方法は、Setメソッドです。

実は先ほどのボタンにすでに含まれています。

Set(
    xxx,
    TaskSearch.Run({text:DatePicker1.SelectedDate,
    text_1:DatePicker2.SelectedDate})
)

太赤字部分です。

xxxというグローバル変数にPowerAutomateから返ってきた値をセットしています。

6.グローバル変数の値をフィールドに表示

あとはフィールドに表示するだけです。

工夫があるとすれば、複数の値を結合しているため、結合を解除して表示させてあげるくらいですね。

カンマ(,) を 改行(Char(10)) に変更、そして、ダブルクォーテーション(Char(34))を空白””に変更。

これで綺麗に表示されるはずです。

作ったPowerAppsの結果表示

日付を指定してボタンをクリックすると、条件に合致するタスクを表示してくれます。

超絶に単純なPowerAppsですが、これを作るのにも結構時間がかかりました・・

意外と便利に使わせてもらっています。週報とか書くときに。

まとめ

1.PowerAppsからPowerAutomateに値を受け渡しする処理を作ってみました。

2.簡単そうに見えて、はまりポイントもあり、初心者にはハードな内容でした。

日付データなのにテキストで受け渡しする、リスト形式での受け渡しができない(できるかもしれませんが分からない)など。

3.ちょっとした処理が作れて便利ではありますので、積極的に活用していこうと思います。

コメント

タイトルとURLをコピーしました