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文を追加しました。
やってみる
ずんどこ失敗、ずんどこ失敗、どこ失敗・・・