初めまして、分析屋のY.T.です。
私はIT業界での業務経験がない状態、いわゆる「業界・業種未経験」で、昨年の8月に分析屋に転職しました。
現在では支援企業でPower PlatformによるDX支援をメインに活動しております。
現在5ヶ月ほど現場での業務を経験し、Power Platformの面白さがわかってきたので、今回は自分の推しポイントについてお話できればと思います。
ローコード・ノーコード開発では、コードで処理を書く代わりに、GUIベースのUIで簡単にアプリや自働化処理を開発できます。暗記が苦手な自分としては、当初、様々あるサービスと、そのサービスでできることについて、全部覚えていかなければならない状況に不安を感じていました。ところが、最近「これがPower Platformか」と思い至ることができ、このマインドを持っていれば比較的少ない知識でも実装に当たりをつけられるようになってきたことにも気が付きました。
そこで今回は、私が今時点で思う、「Power Platformとは」について考えてまとめたものを共有できればと思います。当時の自分のように、「覚えることが多そう・・・」と不安になっている方の一助になれば幸いです。
Power Platformとは?
まず、この記事の結論を書きます。
Power Platformとは、Microsoft 365などのクラウドサービスが保存しているデータを、「コネクタ」と呼ばれるGUIベースのAPIを用いてJSON形式で送受信できるサービス環境です。
私は、Power Platformについて考える上で、3つキーワードがあると感じます。
JSON
データを、キーとバリューで持たせるデータ形式です。
Power Platformの各サービス間では、基本的にデータはJSON形式で送受信されます。
API
アプリケーション間でのデータの送受信には、基本的にAPIが関わっています。APIとは、異なるアプリケーション間でデータを送受信できるように、その形式をルール化させた仕組みのことを言います。代表的なものはRESTです。Microsoftのサービスには、Graphも使われています。
GUI
画面上で見たり、直接マウスのクリックなどで操作できる、あるいは、コードベースでは無い機能の事です。ローコード・ノーコード開発サービスは、基本的にはGUIベースのサービスです。
これらを踏まえてPower Platformが何なのかを考えると、上述のように言えそうである、と私は今のところ考えた次第です。
利用例
具体例を挙げます。
Power Automateでクラウドフローを作成している方は、「コネクタ」のお世話になっているはずです。
例えば、Power Appsで作成したキャンバスアプリから、データソースである SharePointリストにアイテムが追加されており、その追加をトリガーに、当該アイテムの内容を参照して、Teamsのチャネルに投稿したいと考えていたとします。

この場合、トリガーとしてSharePointコネクタ(あるいはPower Appsコネクタ)を使用して当該アイテムのデータを取得し、この内容から必要な情報を「トークンピッカー(別名:動的なコンテンツ)」でTeamsコネクタへ渡しています。それはもう簡単に。以下の画像では、SharePointコネクタの[項目が作成されたとき]トリガーで受け取ったアイテムの列の値の一覧から、いずれかを選択することで、後続のアクションへ渡そうとしています。

リクエストメッセージ、メソッド、エンドポイントなど、APIを使用する際に本来必要な知識を、ユーザーが意識する必要はありません。コネクタを使えば、ユーザーは自身が覚えている程度の必要な項目(リスト名、列名、チャネル名など)を選択するだけで、サービス間でデータを送受信させることができます。
そもそも、Power AppsがSharePointリストなどのデータ ソースと接続してレコードを送受信する仕組みにも、コネクタ、つまりAPIが用いられています。
一度でもプログラミング言語を用いてデータベースとアプリケーションを接続させたことがある人であれば、このおもちゃのような「コネクタ」一つでアプリとデータベースを接続できることが、いかに楽なのか理解できるはずです。これが比較的簡単にできるRailsでの開発ですら、私は以前に躓いた経験があります。ですから、初めてPower Platformに触れたとき、コネクタの便利さを感じました。
そんな便利なサービスではあるのですが、使い慣れてくると、コネクタだけでは取得できないデータがあることにも徐々に気がついてきます。
ここで、私が今回お伝えしているPower Platformとは?の話が活きてきます。
先ほどから、Power Platform内のサービス間の接続には「コネクタ」を使用しているとお話ししています。また、これはGUIベースのAPIであるとお話ししました。
コネクタはあらかじめ用意されてはいますが、取得できるデータには限りがあります。コネクタは、あくまで「標準」コネクタであり、ユーザーがよく使うであろう機能をMicrosoftがあらかじめ用意してくれているものです。
そのため、Power Platformのサービス間ですべてのデータを受け渡しできるようには設計されていません。もし標準コネクタとトークンピッカーで必要なデータを取得できない場合、それ以外の手段を考えなければなりません。
以下は少々マニアックな例ではありますが、社内のコミュニティとして用いられるサービスのViva Engageから、様々ある種類の投稿の中から「称賛」のものを取り出し、「称賛された人」の情報を取得したい、というケースを考えます。トークンピッカーを見てみても、その項目は見当たりません。

そこで思い出して欲しいのが、基本、サービスはJSON形式でデータをコネクタに渡す、という事です。トークンとして取得するのは、JSON形式のデータのうち、あるキーに対するバリューとなります。
ですから、たとえトークンピッカーに自分の欲しい情報がなくても、JSON 形式で自分の欲しい情報を取得できるのです。例えば、投稿の種類は、”type”: “praise”で「称賛」だとわかり、”description”には「誰が誰を称賛したのか」、”comment”には実際の「称賛内容」が記載されます。

GUIで作られているので気が付きづらくはありますが、トークンも、[body/id]のように、JSON形式で入出力されているデータのキーに対応するバリューであり、コネクタはこのトークンを他のサービスへ渡しています。
そうとわかれば、「このサービスからこのデータを取ってきて、こういうことしたい」とお題が生まれたときに、「たぶんこのデータ取得して、そこからこうやって必要な部分だけ取得してこの形に直せばいけるだろう」という、実装の糸口が自分の頭の中で自由に思い浮かぶようになります。
標準でコネクタやピッカーが用意されているならラッキーですし、なくても必要なものを取得するために、自分で JSON 形式のキーを書けばいいのです。上の例に戻ると、後続のアクションで@{triggerOutputs()?[‘body/attachments’][0][‘description’]}を記入すれば、トリガーとなったViva Engageの投稿から、”description”、つまり、誰が誰を称賛したのか、を取得できます。
コネクタとトークンだけを意識して開発をしていると、「できることはコネクタ内に限られている」「コネクタを暗記できるかどうかがものを言う」などと思いがちですが、今回お話しした内容が根底にあれば、意外と知識は少なくても応用ができると気がつけます。
さらに言うと、ものによっては、[HTTPリクエストを送信する]と書かれているアクションがあります。例えば、SharePointコネクタの [SharePointにHTTP要求を送信します ] アクションは、メソッドやエンドポイントなどを設定することで、SharePointサイトからかなり柔軟にデータを取得できます。他のアクションを使うとパフォーマンス上、あるいは制限上問題が出る内容についても軽量に実装が可能です。

このように、ローコードサービスであっても、その設計思想に対して理解があれば、自身の発想や開発の自由度があげられるのではないでしょうか。
まとめ
今回は、私が思う「Power Platformとは?」というお話を皆さんに共有してきました。
繰り返すと、Power Platformとは、Microsoft 365などのクラウドサービスが保存しているデータを、「コネクタ」と呼ばれるGUIベースのAPIを用いてJSON形式で送受信できるサービス環境です。この理解が根底にあれば、Power Platformをより柔軟に楽しむことができるのではないかと思います。
Power Platformのおもしろポイントについては今後も執筆予定です。また、DX支援としてのアプリやフローの作成など、支援の内容についても可能な範囲で書ければと思います。
最後までご覧いただき、ありがとうございました。
ここまでお読みいただき、ありがとうございました!
この記事が少しでも参考になりましたら「スキ」を押していただけると幸いです!
株式会社分析屋について
弊社が作成を行いました分析レポートを、鎌倉市観光協会様HPに掲載いただきました。
ホームページはこちら。
noteでの会社紹介記事はこちら。
【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!
【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。
【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。
【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。
【SES】
SESサービスも行っております。
Source link
コメント