Power Platform | MISO https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com 未来を創造するITのミソ Tue, 10 Sep 2024 07:36:59 +0000 ja hourly 1 https://wordpress.org/?v=6.7.2 https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/wp-content/uploads/2017/09/tdi_300-300-300x280.png Power Platform | MISO https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com 32 32 Power Automateのプレミアムコネクタを使ってRest API連携してみた https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/power-automate-premium-connector Mon, 09 Sep 2024 01:45:11 +0000 https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/?p=18187 1.はじめに 近年、デジタル化が進んでいく中で、企業は多くのデータを蓄積し、それを活用することでビジネスを発展させています。 業務で利用されるデータは、クラウドサービスやシステムを通して、データの抽出、更新、追加などを行…

The post Power Automateのプレミアムコネクタを使ってRest API連携してみた first appeared on MISO.]]>
1.はじめに

近年、デジタル化が進んでいく中で、企業は多くのデータを蓄積し、それを活用することでビジネスを発展させています。

業務で利用されるデータは、クラウドサービスやシステムを通して、データの抽出、更新、追加などを行いながらデータを蓄積し、そのデータを連携することで業務を進めていくことが多いと思います。昨今のクラウドサービスは、『Rest API(Restful API)』を提供していることが多く、『Rest API』機能を利用することで、手動でWebなどからデータを抽出、更新するより、手間なくデータを活用できます。

※補足:「Rest API」とは、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、Rest(Representational State Transfer)の原則に基づいて設計されたAPIを指します。HTTPメソッドとURLを使って、特定のリソース(例:ユーザー情報や商品情報などのデータ)を操作します。GET(データの読み込み)、POST(データの追加)、PUT(データの修正)、DELETE(データの削除)などのリクエストを使用してデータを操作できます。

本稿では、このRest APIを『Microsoft Power Platform(以下、Power Platform)』の『Microsoft Power Automate(以下、Power Automate)』を活用して、利用する方法ならびに作成例を記述していきます。

2.Power Automateとは

Power Automateとは、ビジネスニーズに合わせたカスタムアプリをローコードで作成できるMicrosoft社のクラウドサービス『Power Platform』のひとつです。

Power Automateは、Microsoft 365のTeamsやOutlook、外部のBoxやGmailなどのクラウドサービスと連携することで、作業タスクの自動化や繰り返される業務プロセスの自動化ワークフローを作成できます。作成したワークフローにより、データ連携やコミュニケーション効率化を図り、業務効率の向上を実現できます。

Power Automateにおいて、クラウドサービスと連携するための接続にはコネクタと呼ばれる機能を利用します。このコネクタを利用することで、プログラミングスキルがない市民開発者でも簡単にさまざまなクラウドサービスと連携し、業務を自動化できるようになります。

3.コネクタとは

Power Automateにおける外部サービスと連携するコネクタについて、詳しくご紹介します。

コネクタとは、Microsoftが用意した、サービスやシステムと連携できるAPIのことを指します。現時点で、TeamsやSharePointなどのMicrosoft 365サービスや、SAP、Oracleなど外部連携サービスのコネクタなど、数百種類あります。例えば、Teamsに対する業務を自動化したい場合、Microsoft Teamsというコネクタを使うことで、チームメンバーにメッセージを送る、Teams会議を作成するなどのアクションを設定できます。

図1:Microsoft Teamsコネクタとアクション<青枠:コネクタ><緑枠:アクション>

コネクタには大きく分類すると2つの種類があります。1つは、標準で利用できる『スタンダードコネクタ』と呼ばれるもの、もう1つは有償プランを契約することで利用できる『プレミアムコネクタ』と呼ばれるものがあります。

※補足:Microsoft 365を導入している企業は『スタンダードコネクタ』を追加費用無しで利用できますが、『プレミアムコネクタ』は追加費用が必要となります。

プレミアムコネクタの中には、SQL ServerやMy SQLなどのDBMS等のサービスへ連携できるコネクタや、HTTPプロトコルを利用して内部もしくは外部のサービスと連携できるコネクタなどさまざまな種類のコネクタがあります。

本稿で作成するワークフローは、Microsoftがコネクタを用意していない、外部サービスが提供している『Rest API』を実行するため、プレミアムコネクタであるHTTPコネクタを利用します。

4.Power AutomateでRest APIを実行するフローを作成

4-1.Rest APIの準備

Power AutomateのプレミアムコネクタであるHTTPコネクタを活用して、『Rest API』を活用する方法について見ていきます。

今回の題材として、前月の日本の総人口を取得して、対象者に通知する処理を自動化します。

取得するデータは、e-Stat(政府統計の総合窓口)と呼ばれる、さまざまなデータが取得できる統計のポータルサイトを利用します。e-Statは『Rest API』を提供しています。今回は、Power AutomateのHTTPアクションを利用して『Rest API』連携を行い、前月の総人口を取得します。取得したデータをMicrosoft Teamsによるチャットで通知するワークフローの作成手順をご紹介します。

※補足:『e-Stat』(政府統計の総合窓口)は、各府省が公表する統計データを一つにまとめ、統計データを検索したり、地図上に表示できるなどの、たくさんの便利な機能を備えた政府統計のポータルサイトです。このポータルサイトでは、データベース化されている統計データを機械判読可能な形式(XML、JSON等)で出力する『Rest API』を提供しています。

図2:作成する自動化ワークフローの概要図

実際に、フローを作成する手順を見ていきます。

e-Statが提供している『Rest API』を利用するためには、アプリケーションIDを取得する必要があります。アプリケーションIDは利用するシステムごとに取得します。今回は以下の設定で、アプリケーションIDを発行します。

取得ページ<https://www.e-stat.go.jp/mypage/view/api>

・『名称』・・・MISO記載用

・『URL』・・・http://test.localhost/

・『概要』・・・Power Automateで利用の検証の為

「発行」をクリックすると、図3の赤枠「appId」に英数字の羅列が表示されます。これがアプリケーションIDとなります。

図3:『e-Stat』のアプリケーションID取得画面

次に、前月の日本の総人口を取得するための『Rest API』を取得します。取得したいデータは、以下のホームページ上から検索して、見つけることができます。

図4:e-Statホーム画面

今回は、国勢調査の『人口推計 / 各月1日現在人口 概算値』のデータを取得したいため、その画面まで移動します。対象の以下の画面では、ここで取得できるデータの概要や項目についての情報が記載されています。このデータは、毎月1日の現在の人口推計データを『男女別』『年齢5歳階級』『時間軸(年月)』のカテゴリごとにデータ保管されています。本画面において、以下赤枠の『API』ボタンをクリックすると、データを取得するための『Rest API』が自動的に発行されます。

図5:『人口推計 / 各月1日現在人口 概算値』のデータセット画面

今回作成するフローは、『Rest API』のレスポンスを、『JSON の解析』アクションでデータを解析し、必要な項目を取得するロジックとするため、JSON形式で受け取れるURLにする必要があります。【API リクエスト URL】画面において、発行する『Rest API』レスポンスが、JSON形式になるように、ファイル形式を『JSON形式』に変更します。ファイル形式を変更した後に、発行されたURLをコピーして保管します。このURLが、データを取得するためのリクエストURLとなります。このURLでリクエストすることで、『人口推計 / 各月1日現在人口 概算値』のレスポンスをJSON形式で受け取ることができます。

図6:『人口推計 / 各月1日現在人口 概算値』の『Rest API』のリクエストURL発行画面

これで、『Rest API』のリクエストURLを作成できました。しかし、これを実行するためには『appId=』の後ろに、マイページで発行したアプリケーションIDをつなげる必要があります。アプリケーションIDを含めたURLでリクエストすることで、『人口推計 / 各月1日現在人口 概算値』を取得することができます。

『Rest API』・・・http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?appId=『アプリケーションID』&lang=J&statsDataId=0003443838&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y&sectionHeaderFlg=1&replaceSpChars=0

今回取得したいデータは、前月の男女合計の全年齢の人口総数です。取得したいデータ条件だけに絞り込むため『Rest API』のパラメータを設定します。パラメータは、『getStatsData?』の後ろに条件にあう値を追加することで、設定できます。また、複数のパラメータを設定するには、『&』を付けてつなげることで可能です。今回は、以下のように3つのパラメータで取得したい条件のデータに絞り込むことができます。

★前月の全年齢の男女合計の人口に絞る条件
条件①:男女合計 ・・・ パラメータ①:cdCat02=’000′ 
条件②:全年齢 ・・・ パラメータ②:cdCat03=’01000′
条件③:前月 ・・・ パラメータ③:cdTime=’2024000505′
※2024年5月のデータが欲しい場合の条件となります。

実行版『Rest API』・・・http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?『パラメータ①』&『パラメータ②』&『パラメータ③』&appId=『アプリケーションID』&lang=J&statsDataId=0003443838&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y&sectionHeaderFlg=1&replaceSpChars=0

これで、ワークフローで実行したい『Rest API』が完成となります。

4-2.Power Automate クラウドフローの準備

『Power Automate』で作成するワークフローに、用意した『Rest API』を組み込んで、毎月1日に前月の日本の総人口を取得して、通知するワークフローを作成していきます。
スケジュールで起動するワークフローであるため、『スケジュール済みクラウドフローを構築する』から作成を開始します。『人口推計 / 各月1日現在人口 概算値』は、当月1日には、前月の1日のデータが更新されているため、スケジュール条件を以下のように設定してワークフローの作成を開始します。

『開始日』・・・2024/6/1

『時間』・・・10:00 AM

『繰り返し間隔』・・・1ヶ月

図7:『スケジュール済みクラウドフローを構築する』の作成画面

新規作成したワークフローを、今回はクラシックモードで改修していきます。
新しいデザイナーのトグルをオフにすると、以下の画面が表示されます。

図8:トリガー設定後のPower Automateフローの初期画面

『Rest API』を実行時の条件③は、実行した月の前月を設定する必要があります。そのため、フローの実行時の現在の日時から前月を取得し、パラメータ③のルールに沿う日付形式に変換した値を求めて設定する工程を行います。

新しいステップから『現在の時刻』アクションを追加します。

図9:設定した『現在の時刻』アクション

『時間からの減算』アクションにより、取得した現在日付の1カ月分過去に遡った値に変換します。基準時間には、『現在の時刻』アクションで取得した動的コンテンツ『現在の時刻』を利用します。

図10:『時間からの減算』アクションの設定内容

どの年月のデータであるかを通知先へ連携するために、年月を持った変数を作成します。
前月の日付データを元に、『Rest API』に設定できる形式にするために、formatDateTimeを活用して、表示形式を変更します。『時間からの減算』アクションで取得した動的コンテンツ『時間からの減算』を変換して、変数に初期値として以下を設定します。

『値』・・・formatDateTime(body(‘時間からの減算’),’yyyy00MMMM’)年 formatDateTime(body(‘時間からの減算’), ‘MM’)月
※APIの条件③に設定する値は、5月の場合は’2024000505’とするため、上記を設定

図11:『変数を初期化する』アクションで条件③の引数を持つ変数の設定内容

条件の準備が完了したら、『HTTP』アクションを活用して、『Rest API』を実行するロジックを組み込みます。コネクタ『HTTP』の『HTTP』アクションを選択して、展開します。図12のように、条件①~③を設定した『Rest API』をURlに設定します。HTTPメソッドは『GET』であるため、方法で『GET』を選択し、アクションの設定が完了します。条件③には、変数『API設定引数』を設定します。

図12:『HTTP』アクションのAPI情報の設定内容

『HTTP』アクションで実行した『Rest API』のレスポンス結果のオブジェクト内にある前月の日本の総人口を参照するには、『JSONの解析』アクションを追加する必要があります。解析によりPower Automateフロー内で、動的コンテンツとして取り扱うことができます。

このアクションは以下の流れで設定します。

・『Rest API』を実行して、解析したいJSON形式の出力結果をコピーする

図13:Rest APIの実行結果画面<青枠:レスポンス結果><赤枠:RestAPI>

・JSONの解析アクションを追加する

・解析したいデータ『HTTP』アクションの動的コンテンツ『本文』をコンテンツに指定する

図14:『JSON の解析』アクションの設定内容

・『サンプルから生成』にて、コピーした出力結果を貼り付けて完了ボタンをクリックし、スキーマを自動生成する

図15:『サンプルからの生成』の設定内容

図16:自動設定されたスキーマの内容

上記の『JSONの解析』により、今回参照したい、その月の人口と人口の単位を、動的コンテンツに設定できます。

・人口は、『オブジェクトValue内の$』動的コンテンツに格納されます。 

・人口の単位は、『オブジェクトValue内のunit』動的コンテンツに格納されます。

最後に、『Microsoft Teams』コネクタの『チャットまたはチャネルでメッセージを投稿する』アクションを活用して、前月の日本の総人口を指定の宛先にチャットする処理を組み込みます。

・投稿者・・・『フローボット』(フローボットからの送信)

・投稿先・・・『Chat with Flow bot』(チャネルではなく受信者へ直接送信する設定)

・Recipient・・・自身のアカウントを設定

・Message・・・男女合計の『変数(‘取得年月’)』の総人口
        Value内の$(人口)Value内のunit(人口の単位)

図17:Teamsのチャットで通知先に送る設定の内容

上記で、前月の日本の総人口を取得して対象者に通知するフローの作成が完成です。
6月時点で、本フローを実行すると、通知先へ以下のメッセージが届きます。

このワークフローにより、毎月e-Statへアクセスして必要なデータのみに絞って総人口を確認するという手間を省けるようになります。

 

5.おわりに

e-Statに限らずさまざまなシステムで『Rest API』に対応しているシステムはたくさんあります。また、本稿のワークフローでは、用意されている『Rest API』の特性上HTTPメソッドのGETを使った処理をご紹介しましたが、POST、PUT、DELETEなどのリクエストも『HTTP』アクションでは実現できます。

『Power Automate』のコネクタを使って『Rest API』連携によるデータ操作に関わる業務を効率化していきましょう。

The post Power Automateのプレミアムコネクタを使ってRest API連携してみた first appeared on MISO.]]>
RPAのMicrosoft Power Automate DesktopとUiPathを比べてみた https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/microsoft-power-automate-desktop-uipath Mon, 28 Dec 2020 05:00:48 +0000 https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/?p=11893 Microsoft Power Automate Desktopとは Microsoft Power Automate Desktop(以下Automate Desktop)とは、Microsoft社の年次イベント「Ig…

The post RPAのMicrosoft Power Automate DesktopとUiPathを比べてみた first appeared on MISO.]]>
Microsoft Power Automate Desktopとは

Microsoft Power Automate Desktop(以下Automate Desktop)とは、Microsoft社の年次イベント「Ignite 2020」でパブリックレビューが開始された、RPA機能を持った新製品です。

もう少し詳しく説明しますと、Microsoft社が提供しているPower Platformという製品群の中にあるPower Automateという製品に、RPA機能を組み込んだものがAutomate Desktopです。

Power Platformの中にはPower Automate以外にもPower Apps、Power BIという製品があります。 Power Platform及びPower Appsについてはこちらの記事がありますので是非ご覧下さい。

今回はAutomate Desktopでロボットを作成していき、その機能とPower Platformの製品としての特色を、tdiで導入支援等を行っていますRPAプラットフォーム「UiPath」と比較しながらご紹介します。

Microsoft Power Automate DesktopとUiPathの機能を比較

RPAのシナリオ作成で機能を比較してみた

今回は実際にRPAのシナリオを作成しながら、Automate DesktopとUiPathの機能を比較します。

なお、シナリオは以下の記事と同じ交通費検索とします。

事前準備

Excelファイルに事前に出発駅と到着駅を入力しておき、両駅の区間の料金をExcelファイルに書き込みます。

用意したExcelファイルは以下のような内容です。このシナリオを「Demo_miso」という名前で作成します。

Excelファイルの起動

シナリオ作成を以下の手順で設定します。

  1. 左側のアクションにある「Excel」をクリックします。
  2. 「Excelの起動」を中央のMainにドラッグします。
  3. ドキュメントパスに今回使用するExcelファイルを指定します。

下図のように指定したExcelのファイル名の起動のシナリオが作成できます。

  • UiPathとの比較

UiPathではExcelを使用するのに、Excelアプリケーションスコープを定義してからExcelファイルの読込のシナリオを設定していきます。Automate Desktopではそのような定義はいりません。

Excelのセルの読込とセル格納用の変数設定

次に読み込んだExcelから、出発駅と到着駅の値を取得し、変数に設定します。出発駅は「StartSt」という変数、到着駅は「EndSt」という変数に設定します。

シナリオは以下の手順で設定します。

  1. 出発駅の読込として「Excelワークシートの読み取り」を中央のMainにドラッグします。
  2. 読み取りたいセルを指定します。(取得を単一セルの値・先頭列・先頭行を数字で指定します)
  3. 到着駅も同じ手順で「EndSt」を作成します。

Excelの読込のシナリオが下図のように作成されます。

  • UiPathとの比較

セルの設定方法は、Automate Desktopでは行・列を数字での指定のみ、UiPathでは「A1」という指定です。変数は、Automate DesktopではExcelのセル読込み処理で自動生成され、UiPathではプロパティ設定で明示的に指定します。

レコーディング機能を使用したブラウザでの操作

画面上部のWebレコーダーをクリックして、レコーディングの操作を行います。

以下の手順で設定と操作します。

  1. 事前にレコーディングしたいサイトをブラウザで立ち上げておきます。
  2. 画面上部のWebレコーダーをクリックすると使用するブラウザの選択を促す下図の画面が表示されます。
  3. 使用するブラウザを選択します。
  4. 次に下記の画面が表示され、記録の開始をクリックします。
  5. ブラウザの操作を行うと操作の記録が下図の様に記録されます。

下図のようにflow designer画面にレコーディングの内容が反映されます。

  • UiPathとの比較

レコーディング開始時、Automate Desktopではブラウザの選択をします。UiPathでは選択しません。

レコーディング機能で作成された内容にExcelから読み込んだ内容を反映

先ほどの操作ではレコーディングの内容でシナリオが作成されているので、次はExcelから読み込んだ内容をシナリオに反映します。以下の手順で設定します。

  1. 「webページ内のテキストフィールドに入力する」を編集モードにします。(ダブルクリックで「アクションを編集」するが表示されるのでクリックします)
  2. テキストの部分の「%新大阪%→%StartSt%」に変更します。
  3. 下図のように「{X}」をクリックすると変更できる変数一覧が表示されるので、変更する変数をダブルクリックします。
  4. 到着駅のテキスト部分も「%東京%→%EndSt%」とします。
  • UiPathとの比較

Automate DesktopとUiPathでは操作方法は異なりますが、事前に作成した変数を選ぶ機能について違いはありません。

レコーディング機能で作成されたWeb上に表示された金額を変数へ格納する

レコーディングの内容でWebページ上の金額を取得するシナリオ部分を、以下の手順で変更します。

  1. 「Webページの詳細内容を取得します」を編集モードにします。下図のように表示され生成された変数を変更します。
  2. 画面から読み取った内容が変数に格納されます。

下図のflow designer画面が変更したシナリオの内容になります。

  • UiPathとの比較

Automate DesktopとUiPathではレコーディングで取得できたWeb上の文字が自動生成された変数に格納される機能についての違いはありません。

金額の書き込みとExcelファイル保存

以下の手順で設定します。

  1. 「Excelワークシートの書き込み」を中央のMainにドラッグします。
  2. 書き込みたい値を指定します。「変数:%Li%」
    (画面上{X}をクリックして設定したい変数をダブルクリックします)
  3. 列:3・行:2を指定します。
  4. 保存をクリックします。
  5. 「Excelを閉じる」を中央のMainにドラッグします。
  6. 「ドキュメントを保存する」を選択します。
  7. 保存をクリックします。
  • UiPathとの比較

UiPathではExcelを使用するために、Excelアプリケーションスコープを定義してからExcelファイルの保存のシナリオを設定します。Automate Desktopではそのような定義はいりません。

Automate Desktopのロボットのシナリオの完成

flow designer画面にシナリオが完成しました。画面上部の保存をクリック、OKをクリックしてシナリオ作成完了です。

上図の実行をクリックすると、テスト実行できます。シナリオ実行後のExcelは下図のように金額が書き込まれています。

RPAが使用できる画面を作成してみた

はじめに紹介したように、Automate DesktopはPower Platformの製品の一部です。そこで、Power Platformの製品としての特色をRPAが使用できる画面を作成してみました。

事前準備

連携の処理を作成する前提として、「オンプレミス データ ゲートウェイ」をAutomate Desktopを実行するPCにインスト―ルをしておく必要がありますので事前に設定をしておいて下さい。

※オンプレミス データ ゲートウェイについてはMicrosoft社公式ドキュメントを参照ください。

Power Automateとの連携

RPAが使用できる画面を作成の前にAutomate Desktopで作成した「Demo_miso」というRPAのシナリオをPower Automateに連携させてみます。Power Automateとの連携は、Power Automateのフローをマイフローの画面で新規→自動で一から作成でフローを作ることができます。

下図のように、フロー作成画面が表示されます。

作成のステップは以下の手順となります。

  1. トリガーのステップの作成をします。
  2. Automate Desktopで実行するというステップを作成します。

この2ステップのみでPower Automateのフローが完成です。

今回のフローでは「手動でフローをトリガー」のステップをトリガーとして作成してみましたが、他にも、メールを受信・OneDriveにファイル作成等の指定が容易にできると思います。

Power Appsとの連携

Power Appsとの連携作成についての事前準備

Power AppsがトリガーのPower Automateのフローを先ほどの操作のようにあらかじめ作成しておきます。Power AppsはPower Automateのように直接Automate Desktopを実行するという設定ができないので、Automate Desktopで実行するというステップが組み込まれたPower Automateのフローの事前に作成しておきます。

フロー名をDemo_miso_Flow2とし、保存しておきます。

上図のフローをキャンパスアプリのボタンをクリックした操作で実行できるように作成してみます。

Power Appsのキャンパスアプリの作成

Power Appsの新しいアプリ→キャンパスアプリで作成を始めます。

上図の様に空の作成画面が表示されるので、作成をします。作成のステップは以下の手順です。

  1. 空の画面にタイトルとボタンを設定します。
  2. ボタンをクリックするとPower Automateで作成したフロー「Demo_miso_Flow2」が実行するようにします。

下図のように作成してみました。「デモ 実行」ボタンをクリックするとPower Automateのフロー「Demo_miso_Flow2」を実行するという関数を記述するだけで作成できました。Power Automateの「Demo_miso_Flow2」のフローが実行されるとAutomate Desktop のRPAシナリオ「Demo_miso」が実行されます。

今回作成したPower AutomateのフローとPower Appsのキャンパスアプリの作りは非常にシンプルですが、簡単にAutomate Desktopとの連携ができました。

  • UiPathとの比較

UiPathではRPAが使用できる画面を作成する機能はありません。Automate Desktop はPower Platformの製品と連携すると、RPAが使用できる画面が作成できます。

デプロイ方法を比較してみた

画面の作成だけはなく他にもUiPathにはない特色があります、下図をご覧下さい。PCで作成されたAutomate Desktopの一覧表示画面です。

下図は、Microsoft社のPower Appsのページにアクセス後、「フロー」の画面へ遷移し「UIフロー」をクリック後の画面です。

同じように、作成したRPAのシナリオ「Demo_miso」が一覧として表示されています。この画面は「Power Automate」のフロー一覧が表示される画面でもあります。

実は、筆者はPC上で作ったRPAのシナリオをPC上からサーバーにアップロードというような操作を一切していません。が、PC上でRPAのシナリオを作成保存するだけでこのようにサーバー上に反映されます。

この機能だけでも、Power Platformとの連携の親和性や容易さを感じられます。

  • UiPathとの比較

UiPathではStudioというRPAシナリオ作成ツールで「パブリッシュ」という操作を手動で行ってデプロイします。Automate Desktopは手動の操作はいりません。

Microsoft Power Automate DesktopとUipathの機能の比較まとめ

Automate Desktopを使ったシナリオ作成手順を紹介してきました。そこでの一連の作成の手順を踏まえて機能の比較結果を下表にまとめました。今回のシナリオではExcel操作とWebレコーディングを使用したのでその機能での比較です。また、RPAが使用できる画面作成・デプロイについても比較します。

機能 共通点 Automate Desktopの特徴 UiPathの特徴
Excelへの読込・書込 起動→Excel読み書き→終了(保存)という手順 Excelを使用するための定義が不要 Excelアプリケーションスコープを定義
Excelのセルの指定方法 なし 行・列を数字での指定 「A1」という指定
Webレコーディング 記録開始→ブラウザでの操作→記録終了という手順 レコーディング開始時にブラウザを選択 ブラウザ選択不要
変数設定 レコーディング時Webからの読み取り操作時に自動生成される Excelのセル読込み処理で変数が自動生成される 明示的に指定する
RPAが使用できる画面の作成 なし Power Appsを使用することで作成できる 機能なし
デプロイ PC上から行える ツールでの操作が不要 StudioというRPAシナリオ作成ツールで「パブリッシュ」という操作を手動で行ってデプロイ

Microsoft Power Automate DesktopとPower Platformとの連携について

Power Automateという製品にRPA機能を組み込んだ製品ということで、連携の手順や方法はとても簡単です。「アプリを作成する」ためのツールというPower Platformというローコード開発基盤の考えに沿っているように思えました。この連携機能を多いに活用すれば、RPAを人が実行する時の手段として非常に有効に感じました。

所感

上記表のように、Automate DesktopとUiPathどちらもRPAのシナリオ作成の機能に大きな違いは見受けられないと思います。シナリオの作成の画面操作についても、それぞれの特色がありますが筆者の所感としては特に優劣はないと思います。

Automate DesktopについてはPower Platformの製品のPower Apps・Power Automateとの連携を筆者はおすすめします。特にPower Appsのキャンパスアプリの画面からRPAのシナリオが実行できるというのは他のRPA製品にはない特色だと思います。Power Platformというローコード開発基盤とRPAとの組み合わせを筆者は面白いと感じましたが、皆様はいかがでしょうか?

今回紹介したAutomate DesktopもPower Platform(Power AppsとPower Automate)どちらもOfficeのアカウント・学校や職場のアカウントをお持ちであれば手軽に始められます。ぜひ利用してみてはいかがでしょうか?

tdiはローコード開発にも力を入れていますので、こちらにお気軽にお問い合わせ下さい

RAP(UiPath)の導入支援についてはこちらへお気軽にお問合せ下さい

The post RPAのMicrosoft Power Automate DesktopとUiPathを比べてみた first appeared on MISO.]]>
Microsoft Power Appsで来客情報管理アプリを作成する https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/microsoft-power-apps-visitor-management Wed, 16 Sep 2020 04:00:42 +0000 https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/?p=10691 Microsoft Power Apps とは Microsoft Power Apps(以下、Power Apps)とは、Microsoft社が提供しているビジネスアプリケーション開発サービスです。 アプリケーション開…

The post Microsoft Power Appsで来客情報管理アプリを作成する first appeared on MISO.]]>
Microsoft Power Apps とは

Microsoft Power Apps(以下、Power Apps)とは、Microsoft社が提供しているビジネスアプリケーション開発サービスです。

アプリケーション開発、と聞くとプログラミングスキルが要求されるとお考えの方が多くいらっしゃるのではないでしょうか?しかし、Power Appsにおいてプログラミングスキルは必要ありません。シンプルなキャンバスに様々な装飾を施す要領で直感的、かつ簡単にアプリを作成できます。

当記事では、Power Appsで「来客情報管理アプリ」を作成する手順を記載いたします。

なお、Power Appsは、2016年11月にMicrosoft社からリリースされたローコード開発基盤「Power Platform」のツールの1つです。Power Platformについては、こちらの記事をご覧ください。

<MISO「ローコード開発基盤OutSystemsとPower Platformを比べてみた」>
/miso/low-code-platform-outsystems-power-platform

来客情報管理アプリの概要

今回作成する来客情報管理アプリは、会社に来客があった場合に、その情報(会社名、氏名など)をアプリ上で管理するためのものとします。

以下を主な要件として、作成したいと思います。

  • 担当者がタブレット端末で操作することを想定
  • 来客者の一覧管理、新規登録、受付の管理を行える
  • 来客対応状況を色分けする等、モバイル端末の特性を活かす

来客情報管理アプリをPower Appsで作成する

それでは早速、アプリを作成していきましょう。

今回は、無償で提供されている開発環境を利用します。有償のプランとは異なり、無償の開発環境では自身が作成したアプリの運用、他者との共有はできません。

Power Apps にログイン

Microsoft社のPower Appsのページにアクセスし、右上の「無料で試す」をクリックします。

Microsoftアカウントを入力し、「送信」をクリックします。

登録時に無償のプランを選択すると、このような画面が表示されます。ここからアプリケーションの作成が可能です。

データの格納先をCommon Data Serviceで作成

まずは今回作成するアプリで、来客データを格納する入れ物を作成します。

Power Appsで利用できるデータ格納サービスをCommon Data Service(以下、CDS)といいます。CDSとはざっくり言うと、Power Apps上で機能するDBとなります。(厳密には単なるDBとは異なります)

左の「データ」>「エンティティ」をクリックすると、CDSのエンティティ(テーブル)がずらりと表示されます。FAXやタスクなど、ビジネスで使用できそうなエンティティが最初から作成されているのも特徴です。

上に表示される「新しいエンティティ」をクリックし、名前等を入力し、エンティティを新規作成します。今回は表示名を「来客情報_miso」としました。

新規作成された「来客情報_miso」名のエンティティには、画面から確認できる通り、最初からフィールドが作成されています。今回、それらは使用しないため、新しいフィールドを作成します。

「フィールドの追加」をクリックし、表示名や名前、データ型を入力します。今回は「会社名」「お客様氏名」「担当者」「訪問日時」「連絡先」「対応状況」の5つを追加しました。

Common Data Serviceと連動したアプリの作成

CDSを作成したら、「ホーム」から一旦最初の画面へ戻ります。「データから開始」より、先程作成したCDSと連動させたアプリを作成できます。紫色の「Common Data Service」のアイコンをクリックします。

「テーブルの選択」欄に、先程作成したエンティティ「来客情報_miso」があります。こちらを選択し、接続を行います。

自動で開発画面へ遷移しました。この画面上で、アプリのレイアウト変更や機能追加を行っていきます。ただ、今回はタブレット端末での操作を想定しているので、横画面で表示されるように設定を変更しましょう。

開発画面左上の「ファイル」>「設定」>「画面のサイズと向き」から、縦横比と向きを変更できます。向きを横に変更し、適用させます。

ふたたび開発画面に戻ると、画面が横向きになっていることが分かります。

さて、CDSを接続してアプリを作成する場合、デフォルトで「BrouseScreen」「EditScreen」「DetailScreen」という3つの画面がつくられます。ゼロから設計するのではなく、この画面をベースに作成できるところが、PowerAppsの便利な点です。

BrouseScreen

BrouseScreenは、登録したデータが一覧で表示される画面です。
 

EditScreen

EditScreenは、データの編集を行える画面です。デフォルトでは「お客様氏名」しか表示されていません。これでは不便なので、項目を追加しましょう。

右側に表示される編集フォームから、「プロパティ」>「フィールド」>「フィールドの編集」をクリックします。

「フィールドの追加」をクリックすると、「来客情報_miso」にあるフィールドの一覧が表示されます。ここのチェックボックスにチェックを入れ、「追加」をクリックすることで、フィールドが追加されます。同様に削除もできます。

会社名や対応状況のフィールドを追加できました。

DetailScreen

DetailScreenは、登録したデータ1つ1つの詳細が表示される画面です。

関数の設定

3画面それぞれの上部にご注目すると、なにやら、式のようなものが見えるかと思います。こちらが関数です。

Power Appsでは関数を使用し、アプリに命令を行います。

たとえば、Navigate関数は表示する画面の変更、NewForm関数は項目作成のためのフォームのリセットを行います。また、関数は複数並べて使用することができます。

つまり、

Navigate(EditScreen1);NewForm(EditForm1)

という関数を記載することで、EditScreen1への画面遷移、EditForm1のリセットを同時に行うよう命令できるのです。

関数を調べつつ、欲しい機能を実装させていきましょう。使用できる関数はMicrosoft公式の「Power Apps向けの数式のリファレンス」をご覧ください。

関数を設定したり、ボタンを配置したり、画面を追加したり…プログラミングなしで、アプリを完成させることができました。

デモ動画

作成画面右上の「▷」をクリックすると、実際に操作してアプリの動作を確認することができます。今回、画面キャプチャだけではアプリの動作が分かりにくいため、デモ動画を作成しました。こちらをご覧いただき、アプリ起動から来客情報登録、編集、削除の動作を確認していただければと思います。

デフォルトの3画面に加え、スタート画面、登録完了画面、そして削除完了画面を追加しました。また、関数を用いて、対応状況のステータスによって表示色が変わるようにしています。

おわりに

ここまで、「来客情報管理アプリ」作成の一連の流れを記載いたしました。プログラミングに関する知識がなくとも、Power Appsを用いればアプリを簡単に作成できることをご理解いただけましたら幸いです。

非エンジニアの方にとっては敷居の高いアプリ開発ですが、Power Appsはその敷居を取り払い、誰しもが開発者になりうる可能性を提供するサービスなのではないでしょうか。ひょっとすると、コードを書かない開発が主流になる未来もそう遠くないかもしれません。

当記事で興味をお持ちいただいた方は、ぜひご自身でもPower Appsを触ってみてください。

また、tdiではローコード開発に力を入れていますので、気になる方はお気軽にお問い合わせください。

tdiのローコード開発に関するソリューションサービスはこちら

The post Microsoft Power Appsで来客情報管理アプリを作成する first appeared on MISO.]]>
ローコード開発基盤OutSystemsとPower Platformを比べてみた https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/low-code-platform-outsystems-power-platform Mon, 14 Sep 2020 05:30:05 +0000 https://alb-owned-https-576747877.ap-northeast-1.elb.amazonaws.com/?p=10577 はじめに 当社はかねてより、超高速開発のソリューションとしてローコード開発基盤「OutSystems」の導入支援およびアプリケーション開発に力を入れてきました。 <tdiのローコード開発・超高速開発> https://w…

The post ローコード開発基盤OutSystemsとPower Platformを比べてみた first appeared on MISO.]]>
はじめに

当社はかねてより、超高速開発のソリューションとしてローコード開発基盤「OutSystems」の導入支援およびアプリケーション開発に力を入れてきました。

<tdiのローコード開発・超高速開発>
/solution/outsystems/solution/outsystems

 

前回の記事では、OutSystems以外のローコード開発基盤として「Mendix」を取り上げ、OutSystems( OutSystems 11)とMendixの開発基盤としての機能や操作感を比較しました。

<MISO「ローコード開発基盤OutSystemsとMendixを比べてみた」>
/miso/low-code-platform-outsystems-mendix/miso/low-code-platform-outsystems-mendix

 

今回は第2弾として、Microsoft社がリリースしている「Power Platform」を取り上げます。前半ではPower Platformの概要をご紹介し、後半ではOutSystemsとPower Platformの開発基盤としての機能や操作感を比較します。

Power Platformとは

Power Platformは、2016年11月にMicrosoft社からリリースされたローコード開発基盤です。

4つのツールからなり、データの収集からプロセス構築、分析・予測までローコーディングで実現します。

ツール 概要
Power Apps Webアプリを作成する
Power Automate ワークフローを作成する
Power BI データを分析し、視覚的に表示する
Power Virtual Agents コーディングなしで、チャットボットを作成する

それぞれのツールはプログラミングの知識がなくても、直観的に利用できるため、「アプリを開発する」ためのツールではなく、「アプリを作成する」ためのツールと言われています。

今回は、4つのツールのうち、 Power AppsとPower Automate の2つに焦点を当ててご紹介します。

Power Apps

Power Appsは開発の知識がないユーザーでもWebアプリを簡単に作成できるツールで、3種類のコンポーネントが存在します。用途やニーズに合わせて使い分けることにより、短時間で最適なアプリが作成できます。

コンポーネント 概要
キャンバスアプリ 様々な形式(DB、Excel、SharePoint)のデータから、自由で柔軟性のあるアプリを一から構築します。Power Pointのような視覚的な設計画面と、関数を組み合わせて画面の作成をおこないます。
モデル駆動型アプリ Common Data Service(※)の機能を最大限に利用することで、デバイス間の応答性が高いUIを自動的に構築します。自由度は少ない分、決まった形式なので短時間でアプリが作成できます。
ポータルアプリ 外部向けWebサイトを構築します。組織外のユーザーが様々なIDを利用しサインインが可能であり、Common Data Serviceのデータを作成したり閲覧したりできます。

※Common Data Service:Dynamics 365やOffice 365のデータへアクセスするための統合された業務データストアとしてMicrosoft社が用意しているデータベースです。データベース内にデータを格納する一般的な方法と同様に、「Entity」と呼ばれるテーブルを作成し、クラウド上で管理します。今後、名称が「Dataflex Pro」 に変更される予定です。

Power Automate

Power Automateは、メールの送信や認証フローの実行など毎日行う決まった処理を自動化するために、アプリとサービス間のワークフローを作成するツールです。Power Appsと同様に直観的な操作で作成可能です。

Microsoft製品(Excel、One Drive等)を含む様々なアプリと連携することで、多種多様な場面で利用できるワークフローを作成できます。

OutSystemsとPower Platformを比較

ローコード開発基盤における一般的なWebアプリケーションの作成工程には、「データモデリング」「ユーザーインターフェイスの設計」「ロジックの設計」「デプロイ」が挙げられます。本記事ではこの工程に沿ってOutSystemsとPower Platformの機能や操作感を比較します。

なお、OutSystemsとPower Platformの比較に主眼を置き、各工程の詳しい作業手順の説明は省略します。Power Platformでのアプリケーションの作成方法を詳細に知りたい場合は公式のオンラインラーニングコースを活用してください。

1.データモデリング

Power Platformでは様々なデータベース(Oracle、SQL Server等)を利用し、アプリを作成します。今回はその中で「Common Data Service」を利用して作成していきます。

下の図は、Common Data ServiceでEntityを作成しているときのものです。

OutSystems との比較

後述もしますが、Power Platformは、きれいに正規化されたテーブル構造を扱うことは苦手としています。そのためOutSystemsと比較して、複雑なアプリの作成には向きません。

2.ユーザーインターフェースの設計

ユーザーインターフェースの設計にはPower Appsを利用します。3種類のコンポーネントがどのような操作感になるか各々みていきましょう。

キャンバスアプリ

キャンパスアプリでの画面(スクリーン)の設計は、Power Pointのスライドを作成するように構築していきます。Office製品と同様にリボンからギャラリーやフォーム、ボタンなどを選択し、スクリーンに追加することでカスタマイズしていきます。

下の図はキャンバスアプリで画面の設計をしているときの図です。画面内(図中赤枠部分)にリボン(図中⻘枠)のアイテムを配置してUIを設計していきます。

モデル駆動型アプリ

モデル駆動型アプリでは、Common Data Serviceにテーブルを作成した時点で、画面(フォーム)とビューが自動的に作成されています。そのフォームとビューを最大限に利用してアプリの作成を行います。

キャンバスアプリのように自由なカスタムはできませんが、Entityから表示/非表示項目を選別するだけで、アプリの作成が可能です。

※Common Data Service以外のデータベースを利用する場合は、一度、Common Data Serviceにデータを入れる処理が必要です。

下の図はモデル駆動型アプリでフォームとビューの設計をしているときのものです。Entityのフィールド一覧(図中赤枠部分)から表示したい項目を選択したり、不要な項目を削除したりします。

ポータルアプリ

ポータルアプリによる画面(ページ)の設計は、キャンバスアプリと同じく視覚的にコンポーネントを配置して行います。キャンバスアプリより自由度が低く、コンポーネントの種類も少ないですが、簡単に外部サイトの構築ができます。

※モデル駆動型アプリと同様、Common Data Service以外のDBを利用する場合は、一度、Common Data Serviceにデータを入れる処理が必要です。

下の図はポータルアプリで画面の設計をしているときの図です。画面(ページ)にコンポーネント(図中赤枠部分)を配置してUIを設計していきます。

OutSystemsとの比較

Widgetを組み合わせてUIを視覚的に設計する点や、予め基礎的なWidgetが配置されたテンプレートを用いて画面の作成を行える点は、Power Platformのキャンバスアプリやポータルアプリにおけるスクリーンの設計と、OutSystemsにおけるWeb Screenの設計で共通します。

異なる点としては、以下が挙げられます。

  •  Power Platformには3種類のコンポーネントが存在し、用途により使い分ける必要がある
  • モデル駆動型アプリとポータルアプリは自由度が少なく、決まった形式や少ないパーツで作成する必要がある

3.ロジックの設計

Power Platformでのロジックの設計方法は2パターン存在します。

1つ目は、関数を利用した、関数開発と呼ばれる設計方法です。あらかじめ用意されている関数を使ってロジックを組んでいくため、開発経験がなくても簡単に作成ができます。下の図では関数を利用してロジックを追加しています。Search関数を使って検索ボックスに入力した値で、データを絞り込む検索処理を実装しています。

2つ目は、Power Automateを使ってフロー処理を作成し、アプリに埋め込む方法です。画面の設計と同じく視覚的に構築していくため、容易に作成ができます。下の図ではPower Automateを利用して、フロー処理を作成しています。Power Automateはトリガーとアクションをそれぞれ設定することで、自動的にフロー処理が動く仕組みです。今回作成しているのはテーブル(Device Order)にデータが作成されると、メールを自動で送信する仕組みです。

OutSystemsとの比較

プログラムの処理を視覚的に設計できるという点では、Power PlatformのPower Automateにおける設計とOutSystemsのLogicの設計は似ています。しかし、Power Platformでは関数開発で作成するなどロジックを組み立てる方法が根本的に大きく異なります。

Power Platformは、従来の開発やOutSystemsで作成するような複雑なロジックの作成は不得意です。その反面、開発知識がない人でも容易に作成できるため、単純なロジックの業務アプリを作成するのには適しています。

4.デプロイ

Power Platformでのデプロイ方法は2アクションで可能です。例えば、キャンバスアプリの場合は、次の2アクションでデプロイが完了します。

  1. リボンから「ファイル」を選択し、「保存」タブから保存を行う。
  2. 保存後、「発行」ボタンが表示されたら、「発行」ボタンを押下。

OutSystemsとの比較

開発ツール上から簡単にアプリのデプロイを行える点は、OutSystemsとPower Platformで共通しています。

しかし、Power Platformには、キャンバスアプリ以外のコンポーネントを利用するとバージョン管理機能が標準で搭載されていないので、注意が必要です。

OutSystemsとPower Platformの比較まとめ

OutSystemsとPower Platformをざっくり比較してきましたが、最後に改めてOutSystemsとPower Platformの比較結果を表にまとめます。

工程 共通点 Power Platformに特有な機能、またはOutSystemsとの相違点
データモデリング

・文字列型、数値型、論理型、バイ
ナリ型等の基本的なデータ型を備え
ている
・各Attributeにデフォルト値やMax
Lengthの設定を行うことができる

・様々なデータベース(Oracle、SQLServer等)を利用できる

・きれいに正規化されたテーブルや親子関係を持つテーブルの扱いは難しい

UI設計 ・Widgetを組み合わせてUIを視覚的に設計する
・予め基礎的なWidgetが配置されたテンプレートを用いて画面の作成を行うことができる

・3種類のコンポーネントが存在し、用途により使い分ける必要がある

・モデル駆動型アプリとポータルアプリは自由度が少なく、決まった形式や少ないパーツで作成する必要がある

ロジック設計 ・プログラムの処理をフローチャートとして視覚的に設計できる ・複雑な処理を作成するのはあまり得意ではないが、簡単な処理の作成は容易にできる
デプロイ

・開発ツール上から簡単にアプリのデプロイを行える

・バージョン管理機能が搭載されていないコンポーネントが存在する

今回の比較を通じて、OutSystemsとPower Platformでは利用方法が異なると感じました。

同じローコード開発基盤ではありますが、従来のスクラッチ開発のようにデータモデリングやロジックが複雑化していくと、Power Platformでは容易に対処できません。

しかしその一方で、Power Platformには非エンジニアでも作成できる手軽さや、Microsoft製品との親和性があり、簡単な業務アプリを導入する手段としては非常に優れていると感じました。

規模やコスト面などで作成が保留となっている開発案件や、面倒な日常業務を減らすためのアプリの作成など、様々な場面で活用できるのではないでしょうか。

現在も機能が増え、今後もますます発展していくと考えられるPower Platformの動向を見守りつつ、活用していきたいと思います。

皆様もOfficeのアカウントがあれば手軽に試せるので、一度利用してみてはいかがでしょうか。

The post ローコード開発基盤OutSystemsとPower Platformを比べてみた first appeared on MISO.]]>