PowerAutomateの仕組み|なぜ他のアプリと情報をやり取りできるのか?
PowerAutomateの仕組みが知りたい
PowerPlatformに属するアプリ群の中でRPAを担当しているのがPowerAutomateです。
できることは非常に幅広く多岐に渡ります。できることの中から使用頻度が高い作業をいくつか挙げてみます。
- SharePointのリストから情報を取得する
- Outlookの受信トレイからメールの本文を取得する
- Teamsでチャットボットを使いグループメンバーにチャットを飛ばす
箇条書きのように色々なことができるのですがそもそもなぜこんなことができるのでしょうか?
PowerAutomateの中で用意されたコネクタに情報をセットします。
そうすると各アプリから情報を取得することができます。
しかしなぜかと言われるとそこまでは分かりません。
仕組みとしてはAPIを使用しています。
しかしユーザーにはAPIを感じさせない様アレンジされています。
具体的には「コネクタを使った作業」ですね。
まずは結論です。PowerAutomateはAPI通信を利用して各アプリと情報のやり取りをします。
多くのユーザーはコネクタを使用していますがコネクタの裏ではAPIを使った通信が行われています。
コネクタとAPIについて解説する中で2つの要素がどうやってつながっているのかを説明していきます。
関連記事
本記事を読んだ後は関連記事も読んでみてください。
PowerAutomateで「HTTP要求を送信します」というコネクタを使うとAPI通信を自作することができます。
「HTTP要求を送信します」コネクタを使った作業フローの解説をしている記事を載せておきます。
PowerAutomateは何ができるのか
PowerAutomateのできることをおさらいしておきましょう。
リンク先の箇条書きを読んでいただくとPowerAutomateでなにができるのかを簡単に理解することができます。
キーワードは「コネクタ」です
リンク先の記事の中に「各アプリケーションとの連携による情報の統合」という記載があります。
この中にある「コネクタ」という機能を用いて各アプリケーションとの連携をとっています。
よってコネクタへの理解を深めることがPowerAutomateを理解する為の近道であると言えます。
PowerAutomateのコネクタとは
早速コネクタについて情報を整理しておきましょう。
コネクタは様々なアプリケーションと連携するためのインターフェースです。
コネクタ内で情報を選択、記入することで特定のアプリケーションから情報を取得することができます。
画像はSharePointの「パスによるファイル メタデータの取得」というコネクタです。
コネクタにパラメータをセットしてフローをテストしましょう。画像の様に情報を取得することができます。
コネクタを経由してAPI通信を行う
紹介した一連の操作の裏では後ほど紹介する「API通信」を行っています。
本来API通信は多少のコーディングが必要になります。実は少々難しいです。
PowerAutomateではその難しい作業(APIへの指示)をコネクタへの情報入力に置き換えています。
この様にコードを書かなくても色々なアプリから情報を集めてくれるのがPowerAutomateのコネクタです。
参考:Microsoftの公式ドキュメント
Microsoftのドキュメントをご覧ください。コネクタについて詳しく説明しています。
コネクタの概要
HTTP コネクタは Representational State Transfer (REST) アーキテクチャを使用しており、これにより、ユーザーが Web 要求を使用してデータと直接対話できます。
また、フロー作成者は、Power Automate フローを使用しながら、Web サービスの機能をセキュアな方法でフル活用することができます。
Microsoft:Power Automate の HTTP コネクタの概要から抜粋
少々難しいのでこの段階では「コネクタを使えば安全にデータを取り回すことができる」という理解でOKです。
加えて新たに「REST」というキーワードが出てきました。以降でさらに詳しく解説していきます。
メリット
アイコンによる簡単な操作だけで各アプリと情報のやり取りができるのがコネクタの最大のメリットです。
コネクタの操作ができれば以降で説明するAPIを理解しなくても作業フローを構築することができます。
デメリット
特定のコネクタが無いとPowerAutomate内で作業フローを構築することができません。
例を1つ提示します。SharePointのリストから情報を取得したいという状況を想定してください。
コネクタでフローを構築している人はこの作業にピンポイントで一致したコネクタが無いと作業ができません。
裏を返せば特定のコネクタの範囲内でしか作業フローを構築することができないという事になります。
コネクタが無い時はどうしましょうか・・・
上級者になればコネクタを自作できます。
初心者の頃は既存のコネクタに作業を合わせるよう努力しましょう。
APIとは
続いて本記事のキーとなる要素です。APIとは何かを解説します。
APIとは
ChatGPT:APIについて教えて
- Application Programming Interfaceの頭文字をとってAPIと表記される
- 異なるアプリが互いに通信したり機能を利用したりするための共通インターフェース
- 開発者は特定の内部実装を知らなくても他のアプリやサービスの機能を活用することができる
ひとことで表現するとAPIは「各アプリが情報を送受信するための店舗」です。
店舗では外部からのオーダーを受け付ける体制、オーダーを決まった形で返す体制が整えられています。
例えば「〇〇というオーダーは××というかたちで返しますよ」という様な決まりです。
この決まりを使ってユーザーはAPIという店舗にオーダーすることで必要な情報を取得することができます。
APIを使って情報のやり取りをすることを「APIによる通信」、もしくは「API通信」と呼んでいます。
PowerAutomateでは各アプリケーションとAPI通信を行う際にコネクタを使用しています。
店舗へのオーダーを毎回書くのは大変です。加えてオーダーの書き方を間違えるとエラーが出ます。
よって多くのユーザーはオーダーのテンプレートとしてコネクタを使いAPIに仕事を依頼する事になります。
メリット
APIが実装されている各種アプリは互いに情報を受信、送信することができるようになります。
デメリット
APIは一連の考え方を理解するが非常に難しいです。加えて使用時にはコーディングが伴います。
よって理解して使える様になるまでにある程度の勉強と時間が必要になります。
PowerAutomateではAPIの勉強を回避できます。
コネクタを使いましょう。
コネクタが大きな役割を担っていることがわかりました。
APIは既に準備されています
基本的にAPIはアプリケーション側が用意してくれています。
詳細は各アプリケーションの公式ドキュメントを確認ください。
PowerAutomateでコネクタが用意されているアプリケーションには既にAPIが実装されています。
APIに直接命令するかコネクタ経由で命令することで各アプリケーションから情報を取得する事ができます。
APIは仕様が決められている
APIに直接命令する時はAPIの仕様を理解していないとどうやって命令を出したら良いのか分かりません。
という事はAPIはある程度決まった仕様でだれでもアクセスできるなどの汎用性が求められます。
そこでAPIは一定のガイドラインのもと作られることが推奨されています。RESTの原則という考え方です。
RESTの原則
APIを理解するうえで必須となるガイドラインを紹介します。「RESTの原則」という設計思想です。
これは「APIを用意するにはこんな感じで作りましょう」というAPI作成におけるガイドラインです。
RESTは西暦2000年ごろから海外の論文で提唱され始めた概念で主に6つのカテゴリーに大別されます。
6つのカテゴリーを簡単に説明しています。
分かりにくなと思ったら読み飛ばしてください。
- 1_クライアントサーバー構造
-
システムを定義するときにクライアントとサーバーをしっかり決めることが重要です。
クライアントとサーバーを分けることで指示の方向を明確にし操作をシンプルにします。
- 2_ステートレス
-
クライアントからサーバーへの各リクエストは独立しています。
サーバーは単一の命令を返すというシンプルな仕様になり他の要素を管理する手間が省けます。
- 3_キャッシュ可能性
-
主にレスポンス向けの考え方です。キャッシュが分からない方はこちらをご覧ください。
リクエストに対してキャッシュが用意されていると応答時間の短縮につながります。
- 4_統一インターフェース
-
標準的なHTTPメソッドを使用することが推奨されています。
PowerAutomateでは主にGETメソッドとPOSTメソッドを使うことになります。
- 5_リソース思考
-
アクセス対象を明確にするという考え方です。URIを用いることで一意に識別されます。
- 6_階層化システム
-
APIは構造化(階層化)して用意することが望ましいです。
リクエストの質により処理を分けることでシステムに柔軟性を持たせることが推奨されています。
6つあります。第一印象として「なんだかよく分からない」と思いませんか?少し項目を減らしましょう。
私見ですがこの中でより重要なのは2つです。4番の「統一インターフェース」と5番の「リソース思考」です。
この2つの要素についてさらに深掘りしてみます。
重要なのは「HTTPメソッド」と「URI」という事ですね。
統一インターフェース
「統一インターフェース」は多くの環境で使っているHTTPメソッドを使うという思想です。
まずはHTTPメソッドというキーワードについて説明します。
HTTPメソッドはWeb空間で情報をやり取りする方法の1つです。
PowerAutomateでも複数のHTTPメソッドを使うことができるのですがまずはこの2つだけ覚えてください。
- GETメソッド ・・・ 情報を取得するときに使うメソッド
- POSTメソッド ・・・ 情報を更新する時に使うメソッド
実際にどうやって使うのか知りたいという方は記事冒頭でも紹介したこちらの記事をご覧ください。
リソース思考
「リソース思考」はサーバーへの問い合わせはURIを使うという考え方です。まずはURIについて説明します。
URIはサーバーに格納された情報にアクセスするためのパスを含めた一連の情報群です。
URIはURLと比較すると分かりやすいです。こちらの画像を見ていただくとURIを理解することができます。
コネクタを使えばフローを構築できるのにAPIを理解する必要があるのか?
基本的にはAPIを理解する必要はないです。理由はコネクタだけで業務フローを組めばよいからです。
APIを理解する必要があるケースは以下のようなケースです。ほとんどは1番のケースです。
- コネクタに無い作業フローを組むことになった時
- PowerAutomateで何が行われているのかどうしても気になる時
PowerAutomateでは多くのコネクタが用意されているのでほとんどの作業をカバーすることができます。
しかしごくまれにコネクタが用意されていないケースがあります。例を1つ挙げてみます。
SharePointで用意したチームサイトのドキュメント内に格納してあるファイル名の変更
画像はあるチームサイトのドキュメントです。ここに「クラウド.png」という画像が1枚格納されています。
このファイル名を「くも.png」に変えたいのですが既存のコネクタは無いので作業ができません。
こんな時にAPI通信を理解していると作業フローを構築することができる様になります。
実際に作業する時はRESTの原則で紹介したHTTPメソッドを使用してファイル名を書き換える事になります。
まとめ
PowerAutomateで「なぜ他のアプリと情報をやり取りすることができるのか」について解説しました。
基本的にはAPI通信によって色々なアプリと情報の受け渡しが行われています。
ユーザーはAPI通信を簡単には理解できません。よってコネクタを使ってAPI通信を行っているのが現状です。
そして一連の作業を管理しているのがPowerAutomateという事になります。
次の記事:コネクタに無い作業を作ることができるコネクタがあります
PowerAutomateにはコネクタを自作できる機能があります。実は自作用のコネクタが用意されています。
「HTTP要求を送信します」というコネクタです。
このコネクタを使えば既存のコネクタに無い作業を作ることができます。
次の記事では実際に「HTTP要求を送信します」というコネクタを使って作業フローを構築してみます。
このコネクタが使えるようになるとよりPowerAutomateを理解することができます。