Power Fx が、モデル駆動型 Power Apps や Dataverse に対応
本投稿は米国時間4月7日付の ブログ投稿の日本語抄訳です。内容に齟齬がある場合、原文を正とさせていただきます。
約 2 か月前、Ignite において、新たな業界標準となるローコード開発のためのオープン ソース言語 Power Fx を発表 (英語) したところ、予想よりもはるかに多くの反響をいただきました。ありがとうございます! これは本当に素晴らしいことです。そして早速、マイクロソフトの内部だけでなく外部からも、この Excel のようなローコード言語をどうすれば顧客に提供できるのかと、ひっきりなしに相談が寄せられています。
Excel にルーツを持つ Power Fx は、簡潔にロジックを作成でき、ノーコード開発からプロによるコーディングまであらゆるレベルの構築作業に活用できる素晴らしい言語です。そして本日は、多くの方に利用していただくという目標を達成するために行った 1 つの取り組みの成果を発表します (英語)。GPT-3 や PROSE などの AI ツールを使用すれば、コードをまったく書けない人でも Power Fx の数式を簡単に作成できるようになりました。
私たちは他にも、Power Platform 周辺や他の多くの製品に Power Fx を組み込むための取り組みを精力的に行っています。本日は新たにサポートする革新的な次の 3 つの機能についてお伝えします。
- モデル駆動型コマンド: JavaScript を習得したり、記述したりしなくても、独自のコマンドを作成できるようになりました。キャンバス アプリと同じ Power Fx 数式を使用して、Dataverse のデータをテストしたり修正したりすることができます。
- Dataverse の計算列: Dataverse の計算列およびロールアップに Power Fx 数式が対応し、既存の機能に代わるさらにモダンで強力な機能になりました。
- Acumatica: Power Platform やマイクロソフト製品以外でも Power Fx を活用できるようになりました。Acumatica (英語) のフォームの計算フィールドに Power Fx が統合され、他のフィールドの参照と関連テーブルの集約の両方が可能になっています。
モデル駆動型コマンド
先日の Build (英語) では、Power Fx と使い慣れた Excel 数式バーを使用して独自のコマンドを作成する機能を初めて発表しました。この機能の登場で、シチズン デベロッパーがロジックを作成するハードルが大幅に下がりました。もう JavaScript を習得して、非同期処理のコードを記述したり、デバッグ作業を行ったりする必要はありません。また、プロの開発者にとっても、コマンドの作成、保守、サポートにかかる時間を短縮できるというメリットがあります。
次のアニメーションでは、この新しいコマンド デザイナーを使用して、現在のアカウントに関連タスクを追加するコマンドを作成しています。これには、Power Fx の数式バーだけでなく、IntelliSense とエラー報告機能も実装されています。キャンバス アプリのボタンと同様に、ボタン押下時 (OnSelect) の実行内容を編集し、Patch 関数を呼び出して新規レコードを作成しています。
Power Fx のモデル駆動型コマンド作成は、6 月の末までにパブリック プレビューとしてリリースされる予定です。
Dataverse の計算列
Dataverse に、もともと計算列とロールアップの機能があるのはご存じのとおりです。しかし、全画面のポップアップ エディターを使用する必要があり、対応している関数も少ないため、あまり使い勝手がよいものではありませんでした。また、TrimLeft などの独自の関数は、他の言語では別の名前で表示されるため、すべて覚えておく必要がありました。
先日の Build (英語) では、この重要な部分について Power Fx によってアップグレードするとお伝えしていました。数式バーは、列の設定画面に直接インラインで表示されるようになります (以下の画面では一時的に [Discription] フィールド内に表示)。また、利用可能な関数の数が 10 倍に増えます。さらに、ロールアップは単一のエクスペリエンスに統合され、現在のキャンバス アプリと同様に、Dataverse の関連付けがサポートされます。
Power Fx の Dataverse 計算列は、6 月中にパブリック プレビューとしてリリースされる予定です。
Acumatica
Power Fx の発表以来、マイクロソフトは Acumatica と協力して、お客様に提供するローコード/ノーコード環境での Power Fx の活用方法について模索してきました。だれでも使えるオープン ソースの言語を開発できた Acumatica との取り組みは、私たちにとって貴重な経験になりました。
以下のデモでは、Power Fx を使用して複数の計算列をフォームに追加しています。これには、多くのユーザーにとってお馴染みの Excel 関数と同じ言語を使用しています。Sum や Average などの関数を使用し、関連するテーブルの情報を集計している点に注目してください。その結果、このアニメーションの最後では、レコードの 1 つに割引が適用されるとフィールドの値が自動的に再計算されています。
初期のアーキテクチャ
Power Fx 統合の取り組みにより、アーキテクチャが改良されました。以下は、マイクロソフトが考える Power Fx のアーキテクチャ概要図です。数式バーと分析 (コンパイラ) が緊密に連携していることがわかります。
さらに、次のようなさまざまなランタイム環境への対応が必要です。
- JavaScript: キャンバス アプリおよびモデル駆動型コマンドは、JavaScript を使用したブラウザーで実行できるようにする必要があります。
- C#: 統合予定の Power Virtual Agents も、マネージ コードの実行時にサーバー上で C# を実行する必要があります。Acumatica 製品も C# で記述されています。
- T-SQL: Dataverse 計算列は、データベース内で T-SQL クエリの一部として実行する必要があります。
今後の予定
現時点では、オープン ソース コードや NuGet パッケージを公開できる段階ではありませんが、それを目指して努力を続けています。今回の統合は、Power Apps のメイン ソースから抽出した個別パッケージを使用するなど、目標への大きな一歩となりました。
Power Fx に関心をお持ちの方は、Microsoft Power Fx の概要に関するブログ記事を参考にしてください。また、このオープン ソース コードは今後 GitHub で公開します。現在はドキュメントのみを https://github.com/Microsoft/Power-Fx (英語) でご覧いただけます。
*This post is locked for comments