2.Power Automate フロー(paSubmitInspection)作成
第2部でのPowerAutomate構築の流れは下記の通りです。
どんな事をおこなうか、確認しながら構築していきます。
Hands-On-02-4
Step 1 PowerAppsからJSON受信
Step 2 JSON解析とHTML/CSVテーブル作成
Step 3 承認者リストの取得
Step 4 一次承認処理
Hands-On-02-5
Step 5 条件分岐と最終承認
Step 6 結果反映と通知
①フロー新規作成
PowerAppsの左側にある … ボタンをクリック → 「+フローの追加」→ +フローの新規作成→「+最初から作成」をクリック
フローの名前「無題のフロー」を「paSubmitInspection」に変更
PowerApps(V2)をクリック→「+入力の追加」をクリック
テキストを選択して「入力を指定してください」に PayloadJsonを入力する
続けてテキストを選択して「入力を指定してください」に ApplicantNameを入力する
続けてテキストを選択して「入力を指定してください」に ApplicantEmailを入力する
※ PowerApps の paSubmitInspection.Run(varPayload,User().FullName, User().Email ); の 受け取り口。
②「変数を初期化する」アクション
「+ 新しいステップ」をクリックし、「変数を初期化する」アクションを追加します。
名前: varCurrentTimeJST
種類: 文字列
値: (式) formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'), 'yyyy/MM/dd HH:mm')
③JSONをオブジェクト配列にする(Parse JSON)
+新しいステップをクリック
組み込み をクリック後、∨ をクリック→「データ操作」→「アクション」→「JSONの解析」をクリック
コンテンツをクリック→ダイアログから動的コンテンツを選択→入力を選択
「サンプルから生成」をクリック→「サンプル JSON ペイロードの挿入 」の入力欄に下記のJSON配列を入力→「完了」
[
{
"Created": "2025年10月16日 21時06分",
"ID":"1",
"Title": "A10001",
"DeviceName": "熱交換器",
"Class": "1",
"UMU": "無",
"Ammeter": 20,
"Voltmeter": 200,
"Pressure": 5,
"Noise": "無",
"Comment": ""
}
]
「サンプルから生成」された場合、
{
"type": "array",
"items": {
"type": "object",
"properties": {
"Created": {
"type": "string"
},
"ID": {
"type": "integer"
},
"Title": {
"type": "string"
},
"DeviceName": {
"type": "string"
},
"Class": {
"type": "string"
},
"Ammeter": {
"type": "integer"
},
"Voltmeter": {
"type": "integer"
},
"Pressure": {
"type": "integer"
},
"Noise": {
"type": "boolean"
},
"Comment": {
"type": "string"
}
"UMU": {
"type": "object",
"properties": {
"Value": {
"type": "string"
}
}
}
},
"required": [
"Created",
"ID",
"Title",
"Class",
"DeviceName",
"UMU",
"Noise"
// Ammeter, Pressure, Voltmeter を削除
]
}
}
※"required":以下の項目は項目が必ず入力されると分かっているものだけ を残す
④HTML/CSVへの出力データ選択
+新しいステップをクリック
「組み込み」をクリック→∨ をクリック→「データ操作」→「選択」をクリック
「元」:動的コンテンツを選択→「JSONの解析」→「本文」をクリック
「マップ」:Jsonで取得したデータをHTMLの表やCSVで出力する形に整形する。
※文字列以外のものは、できる限り文字列にしてあげると、出力漏れが少ない。
@{}となっている部分は、fxの式エディタで作成した場合のもの。右のテキストモードに切り替えてそのまま貼り付けることも可能
{
"点検日時": @{formatDateTime(item()['Created'],'yyyy/MM/dd HH:mm')},
//関数:formatDateTime(,'yyyy/MM/dd HH:mm') 日時データを''のフォーマットで出力
"機器番号": @{item()['Title']},
"階層": @{item()['Class']},
"機器名称": @{item()['DeviceName']},
//動的コンテンツを選択
"設備異常有無": @{coalesce(item()['UMU']['value'],item()['UMU'])},
//関数:coalesce(<設備異常有無の動的コンテンツ>['value'],<設備異常有無の動的コンテンツ>) 値をチェックして、最初にNull以外だったら答えとして返す
"電流計": @{string(item()?['Ammeter'])},
"電圧計": @{string(item()?['Voltmeter'])},
"圧力計": @{string(item()?['Pressure'])},
//関数:string(<圧力の動的コンテンツ>) 文字列に変換して出力
"異常音": @{if(equals(item()?['Noise'], true), '有', '無')},
//関数:If もしNoise=trueなら有、違うなら無を出力
"コメント": @{coalesce(item()?['Comment'], '')}
}
+新しいステップをクリック
「組み込み」をクリック→∨ をクリック→「データ操作」→「HTMLテーブル作成」をクリック(名前をHTMLTable Inspectionに更新)
「From」:動的コンテンツを選択→「選択・出力」
+新しいステップをクリック
「組み込み」をクリック→∨ をクリック→「データ操作」→「CSVテーブル作成」をクリック(名前をCSVTable Inspectionに更新)
「From」:動的コンテンツを選択→「選択・出力」
※選択で作成したデータをHTMLとCSVで使う。
⑤ApproverList(承認者リスト) から一次承認者の取得
+新しいステップをクリック
「Sharepoint」→「複数の項目の取得」をクリック
サイトのアドレス: 承認者リストがあるSharePointサイト
リスト名: ApproverList (承認者リスト)
詳細オプションの表示 をクリックし、「Filter Query 」に以下のODataクエリを入力
level eq 1
※承認者リスト(ApproverList )のレベル列(level)の値1
アクションの名前を「一次承認者の取得」に変更
⑥承認者リスト(ApproverList) から最終承認者の取得
+新しいステップをクリック
「Sharepoint」→「複数の項目の取得」をクリック
サイトのアドレス: 承認者リストがあるSharePointサイト
リスト名: 承認者リスト (ApproverList)
詳細オプションの表示 をクリックし、「Filter Query 」に以下のODataクエリを入力
level eq 2
※承認者リスト(ApproverList )のレベル列(level)の値2
アクションの名前を「最終承認者の取得」に変更
⑦申請中ステータスへの更新 (一次承認)
+新しいステップをクリック
「「Sharepoint」→「項目の更新」をクリック
※サイトのアドレス: 該当のリストアドレス を選択(リストのURLの/Lists/の前までを入れるとOK:https://shokubai-my.sharepoint.com/xxxxxx/Lists/ の場合Lists前まで)
各項目
サイトのアドレス: 対象のSharePointサイト
リスト名: InspectionLog (または「点検簿」)
Id: (動的コンテンツ)「JSONの解析」の「ID」を選択します。
Application(承認申請): 「はい」を選択します。(必須 )
Status(承認ステータス) の値: 「一次承認」を選択します。(必須)
⑧一次承認の開始
+新しいステップをクリック
検索ボックスで「承認」→「Standerd approvals(標準承認)」をクリック→「開始してテキストの承認を待機」アクションを追加
割り当て先(Assigned to): (動的コンテンツ)「一次承認者を取得」の「email」
タイトル: [動的コンテンツ: ApplicantName] 様から点検簿承認依頼を受信しました
詳細(Detail):
[動的コンテンツ: ApplicantName] からの承認依頼を受信しました。<br>以下点検内容になります。ご確認ください。<br>
[動的コンテンツ: HTMLTable Inspectionの出力]
添付ファイル - 1 名前: InspectionList_[動的コンテンツ: varCurrentTimeJST] .csv
添付ファイル - 1 コンテンツ: (動的コンテンツ)「CSVTable Inspection」の「出力」
⑨一次承認結果の分岐
ループの下(ループの外側)で、+新しいステップをクリック
「コントロール」をクリック→「条件」アクションを追加
値の選択: (動的コンテンツ)「開始して承認を待機 」の「Outcome 」(結果)を選択
次の値に等しい: Approve (承認)