Power AutomateのAdvent Calendar用に、ズンドコキヨシをやってみました。
有名らしいのですが、最近初めて知りました > ズンドコキヨシ
全体像
1.Power Appsのボタンを押す
2.Power Automateでランダム数値を発生させて、なんかいろいろ条件分岐する
3.Power Appsのラベルにいまのズンドコ状況を出力する
4.「ずん・ずん・ずん・ずんどこ」がそろったら「き・よ・し!」とPower Appsに表示する
5.そろわなかったら「ずん・ずん・ずん・ずん・ずん 失敗」と出力
PowerAutomate
PowerAppsのラベルを取得して、ズンドコ状況と「き・よ・し」を返却します。
1.Power Appsから値を取得する
スタートは、テンプレートにある「Power Appsボタン」を選択して、
PowerAppsから値を取得します。
「変数を初期化」を選び、「PowerAppsで取得」を選ぶと、自動的に変数が追加されます。

2.「ずん」「どこ」切り替える用の変数を追加する
ランダムな変数がほしいのでrand(1,10)をとりあえず追加します。
これは1~10の間の整数を取得してくれるものです。

3.今のずんどこが失敗してたら初期化する
失敗したかどうかはindexof関数で「今のずんどこ」に「失敗」という文字列があるか取得します。
0より大きければ存在するので空白で初期化します。
空文字指定のやり方がわからなかったので、半角空白を設定しました。

4.次が「ずん」なのか「どこ」なのかで分岐する
2で取得したランダムな数値をmod関数で2で割って余りが1だったら「どこ」にします。

5.「どこ」ルートを作る
「どこ」は1回しかでてこないので、
「今のずんどこ」が「ずん・ずん・ずん・ずん」であるかどうか確認します。
文字数が11文字かどうかlength関数を使用して確認しています。

ずんどこきよしが出来ていたら、
zundoko変数に「ずん・ずん・ずん・ずんどこ」、kiyoshi変数に「き・よ・し!」と応答します。
できていなかったら
zundoko変数にconcat(「今のずんどこ」, 'どこ 失敗')、kiyoshi変数は半角空白を応答します。
6.「ずん」ルートを作る
「ずん・ずん・ずん・ずん」のあとに「ずん」が出てきたらエラーなので、
そこで判断して、「ずん・ずん・ずん・ずん」のときは
zundoko変数にconcat(「今のずんどこ」, '・ずん 失敗')、kiyoshi変数は半角空白を応答します。

そうじゃないときはとりあえず続けて問題ないのですが、
「•」を出すか出さないか判断するので、最初の「ずん」かどうかを判定して、
最初の「ずん」であれば
zundoko変数にconcat(「今のずんどこ」, 'ずん')、kiyoshi変数は半角空白を、
zundoko変数にconcat(「今のずんどこ」, '・ずん')、kiyoshi変数は半角空白を応答します。
PowerAutomate側は以上です。
(今気づいたけど、ズンドコキヨシが成功したときの初期化の検討が漏れてるな・・・)
PowerApps
Power AppsとPower Automateの連携はこちらの動画を参考にさせていただきました
はじめてのPowerApps 第8回
あと「今のずんどこ」を表示する用のラベルと、「きよし」を表示する用のラベルもおきます。
ボタンを選択して「アクション」の「PowerAutomate」を選択します。

さっき選んだPowerAutomateが出てくるので、選択します。
選んだら「PowerAppsボタン.Run」がでてきます。
このRunの引数は、PowerAutomateの1で選んだ変数の数だけ引数が指定できるようになるようですので、
「今のずんどこ」であるLabel1.Textを指定します。
あと、応答を取得する用の変数ZundokoにSetします。

「今のずんどこ」のラベルのTextにZundoko.zundoko、「きよし」にZundoko.kiyoshiを設定。
これで完成です!!!
12/20 10:50追記
最初の1回目にLabel1.Textが取得できないでエラーになってしまうので、
If(IsBlank(Label1.Text), "", Label1.Text)こういうIf文を追加しました。
やってみる
ずんどこ失敗、ずんどこ失敗、どこ失敗・・・


