Power Automate 実務チートシート完全版
1. 基本設計の鉄則
Power Automate は、
トリガー
↓
入力整形
↓
主処理
↓
エラー処理
↓
通知 / ログ
の順で作ると保守しやすい。
推奨構成
Trigger
↓
変数初期化 / 入力チェック
↓
Scope_Try
├─ SharePoint操作
├─ Excel操作
├─ Teams通知
└─ ファイル操作
↓
Scope_Catch
├─ エラー内容取得
├─ SharePointログ登録
└─ Teams/メール通知
↓
Scope_Finally
└─ 終了処理
2. 日付・時刻
現在日時
utcNow()
日本時間に変換
convertFromUtc(utcNow(), 'Tokyo Standard Time')
フォルダ名用日時
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyy年MM月dd日HH時mm分ss秒'
)
HH= 24時間表記
hh= 12時間表記
日付だけ
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyy-MM-dd'
)
ファイル名向け
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyyMMdd_HHmmss'
)
3. フォルダ作成
日時フォルダ名
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyy年MM月dd日HH時mm分ss秒'
)
安全なフォルダ名
replace(
replace(
replace(outputs('入力文字列'), '/', '/'),
'\', '¥'
),
':',
':'
)
フォルダパス文字化け対策
replace(
outputs('json_input_folder_create')?['body/{FullPath}'],
'%252f',
'/'
)
%2f も出る場合
replace(
replace(
outputs('json_input_folder_create')?['body/{FullPath}'],
'%252f',
'/'
),
'%2f',
'/'
)
4. 文字列操作
空白削除
trim(outputs('文字列'))
改行削除
replace(
outputs('文字列'),
decodeUriComponent('%0A'),
''
)
カンマ削除
replace(outputs('文字列'), ',', '')
ファイル拡張子取得
last(split(outputs('ファイル名'), '.'))
拡張子なしファイル名
first(split(outputs('ファイル名'), '.'))
文字列結合
concat(
'申請_',
outputs('部署名'),
'_',
outputs('申請者名')
)
5. Null / 空チェック
Nullなら代替値
coalesce(outputs('値'), '未入力')
空かどうか
empty(outputs('値'))
空なら未入力
if(
empty(outputs('値')),
'未入力',
outputs('値')
)
6. 条件式
一致
equals(outputs('ステータス'), '承認')
不一致
not(
equals(outputs('ステータス'), '承認')
)
AND
and(
equals(outputs('ステータス'), '承認'),
equals(outputs('部署'), '情報システム')
)
OR
or(
equals(outputs('区分'), '緊急'),
equals(outputs('優先度'), '高')
)
含む
contains(outputs('件名'), '請求書')
7. SharePoint 実務パターン
よく使うアクション
項目の取得
項目の作成
項目の更新
ファイルの作成
ファイル メタデータの取得
フォルダーの作成
ファイル コンテンツの取得
SharePoint パス設計
/Shared Documents/業務名/年度/月/案件名
例:
/Shared Documents/申請管理/2026/05/山田太郎_交通費申請
推奨ファイル名
yyyyMMdd_HHmmss_部署名_申請者名_書類名.pdf
例:
20260522_203000_営業部_山田太郎_見積書.pdf
8. Teams 通知テンプレート
成功通知
【処理完了】
対象:@{outputs('対象名')}
日時:@{formatDateTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'),'yyyy/MM/dd HH:mm:ss')}
結果:正常終了
エラー通知
【Power Automate エラー】
フロー名:申請処理フロー
発生日時:@{formatDateTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'),'yyyy/MM/dd HH:mm:ss')}
エラー箇所:@{outputs('エラー発生アクション')}
内容:@{outputs('エラー内容')}
9. Excel 操作の注意点
・テーブル化されていない範囲は扱いづらい
・同時更新に弱い
・大量データ処理は遅い
・業務DB代わりに使いすぎない
おすすめ判断
少量データ・手軽な管理 → Excel
複数人運用・履歴管理 → SharePoint リスト
本格業務DB → Dataverse / SQL
10. エラー処理
Scope 構成
Scope_Try
Scope_Catch
Scope_Finally
Catch の実行条件
ON にする:
失敗した
タイムアウトした
スキップされた
エラーログ推奨項目
実行日時
フロー名
対象ID
対象ファイル
エラーアクション名
エラーメッセージ
実行者
ステータス
エラー取得
outputs('対象アクション')?['body/error/message']
または:
result('Scope_Try')
11. Apply to each 対策
よくある問題
・勝手に Apply to each が入る
・処理が遅い
・並列実行で順番が崩れる
・Excel / SharePoint 更新で競合
対策
・配列か単一値か確認
・first() で単一化
・必要なら並列OFF
・Filter Query で絞る
先頭取得
first(outputs('配列'))
件数取得
length(outputs('配列'))
12. JSON 操作
値取得
outputs('JSON解析')?['body/name']
ネスト値
outputs('JSON解析')?['body/user/name']
配列先頭
first(outputs('JSON解析')?['body/items'])
安全取得
coalesce(
outputs('JSON解析')?['body/value'],
'未設定'
)
13. ファイル操作
ファイル名生成
concat(
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyyMMdd_HHmmss'
),
'_',
outputs('申請者名'),
'_申請書.pdf'
)
禁止文字対策
replace(
replace(
replace(
replace(outputs('ファイル名'), '/', '/'),
'\',
'¥'
),
':',
':'
),
'*',
'*'
)
上書き防止
ファイル名に yyyyMMdd_HHmmss を入れる
14. 実務命名規則
悪い例
Compose
Compose 2
Condition
Apply to each
良い例
Compose_申請ID生成
Condition_承認済み判定
ApplyToEach_添付ファイル処理
CreateFile_申請書PDF保存
変数名
varRequestId
varUserName
varFolderPath
varErrorMessage
arrAttachments
objRequestData
15. よく使う式まとめ
| 目的 | 式 |
|---|---|
| 現在UTC | utcNow() |
| 日本時間 | convertFromUtc(utcNow(),'Tokyo Standard Time') |
| 日付整形 | formatDateTime() |
| 文字結合 | concat() |
| 置換 | replace() |
| 空判定 | empty() |
| Null対策 | coalesce() |
| 件数 | length() |
| 先頭取得 | first() |
| 最後取得 | last() |
| 分割 | split() |
| 含む | contains() |
16. 実務テンプレ構成
01_Trigger
02_Init_変数初期化
03_InputCheck_入力チェック
04_CreateFolder_フォルダ作成
05_CreateFile_ファイル保存
06_UpdateList_リスト更新
07_Notify_通知
08_ErrorHandling_エラー処理
09_Log_ログ記録
17. 実務ベストプラクティス
・日時は日本時間に変換してから使う
・ファイル名には秒まで入れる
・SharePointパスは固定部分と可変部分を分離
・禁止文字対策を必ず入れる
・Apply to each が出たら配列確認
・エラー処理は Scope 分離
・ログは SharePoint リストへ
・通知には対象IDとリンクを入れる
・Compose乱立を避ける
・ExcelをDB代わりにしすぎない
18. 最重要コピペ集
日本時間フォルダ名
日本時間に設定しておかないと第三者から時間がおかしいと言われるのでやりましょう。
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyy年MM月dd日HH時mm分ss秒'
)
ファイル名用日時
意外と純正の日時取っても余計なデータが来ることが多いので、このやり方でやりましょう。
formatDateTime(
convertFromUtc(utcNow(), 'Tokyo Standard Time'),
'yyyyMMdd_HHmmss'
)
フォルダパス文字化け対策
日本語環境では特に使うので必須です。
変数の中に入れていてもなることがあるので、関数の中に直接入れることをお勧めします。
replace(
outputs('json_input_folder_create')?['body/{FullPath}'],
'%252f',
'/'
)
Null対策
データが空だったりすることがあるのでよく使います。
coalesce(outputs('値'), '未入力')
空欄対策
if(
empty(outputs('値')),
'未入力',
outputs('値')
)
安全なファイル名
replace(
replace(
replace(outputs('ファイル名'), '/', '/'),
'\',
'¥'
),
':',
':'
)
まとめ
Power Automate 実務では、
- 日時処理
- 文字列整形
- SharePointパス
- エラー処理
- ログ設計
の5つを押さえると、
かなり安定した業務フローになります。