はじめに
Power Automate Desktop から Sharepoint Online のリストに対して、直接アイテムの取得、追加、更新、削除する方法を記載します。
注意
本手順では Microsoft.ACE.OLEDB.12.0 を利用します。
「Microsoft.ACE.OLEDB.12.0プロバイダーはローカルコンピュータに登録されていません」的なメッセージが表示された場合は、下記よりインストールしてください。
https://www.microsoft.com/ja-jp/download/details.aspx?id=13255
Accessのランタイムをインストールする形でも可能です。
Microsoft 365 Access Runtime をダウンロードしてインストールする
Microsoft.ACE.OLEDB.12.0 のSPOへの接続文字列については下記を参考にさせていただきました。本当にありがたいです!
https://www.connectionstrings.com/ace-oledb-12-0/#sharepoint
接続設定
PADにて、「SQL 接続を開く」 を選択
開いたウィンドウの接続文字列に、下記を入力します。
Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=0;RetrieveIds=Yes; DATABASE=[SPOサイトURL];LIST=[リストID];
※[SPOサイトURL] と [リストID] 部分は以下の方法で取得してください。
[SPOサイトURL] の取得
対象のSPOリストが含まれるサイトのURLを入力します。「ホーム」を選択した時のURLでOKです。
[リストID] の取得
対象のリストを選択した状態で、右上の歯車マークより、リストの設定を選び
URLの"LIST="から続く文字列のうち、先頭の"%7B"と、末尾の"%7D"を除いた部分が、[リストID]になります。
データ操作
PAD から SPO リストに対してはSQLを利用してデータ操作します。
SQLのリファレンスはWebにあふれていますので、ご存じない方は調べてみてください。
今回は基本的な取得、追加、更新、削除方法を記載します。
まず、「SQL ステートメントの実行」を選びます
開いたウィンドウの、「SQL ステートメント」欄に、SQLを記載していきます。
データの取得
SELECT文を使います。
列名はSPO リストのカラム名をしてします。
テーブル名は[](大かっこ)で囲んで、リスト名を指定してもいいですが、
"list"と記載してもOKです。超便利ですね!
例です
SELECT station,arrival,departure FROM [JR_Tokaido_Inbound_Line] WHERE station = '名古屋'
または
SELECT station,arrival,departure FROM list WHERE station = '名古屋'
データの追加
INSERT文を使います。
テーブル名を"list"と記載してもいいのは取得と同じですし、SQL内に変数を入れてもいいです。
例です
INSERT INTO [JR_Tokaido_Inbound_Line] (station,arrival,departure ) VALUES ( '岐阜','9:00着','9:05発')
または
INSERT INTO list (station,arrival,departure ) VALUES ( '岐阜','9:00着','9:05発')
データの更新
UPDATE文を使います。
上記と同じですので、PADの変数を入れた例のみ記載。
UPDATE list SET station = '%NewVar%' WHERE station ='名古屋'
データの削除
DELETE文を使います。
DELETE FROM list WHERE Station = '岐阜'
接続を閉じる
作成した接続は切断しましょう。
PADにて、「SQL 接続を閉じる」 を選択
まとめ
PADからSPOリストを直接編集する方法が知りたく、色々調べてみた結果になります。
もっと簡単な方法をご存知でしたら、ご教示いたけると嬉しいです。