Power Automate 自分用チートシート

## トリガー関連

|コネクタ|トリガー|URL|
|--|--|--|
|Excel Online|ファイルが作成されたとき（プロパティのみ）のトリガー、実はファイル名・フォルダ名取得できてます|https://qiita.com/negimijin/items/5383e27be2850adbf981|


### 発火条件の指定

#### 承認の状況列が承認待ちの場合に起動させる

``` 承認の状況列が承認待ちの場合に起動
@equals(triggerOutputs()?['body/{ModerationStatus}'],'Pending')
```

↓こちらで紹介されていました。これを応用して承認の状況列以外の列でも発火条件を扱えそうです。

https://www.youtube.com/watch?v=5xqTFaeSuFo&t=784s


#### equals以外の評価記法について

https://thrivenextgen.com/microsoft-power-automate-flow-trigger-conditions/


https://www.spguides.com/power-automate-trigger-conditions/


## 月初日・月末日算出


https://blog-tips.sekenkodqx.jp/2021/11/27/power-automate-yesterday-beginning-of-month-end-of-month/#


こちらの方法を利用すると、月末日の出力がYYYY-MM-DDTss:・・・・になります。
フィルタークエリにそのまま使えますが、文字列に利用したい場合は
```
formatDateTime(body('時間からの減算'), 'yyyy-MM-dd')
```
にしてあげます。

## 日付関連

https://qiita.com/negimijin/items/776ac1dfc8564da18605

~~自分で作成した日付の形式があわなかったので規定の日付列と比較したいときはformatDateTimeの利用が必要でした。~~
自分で作成した列は時間をもたないようにリスト列で設定をしていたためでしたので訂正いたします。
~~↓自分で作成した列の値がYYYY-MM-DDになっていました（タイムスタンプがない）。~~
↓列に時間を含めるのチェックを付けていない場合
![スクリーンショット 2022-09-21 153658.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1469675/ed9593d3-9a27-c600-74d4-5c462c312853.png)


## Try、Catch、Finally

https://qiita.com/negimijin/items/7300808e1fe071684dc4

## 毎月データ抽出とシート作成を行いたい

https://qiita.com/negimijin/items/674b604286484a75245b

## 複数の項目を取得

https://qiita.com/negimijin/items/a220b75a874f703c8db7

### 該当なしの可能性があるリストから項目を取得するとき

条件に該当するアイテムが存在しない可能性がある場合に、
条件のアクションで、「length(複数の項目を取得のアウトプット)」「次の値に等しい」「null」では結果が空っぽだったのか判断できないようです。（nullかどうか→偽→”InvalidTemplate. Unable to process template language expressions for action 'アクション名' at line '0' and column '0': 'The template language function 'greater' expects two parameter of matching types. The function was invoked with values of type 'Null' and 'String' that do not match.'.”のエラーになってしまいました。）
正しくは「empty(複数の項目を取得のアウトプット)」「次の値に等しい」「true」とするとよいようです。

### フィルタークエリでメールアドレスを利用する場合

列名<b>/E</B>Mail にしたら動くそうです。例えばSPOリストの列（内部）名をEmailとしていたら、「Email/EMail」と指定します。

※社内で同姓同名がいたときにClaimsを利用して不都合があったので、個人的にユーザ情報を用いて何かする時はメールアドレスでユニークにしています。

https://twitter.com/nanoka7o8/status/1386663395517104130?s=20&t=uTEDYtfJwmp-l-eh14izsA

### フィルタークエリで所有者ではないリスト列の内部名を取得したい時

https://qiita.com/negimijin/items/7ab3f8ca9575416cce7c


## データ操作コネクタ

### 作成アクションの使い方

デバッグ（タイムスタンプ、条件分岐手前で評価する値を見る）や、変数の定義兼定数設定（１アクションで済ませる）に利用できます。

### JSONの解析アクション

https://idea.tostring.jp/?p=6412

自分がこのアクションを利用しているときはO365 Userコネクタの役職のプロパティでエラーが起こしたので
サンプルコードを取得するときのテストデータは気を付けましょう。
他にはJSONの解析を行う対象に必須項目を追加したとき、項目まるまるサンプルコードに含まれていないので追記が必要になってきます。


## SPOリストアイテムの権限操作

アイテム毎の権限の制御は難しいので避けたほうが無難です、とお断りを入れておいて。。
SharePoint Onlineコネクタの「HTTPリクエストをSharePointに送信します」のアクションを利用します。

参考：

https://mofumofupower.hatenablog.com/entry/sp_http_references#%E3%81%99%E3%81%93%E3%81%97%E5%BF%9C%E7%94%A8--%E4%B8%80%E8%A6%A7%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84URL%E3%81%B8%E3%81%AE%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%AA%E3%81%A9


### リストアイテムに誰のアクセスを許可しているか管理情報を取得する

https://deepcom.co.jp/flow_item_permission_2/


## SPO管理者権限とPower Automate作成者兼所有者の相性

https://qiita.com/negimijin/items/a56cb3292adcdc2a3a92

## ついに？やっと？Power Automateに標準でSort関数が実装されたらしい

https://qiita.com/MiyakeMito/items/b25be62405c04aca2e9c