Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Power Apps/Power Automate for Office 365 でできる SharePoint リストを使ったアプリの構築 / Building apps with SharePoint lists via Power Apps and Power Automate for Office 365

Power Apps/Power Automate for Office 365 でできる SharePoint リストを使ったアプリの構築 / Building apps with SharePoint lists via Power Apps and Power Automate for Office 365

第 2 回 Japan M365 Dev User Group 勉強会 (https://jpm365dev.connpass.com/event/189229) に登壇したときのスライドです。

Takashi Shinohara

December 08, 2020
Tweet

More Decks by Takashi Shinohara

Other Decks in Programming

Transcript

  1. 自己紹介 Name 篠原 敬志 (Takashi Shinohara) Company アバナード株式会社 シニアコンサルタント Award

    Microsoft MVP for Office Development (2018-) Twitter @karamem0 Facebook t.shinohara.56 LinkedIn tshino56 Blog https://blog.karamem0.jp Community Japan M365 Dev User Group
  2. 本日のゴール システム開発として Power Platform を採用するときに、Power Apps/Power Automate for Office 365

    を使うこと「何ができるのか」「何ができないのか」 を理解し、アーキテクチャを決定するときの見極めの一助となればと思います。
  3. 最近よく言われること Microsoft 365 と Power Platform を使ってお客 様にシステムを導入したい!ノーコード・ローコー ドで工数を削減したい! やりましょう!

    じゃあまず Power Platform のライセンスを買って もらってください! いや、ライセンス買ってもらうのはちょっと… タダでできないの?
  4. Power Apps/Power Automate for Office 365 Power Apps/Power Automate は単体としてライセンス販売されている製品です。

    ただし、Microsoft 365/Office 365 のライセンスがあるユーザーに対しては、 Office 365 製品に接続するアプリ/フローを作成または実行することが可能になり ます。
  5. Power Apps/Power Automate のプラン比較 Power Apps Power Automate プラン名 for

    Office 365 per apps plan per user plan for Office 365 per flow plan per user plan 価格 ¥0 ¥1,090 /ユーザー/月 ¥4,350 /ユーザー/月 ¥0 ¥54,350 /月 ¥1,630 /ユーザー/月 アプリ/フロー数 無制限 2 無制限 無制限 5 無制限 Dataverse ◦ ◦ ◦ ◦ 標準コネクタ ◦ ◦ ◦ ◦ ◦ ◦ プレミアム コネクタ ◦ ◦ ◦ ◦ カスタム コネクタ ◦ ◦ ◦ ◦ 環境の作成 ◦ ◦ ◦ ◦ API コール回数 2,000 回 /ユーザー 1,000 回 /ユーザーパス 5,000 回 /ユーザー 2,000 回 /ユーザー 15,000 回 /フロー 5,000 回 /ユーザー 2020/12/8 時点の情報です。最新の情報は公式の URL を確認してください。 https://powerapps.microsoft.com/ja-jp/pricing/ https://japan.flow.microsoft.com/ja-jp/pricing/
  6. Power Apps + SharePoint における 2 つの問題 500 件問題 5,000

    件問題 Power Apps から SharePoint への操作には "委任" できない関数があり、そのような関数を使った場合に 500 件までしか取得することができません。 しきい値は 2,000 件まで上げることができるので、 リスト アイテムがその範囲で収まることが予想される 場合には有効な対応方法となります。それ以外の場合 は "委任" できない関数を使用しないことでしか回避 できません。 SharePoint のリスト アイテムが 5,000 件を超える 場合に並べ替えやフィルターをするとエラーが発生し ます。 並べ替えやフィルターをする列に対してインデックス を貼ることが有効な対応方法となります。リスト アイ テムが 20,000 件までの場合はインデックスの自動管 理によってインデックスが作成されるため対応が不要 な場合があります。
  7. SharePoint で委任可能な関数と演算子 関数/演算子 数値 テキスト 真偽値 日付 複合型 Filter ◦

    ◦ ◦ ◦ ◦ Sort ◦ ◦ ◦ ◦ SortByColumns ◦ ◦ ◦ ◦ Lookup ◦ ◦ ◦ ◦ ◦ = ◦ ◦ ◦ ◦ ◦ <, <=, <>, >, >= ◦ ◦ ◦ StartsWith ◦ ◦ 以下の関数が委任 "できません" Search 関数 in 句/EndsWith 関数 Sum/Average/Min/Max などの集計関数
  8. 参照列を使った他リストの参照 1:N (単一の参照列) N:N (複数選択可能な参照列) 子から親への参照 〇 ID から LookUp

    で参照可能 〇 ID から LookUp で参照可能 親から子への参照 △ Value でフィルターが可能 ✕ 委任なしでのフィルターは不可能
  9. 参照列は使ったほうがいい? 参照列の Value は一意であるべきですが一意であることは保証されません。ID が 委任できない以上、Value をキーにするのはリスクがあります。Power Apps を UI

    として使うのであれば、参照列を使わないことをお勧めします。 ただし、ID を数値で格納してしまうと、参照関係を追うのが難しくなってしまう ため、SharePoint の標準の UI も合わせて使うときなど、参照列にしたほうがい い場合もあります。また、データ移行をする必要がある場合も、参照関係の扱いに は注意が必要です。 リストに定義できる参照列/ユーザーまたはグループ列は 12 が上限です。うち 2 はシステムで使用しているため、ユーザーが追加できるのは 10 までになります。
  10. Power Apps での 5,000 件問題 SharePoint REST API では、インデックスを作成した列でも、結果が 5,000

    件 を超えるとエラーになるという制限があります。ただし Power Apps は SharePoint REST API を使用していないため、そのような問題は発生しません。 SharePoint に設定できるインデックスの数は最大 20 個です。インデックスを設 定できる列の種類にも制限があるため注意が必要です。
  11. SharePoint でインデックスを作成できる列 インデックスを作成できる列 インデックスを作成できない列 1 行テキスト 複数行テキスト 選択肢 選択肢(複数選択) 数値

    集計値 通貨 ハイパーリンクまたは画像 日付と時刻 ユーザーまたはグループ(複数選択) ユーザーまたはグループ 外部データ 管理されたメタデータ カスタム列 はい/いいえ 参照
  12. Power Automate の SharePoint コネクタ Power Automate の SharePoint コネクタは用意されているものだけでも多くの

    作業を行うことができます。アクションが用意されていない場合でも "SharePoint に HTTP 要求を送信します" を使って SharePoint REST API を実行できます。 13 トリガー 47 アクション
  13. Power Automate + SharePoint における問題 Power Apps から Power Automate

    を呼び出す場合、アクションは Power Apps を実行しているアカウントで実行されます。そのため、いわゆる "権限の昇格" を 行うことができません。 有償プランであれば汎用の HTTP アクションを使ってアプリケーションのアクセ ス許可で SharePoint REST API を呼び出すという回避策が取れます。しかし Office 365 のプランでは HTTP アクションを使用できません。
  14. Power Apps と Power Automate を分離する SharePoint の "アイテムが作成または変更されたとき" のトリガーを使用すること

    で、Power Apps と Power Automate の実行ユーザーを分けることができます。 トリガーの条件を指定することで、任意の値が設定されたときのみに Power Automate を実行することが可能です。
  15. Power Automate の API 要求の制限について Power Automate はユーザーが 24 時間以内に実行できる

    API 要求の数に制限が あります。Office 365 の場合は 2,000 が上限です。 API 要求としてカウントされるのは以下の操作です。 コネクタへのすべての API リクエスト HTTP アクション 変数の初期化や合成などの組み込みアクション ただし制限を超えたからすぐにブロックされるわけではありません。また超過して いるかどうかを確認する方法は現時点では提供されていません。(まだ?) SharePoint コネクタには 60 秒間に 600 回までという制限があります。