18.4K Views
May 20, 23
スライド概要
↓気ままに勉強会 #56の登壇資料です。
https://kimamani.connpass.com/event/283783/
Power Automateなど触ってます。
Power Automateでフローを作る時に気をつけていること 気ままに勉強会 #56 ふー
自己紹介 名前:ふー Twitter: https://twitter.com/fulogabc Blog:https://www.fulogabc.net/ Power Automateの記事 ・workflow関数でフローのURLや実行結果のURLを取得す る方法 ・Power Automate 日付の表示形式の備忘録 2
初心者向けかも?
目次 1. 要件定義 2. 制限事項を確認する 3. 命名ルール(規則)を統一する 4. 事前にフローの工程を別で作成し、それを組み立てる 5. 例外を対処するか無視するか 6. メモを残す 4
「要件定義」をしよう
要件定義とは? 機能要件(達成したいこと) 非機能要件(機能以外の性能) 6
Power Automateでの要件定義は? 1. 機能要件(達成したいこと) →メールの添付ファイルをSharePointに保存したい。 →ファイルがアップロードされたら通知を送りたい。 2. 非機能要件(機能以外の性能) →保守・運用のやりやすさ、セキュリティなど。 項目 信頼性・可用性 内容 動作が安定していること。 エラーが出たら、本人とフロー管理チームに通知を送ろう。 保守・運用のしやすさ フローはバージョン管理して、ドキュメントに変更点をまとめておこう。 データの作成日が分かるように作成日を記録しよう。 セキュリティ ユーザーが使うファイルは閲覧権限のみ許可した場所に保存しよう。 7
要件定義を事前にするメリット • 目的の明確化 • チームで運用する場合、共有が安易になる →仕様が共有できるので、他の人が改修する時も楽 • 作成中の手戻り・修正が減らせる →後から「やっぱりこれも追加して」が無くなりやすい 8
「制限事項」を確認しよう
制限事項は絶対に確認しよう! 「制限」と言っても色々ある。 制限項目 ライセンスの制限 内容 ライセンスによって要求数が異なる。 使用できるアクションが異なる。 呼び出し回数 ○秒に1回。 コネクタの制限 トリガー ポーリングの頻度 ○秒に1回。 取得できる行(データ量)の制限。 SharePoint リストへの添付は250MBまで。 SharePointやExcel、Teams、 Plannerなどの制限 Teams 添付ファイルは10個まで。 Plannerプラン内のアクティブなタスクの最大数は 2400。 11
過去の気ままに勉強会 • #36 「制限リターンズ」(2022/11/05) • #37 「制限リターンズ Part2」(2022/11/12) Learnと過去回をチェック! 12
「命名ルール」を決めよう
命名ルール(規則)を統一する 「変数名」、「アクション名」など様々な場面で名前を付けます。 Power Automate以外にもSharePointリストの名前や列の名前など、、、。 14
分かれば何でも良いんじゃない?
アクション名の空白は関数では”_”になる Power Automateのアクション名で空白はパーツ上は表示されませんが、関 数モードで記述する場合には”_”(アンダースコア)が必要。 →見えている表示と、関数での記述が異なるのでミスしやすい。 →自動生成される名前をそのまま使わない。 16
変数名では空白はそのまま 変数を関数で記述する場合、スペースはそのまま表現される。 →アクション名の空白は”_”が必要なのに、変数名だと不要! 記述する時に混同してミスしやすい! 17
命名ルール(規則)の種類 よく見る命名ルール 名前 例 キャメルケース( camelCase ) giantPanda パスカルケース( PascalCase ) ケバブケース( kebab-case ) スネークケース( snake_case ) GiantPanda giant-panda giant_panda ルール 先頭語だけ小文字 先頭以外は大文字で書き始める 要素語の最初を大文字で書き始める ”-”(ハイフン)で要素語を繋げる ”_”(アンダースコア)で要素語を繋げる プログラミング言語によっては推奨される形式が決まっているけれど、 Power Automateではどれが最適だろう? 18
命名ルール(規則)の種類 Power Automateの場合、「空白」が無ければどれでも良さそう。 名前 例 キャメルケース( camelCase ) giantPanda パスカルケース( PascalCase ) ケバブケース( kebab-case ) スネークケース( snake_case ) GiantPanda giant-panda giant_panda ルール 先頭語だけ小文字 先頭以外は大文字で書き始める 要素語の最初を大文字で書き始める ”-”(ハイフン)で要素語を繋げる ”_”(アンダースコア)で要素語を繋げる 個人的には”_”(アンダースコア)は見づらいため、あまりおすすめしません。 19
SharePointリストの場合 SharePointリスト名で”-”は省略されてURLにされてしまう。 日本語名だと「List1」などになってしまう。 20
SharePointリストの列名(内部ID)の場合 https://XXX.sharepoint.com/sites/XXX/_layouts/15/FldEdit.aspx?List=%7B 【ListID】7D&Field=【内部列ID】 列名 内部ID giantPanda giantPanda GiantPanda GiantPanda giant_panda giant_panda giant-panda giant_x002d_panda 日本語は「Unicode形式」に変換されます。 例)「あいうえお」=_x3042__x3044__x3046__x3048__x30 21
どれがいい? 項目 Power Automate アクション名 Power Automate 変数名 SharePoint リスト名 SharePoint リスト列名 キャメルケース パスカルケース スネークケース ( camelCase ) ( PascalCase ) ( snake_case ) ○ ○ ○ ○ ○ ○ ○ ○ △ ○ ○ ○ ケバブケース ( kebab-case ) ○ ○ △ △ あくまで個人的なおすすめです。 23
事前にフローの工程を整理しよう
長く複雑なフロー、いきなり作れる? 長いフローは、最初からすんなり組み立てられる ことは少ない。 ある程度道筋を考えて、整理してから作り出す。 25
Visual Studio Code & draw.io • Visual Studio Code プログラミングで使うツール。 • draw.io 高機能な作図ツール。Webでも利用できる。 https://www.draw.io/ 26
「例外」を考えよう
例外とは 「想定内のエラー」 「正規の状態ではなく、事前に想定できるもの」
例外を対処するか無視するか 例えば • 想定を遥かに超えるファイル数や実行数 • 想定以上のデータの大きさ(○○GB) • 入るべきデータが無い(空白・欠けている) • 想定に無いデータが入力された • 全く同じタイミングで2回実行された • 過去と同じデータ(ファイル名など)を受け取った 具体的には • 通常は関東の都道府県だが、今回だけ東北の県のデータを受け取った。 →関東の県ごとに処理を分けており、関東以外の県を想定しておらずエラーになった。 • 通常は添付ファイル1つだが、間違えて複数添付された。 →添付ファイルの数だけ繰り返され、エラーが起きたりデータが重複した。 • 全く同じタイミングで2回実行された。 →日時からフォルダを作成していたためエラーになった。 30
例外を対処するか無視するか 例外に対処する(基本) • 例外処理を組み込み、対処する。 →実行条件で分岐を作り処理を分岐させたり、エラーが起きないようにカバーしたり。 例外を無視する • そのまま進めて問題ないとき。 • 例外に気が付いていない状態。 31
「メモ」を残そう
メモを残す 関数を使ったり、複雑な処理をしている場合、何をしている部分なのかメモを残す。 • 関数自体をメモに記録する • 参考にした記事URLや処理内容をメモする。 これ何してるんだっけ? 33
メモを残す 最大250文字 34
まとめ 1. 要件定義 2. 制限事項を確認する 3. 命名ルール(規則)を統一する 4. 事前にフローの工程を別で作成し、それを組み立てる 5. 例外を対処するか無視するか 6. メモを残す 35
Thank you! ありがとうございました! 36
参考記事 • 自動化フロー、スケジュールされたフロー、インスタント フローの制限事 |Microsoft Learn https://learn.microsoft.com/ja-jp/power-automate/limits-and-config • 要求の制限と割り当て|Microsoft Learn https://learn.microsoft.com/ja-jp/power-platform/admin/api-request-limits-allocations • 命名規則|わくわくBank https://www.wakuwakubank.com/posts/804-it-naming-convention 37