Power Fx??
Power Fxは、Microsoft Power Platform全般で使用されるローコード言語、とのことです
Power Appsで使用されていた数式言語がもとらしく、Excelで扱う式に似たものを感じています
PADでの扱い方
トリガー
フローを新規作成する際、"Power Fxが有効"のトリガーをオンにする(してしまう)ことで、Power Fxが有効になります:
何がどう変わるの?
Power Fxのオンオフによって、それぞれのアクションの変数の扱い、記述方法が変わってきます
一番わかりやすい所でいくと、変数を扱う際...今回は変数"sample"を扱うとしたとき、
- Power Fx "なし"の場合
- %sample%
- Power Fx "あり"の場合
- =sample
内部はどうなっているのさ
PADは"robin"という言語を基にしており、アクションをコピーし、メモ帳に貼り付けることで、そのアクションを構成する記述を見ることができます
これを応用して、フローのアクションをコピーして他のフローに貼り付けする、といったことも可能です
以下の例は変数"sample"の内容を、変数"copytest"に設定するアクションをrobin言語で示したものです
#Power Fxなしの場合:
SET sample TO $'''テストデータです'''
SET copytest TO sample
#Power Fxありの場合:
SET sample TO $fx'Power Fxありのテストデータです'
SET copytest TO $fx'=sample'
なるほど若干異なるようです...
ちなみにrobin言語の公式ドキュメントは消滅している(?!)ため、私自身もあまり詳しくありません...
互換性は?
Power Fxを使用していないフローからPower Fxを使用しているロボットにコピペしたとき、ちゃんと動いてくれるのか?という点を気になったので検証してみました
内容は、"先にPower Fxありのテスト処理を回した後に、Power Fxなしのフローで作成したアクションを実行してみる"という内容です
このフロー自体は、Power Fxを有効にしています
画像は実行後の状態です
...変数の状態から、上手く実行できたことがわかります
このとき、変数の参照をPower Fx仕様に変更する必要があります
具体的には"%test%"と記述されているものは"=test"と訂正する必要があります
次に、逆の"先にPower Fxなしのテスト処理を回した後に、Power Fxありのフローで作成したアクションを実行してみる"という内容を検証します
また、このフローはPower Fxを有効にしていません
怒られてしまいました...
どうやら有効のスイッチ≒許可の是非、という認識でよいかもしれません
この記事を書くきっかけになったのは、ここで躓いたためです...
相違点
実はPower Fxを有効にしたフローとそうでないフローでは、用意されたアクションに差異があります:
左はPower Fxが無効、右は有効である場合の変数アクションの一覧です
...なるほどリスト系のアクションがなくなってます
が、
Power Fxが無効のフローで作成
↓
アクション自体をコピー
↓
貼り付け
で扱うことはできるようです
Power Fxの有効か否かでリストの扱いが変わってくるようです
#Listという名のリストを扱うとき
#Power Fxが無効:
List[0][1]
"Power Fxが有効:
=ReadCell(List,1,1)
Power Fxを扱う場合、インデックスは1からはじまるようです
つまり、0を指定するとエラーが起きてしまいます 資格試験かな?
まとめ
...ここまでPower Fxについてみてきましたが、個人的にちゃんと使う価値はあると思っています
不便だから使わない!という選択も間違いでなく、確実性を取るならばこちらで間違いないでしょう
私個人の所感として、他のPower Platformコンテンツを開発することになった際のアドバンテージになると思ったのと、
元々Power Platformを使われてた方たちはこちらの方が楽なのかな?というのも(勝手に)思っており、そのために存在しているのかというところです
拙文で恐れ多いですが、最後までお読みいただきありがとうございました!
当方学習中の身ですので、繰り返しにはなりますが実は...みたいな情報があればそっと共有していただけると幸せになります よろしくお願いします...
参考記事
Robin言語について参考記事を紹介してくださっている参考記事です(?):