はろー、皆さん。パワーアップスやってますか?
おとぼけ調子で記事を書きますが、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.ちょっとした処理が作れて便利ではありますので、積極的に活用していこうと思います。
コメント