SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Power Automate Desktopチュートリアル

Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」でデータ登録を自動化する

Power Automate Desktopチュートリアル 第9回

データベース/テーブルの作成とデータベース関連アクション

 データベース/テーブルの作成は、繰り返しや他のアクションとの連携もないのでPower Automate for Desktopで行う必要はない部分ですが(通常、上述のSSMSなどで行います)、データベース関連アクションの説明もかねて、Power Automate for Desktopで行います。

 Power Automate for Desktopのデータテーブル型変数のように、SQL Serverの[テーブル]も1つのデータを表す複数の値の組を1行として複数行格納できるオブジェクトです。その[テーブル]を複数格納できるオブジェクトが[データベース]です。単純な構成では1つの[データベース]は1つのファイル(拡張子mdf)で表します。

[1]新しいフローを作成する

 Power Automate for Desktopのトップ画面より[+新しいフロー]をクリックして、適切な名前で新規のフローを[作成]します。

[2]DBMSに接続する

 DBMSとの通信のための接続オブジェクトを作成します。以降のコマンドは、すべてこの接続オブジェクトを通じて送受信します。[データベース]アクショングループの[SQL接続を開く]アクションを配置すると、設定ダイアログが開きます。

SQL接続を開くアクションを配置
SQL接続を開くアクションを配置

 接続文字列テキストボックスの右側の[接続文字列の作成]ボタンをクリックします。

接続文字列の作成ボタン
接続文字列の作成ボタン
[データリンクプロパティ]ウィンドウ
[データリンクプロパティ]ウィンドウ

 [データリンクプロパティ]ウィンドウが表示されるので、以下の表のように設定を追加します。

[データリンクプロパティ]ウィンドウ
タブ 項目 設定値
プロバイダー 接続するデータを選択します SQL Server Native Client 11.0
接続 サーバー名を選択または入力 (localdb)\MSSQLLocalDB
サーバーへのログオン情報 「Windows NTの統合セキュリティを使用する」を選択

 [接続]タブでは、[接続テスト]ボタンをクリックし、「接続テストに成功しました。」と表示されることを確認してください。その後、[OK]ボタンをクリックすると、元のウィンドウに戻るので、接続文字列が図のように反映されていることを確認した上で、[保存]ボタンをクリックします。

SQL接続を開くアクションの設定(接続文字列)
SQL接続を開くアクションの設定(接続文字列)

[3]ドキュメントフォルダーのパスを取得する

 データベースのファイルをドキュメントフォルダーに作成するため、ドキュメントフォルダーのパスを取得します。[フォルダー]アクショングループの[特別なフォルダーを取得]アクションを配置すると、設定ダイアログが開きます。

特別なフォルダーを取得アクションの配置
特別なフォルダーを取得アクションの配置
特別なフォルダーを取得アクションの設定
特別なフォルダーを取得アクションの設定

 以下の設定を選択/入力し、保存します。

  • 特別なフォルダーの名前:ドキュメント
  • 生成された変数:%Documents%

[4]データベース(とmdfファイル)を作成する

 [データベース]アクショングループの[SQLステートメントの実行]アクションを配置すると、設定ダイアログが開きます。

SQLステートメントの実行アクションの配置
SQLステートメントの実行アクションの配置
SQLステートメントの実行アクションの設定
SQLステートメントの実行アクションの設定

 [SQLステートメント]欄に以下の内容を入力し、保存します。これは[データベース]をMAILDBという名前で作成するコマンドです。

CREATE DATABASE MAILDB ON PRIMARY (NAME=N'MAILDB',FILENAME=N'%Documents%\MAILDB.mdf') COLLATE Japanese_CI_AS

[5]テーブルを作成する

 さらに、別の[SQLステートメントの実行]アクションを配置すると、設定ダイアログが開きます。

SQLステートメントの実行アクションの配置
SQLステートメントの実行アクションの配置
SQLステートメントの実行アクションの設定
SQLステートメントの実行アクションの設定

 [SQLステートメント]欄に以下の内容を入力し、保存します。これは[テーブル]をMAIL_TABLEという名前で作成するコマンドです。

USE MAILDB
CREATE TABLE MAIL_TABLE(
  Uid int NOT NULL,
  FromUser nvarchar(max),
  ToUsers nvarchar(max),
  CcUsers nvarchar(max),
  Subject nvarchar(max),
  BodyText nvarchar(max),
  Date datetime,
  CONSTRAINT PK_MAIL_TABLE PRIMARY KEY CLUSTERED 
  (
	Uid ASC
  )
)

 メールのメッセージを格納するテーブルなので、Power Automate for Desktopのメールメッセージ型を参考にしています。接続時にデータベースを指定していないため、CREATE文の前にUSE文でテーブルの格納先になるデータベースを指定しておきます。

[6]接続を閉じる

 接続オブジェクトは、コンピュータのリソースを消費するため、使用が終わったら解除する必要があります。[データベース]アクショングループの[SQL接続を閉じる]アクションを配置すると、設定ダイアログが開きます。ここでは、既定の設定のまま、保存します。

SQL接続を閉じるの配置
SQL接続を閉じるの配置

[7]このフローを実行する(一度のみ)

 フローを実行します。実行が成功した場合、MAILDBデータベースとMAIL_TABLEテーブルが作成されています。ドキュメントフォルダーの直下に、以下のファイルができていることも確認しておきましょう。

  • MAILDB.mdf(データファイル)
  • MAILDB_log.ldf(トランザクションログファイル)
mdfファイルとldfファイル
mdfファイルとldfファイル

 フローを保存して終了します。このフローはこれ以上は使用しません。

次のページ
初期データの投入

この記事は参考になりましたか?

Power Automate Desktopチュートリアル連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 飯島 聡(WINGSプロジェクト イイジマ サトシ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15874 2022/05/25 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー