こんにちは。
今回は、RPAツールの「PowerAutomateDesktop」でSQLiteを使用する方法を記します。
軽量でサーバ不要なSQLiteはミニマムなRPAフローにぴったりです。
例えば、デスクトップフローの共有をしたい時、各端末に環境変数を設けるより、一元管理した方が楽ですよね。そういった利用が想定されます。
では早速、やり方を見ていきます。
Power Automate DesktopでSQLiteを使う
前提条件
・既にPower Automate Desktop がインストールしてある端末
・SQLiteがインストールされており、データベースも作成済み
データベースをまだ作成していない方は下記のリンク先を参考にしてください。
windows10にSQLite3をダウンロード、インストールする方法
今回は、Power Automate Desktopのフローを作成後、DBと接続をした後
データを取得するところまで記します。
データを追加
作成したデータベースに予め、テーブルの作成とレコードの追加をしました。
後ほど、データの取り出しを行いますのでデータを入れておいてください。
型等は必要ありませんので下記のようにテーブルを作成しましょう。
create table user(id,user_id,user_name);
後はinsert intoでテストデータを追加してください。
SQLite ODBC Driverのダウンロード
続いて、Power Automate DesktopとSQLiteの仲介をしてくれる
SQLite ODBC Driverをダウンロードします。
上記のリンクを開くと「sqliteodbc_w64.exe」とあるので、クリックしてください。
クリックするとダウンロードが始まります。
SQLite ODBC Driverのインストール
exeファイルをダウンロードできたら実行してください。
実行すると下記の画像のような画面が表示されます。
>「NEXT」をクリック
問題がないか確認してなければ同意します。
>「I Agree」をクリック
保存先のパスを指定します。
>「NEXT」をクリック
SQLite2を使用する方はチェックしてください。
>「NEXT」をクリック
>「Finish」をクリック
これでインストールが完了しました。
Power Automate Desktopから「SQL接続を開く」の設定
Power Automate Desktopを開きましょう。
フローを作成して編集画面に移ります。
サイドバーの「データベース」から「SQL接続を開く」を選択し、
フローへ追加してください。
モーダルウィンドウが立ち上がり、「パラメータの選択」を求められます。
「{x}」の左のボタンを選択します。
データリンクプロパティの選択画面が表示されるので
「Microsoft OLE DB Provider for ODBC Drivers」を選択して
「次へ」をクリックします。
その後、上部タブから「接続」を開き、
「接続文字列を使用する」を選択します。
そして、入力欄の隣にある「ビルド」をクリックします。
(a)コンピュータデータソースを使う
データソースの選択では、2パターンの設定方法があります。
今回はその2パターンをご紹介します。(a)と(b)で分けてありますのでお好きな方で設定をどうぞ。
(a)コンピュータデータソースを使用する場合は、あくまで、コンピュータ単体にしか反映されず、共有することができませんので、ご注意ください。
「データソースの選択」画面が立ち上がるので、
上部タブより、「コンピュータデータソース」を開き、
「SQLite3 Datasource」を選択して「OK」をクリックします。
SQLite3 ODBC Driver Connectという設定モーダルが立ち上がってくるので
作成したデータベースを「Browser」ボタンより選択します。
選択したら「開く」をクリックするとDatabase Nameに反映されます。
設定項目が複数ありますが、今回はテストのためスルーします。
「OK」をクリックしましょう。
ここまで完了すると、接続文字列が生成されるので「接続のテスト」をクリックして問題がなければ、「OK」をクリックして完了です。
(b)ファイルデータソースを使う
ファイルとして保存されているデータソースのため、共有することができます。
実際、作成されたdsnファイルの中身をみるとデータベースの情報が記載されています。
個人的には、こちらの方をおすすめします。
DSN名の「新規作成」をクリックします。
SQLite3 ODBC Driverを選択して「次へ」をクリックします。
参照を選択してファイルデータソースを保存する場所を指定します。
dsnのファイル名をつけて「保存」をクリックします。
先ほど、新規作成したdsnファイルを指定します。
指定が終えたら、「完了」をクリックします。
完了をクリック後、モーダルウィンドウが開きますので、
作成したデータベースを指定して「OK」をクリックします。
データソースの画面に戻ったら「OK」をクリックします。
これで、接続文字列が生成されるのでSQL接続の設定は完了です。
Power Automate Desktopから「SQLステートメントの実行」の設定
続いて、「SQLステートメントの実行 」を設定します。
「SQLステートメントの実行」をフローに追加してください。
今回は、変数名は初期値のままにします。
「SQLステートメント」にSQL分を入力しましょう。
事前に作成しておいた「user」テーブルからデータ取得を行うため下記のSQL文を追加します。
select * from user;
保存をします。
「SQL接続を閉じる」の選択
最後にSQL接続を閉じるフローを追加します。
今回は取り出したデータを変数に入れているため、
取得後は、接続不要です。
SQL接続変数を初期値のままにしている場合は、何も変更せず「保存」を選択します。
フローを実行
一通り、SQL接続からデータ取得までフローが完成したので、実行してみます。
上の画像の通り問題なくデータの取得ができました。
これで完了です。
SQL文に変数を加える
SQL文に変数を追加してデータの取得を行います。
変数を「userid」として、データは「himajin」を入力します。
select * from user where user_id = "%userid%";
SQLステートメントに上記のSQL文を入力して実行しましょう。
期待する値が取得できました。
以上で完了です。
お疲れ様でした。
おわりに
データが少ない場合、ExcelやCSV、TEXTで管理される場合も多いかと思います。
ただ、データの取り出しや挿入、更新にSQL文が使用できるのはSQLiteの強みです。
例えば、User Aさんが所属する部署を取得する場合、SQLだとJOINすれば簡単に取得できますが、CSVだと、複数のCSVファイルを作成して、呼び出しが必要です。
もしくは、同じレコードとして一つのファイルにまとめるか。
運用面から考えると圧倒的にSQL文を使った方が楽ですよね。
ミニマムなフローを作成でデータ管理に迷っている方はぜひ、検討してみてください。
以上です。最後まで読んでいただきありがとうございました。
コメント