Power Appsから直接ストアドプロシージャを実行する方法

3 min
Power Appsから直接ストアドプロシージャを実行する方法

記事内に広告を含む場合があります。このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。問題のある表現がありましたら、お問い合わせいただけますと幸いです。

2023年リリースサイクル2でPower Appsから直接ストアドプロシージャを実行できるようになりました。

早速触ってみたので、設定方法やPower Automateとの実行時間の比較を紹介します。

設定方法

SQL Serverにストアロプロシージャを作成する

当然ですが、ストアドプロシージャを作成する必要があります。

今回利用したテーブルはこちらです。

Pythonで100万行のCSVを作り、それをインポートしました。

そして今回作成したストアロプロシージャはこちら

CREATE PROCEDURE [dbo].[SearchBirthdayBetween]
    @start_date DATE,
    @end_date DATE
AS
BEGIN
    SET NOCOUNT ON;

    SELECT *
    FROM mockdata
    WHERE birthday BETWEEN @start_date AND @end_date;
END;

日付を2つ受け取り、その期間内の誕生日のデータのみ取得するクエリです。

Power Appsからストアドを実行する

左のメニューの「データ」から「SQL Server」を選択し、SQL Serverのテーブルとの接続を作成する際と同じように接続を作成します。

右側でテーブルを選択する画面が表示されますが、「ストアロプロシージャ」タブを選択すると、作成したストアロプロシージャが選択できます。

選択し、「接続」を選択することで、「データ」にストアロプロシージャを追加できます。

補足

追加すると末尾に「_1」などのように、自動で番号などが振られた名前になります。実際にはストアド単位で「データ」に追加されていきますので、複数のストアドを利用する場合には、名前を変更して使うことをおすすめします。

「ギャラリーやテーブルに安全に使用できますか?」のチェックボックスはよくわかりませんでした。

詳しくわかる方、コメントいただけると嬉しいです。

基本的な構文はこちら

'データの名前'.ストアドの名前(
{
引数1:引数1の内容,
引数2:引数2の内容
})

左のメニューの「データ」の名前、その後ろにはストアドの名前を入力し、その引数を入力します。

※引数がなければ省略可です。

今回は取得したデータをギャラリーに表示させることにしました。

実際にはボタンのOnSelectに下記のように設定しています。

UpdateContext(
    {
        sqlst11: '20240909database'.dboSearchBirthdayBetween(
            {
                start_date: Text(
                    DatePicker1.SelectedDate,
                    "yyyy/mm/dd",
                    "ja-JP"
                ),
                end_date: Text(
                    DatePicker1_1.SelectedDate,
                    "yyyy/mm/dd",
                    "ja-JP"
                )
            }
        )
    }
);

データを表示するギャラリーの「Items」には下記の様に設定します。

sqlst11.ResultSets.Table1

あとはボタンなどから実行することでデータを取得できます。

Power Automateと処理速度比較

これまでSQL SERVERのストアドプロシージャを実行するには、Power Automateを経由しての実行でした。今回Power Appsでも可能になりましたので、実行時間を計測してみました。

正しい処理速度の計測方法が分からず、ブラウザのデベロッパーツールの機能で計測しました。

取得件数Power AppsPower Automate
1125515ms817ms
41268921ms4.11s
811391.48s12.69s
2807574.17s25.48s

計測する度に数値が異なるので、あくまで目安としての値になります。ただし、Power AutomateよりPower Appsが早い点は変わりがありませんでした。

ふー

ふー

Microsoft Power Platformを使ったり、ガジェットを買ったり、アニメ見たり、バイクに乗ったり、色々しています。

FOLLOW

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA