Power Automateで何気なく使っている「動的なコンテンツ」…そもそもこれは何ですかな?
「動的なコンテンツ」は、トリガーやアクションの実行で自動的に取得・保存されたデータで、「変数」と同様に、後のアクションで使うことができます。
この記事では、Power Automateでの基礎知識となる「変数」と「動的なコンテンツ」について解説します!
Power Automateでフローを作成する際、変数や動的なコンテンツについての理解は必須です。
Power Autoamteの変数で使えるデータ型についても解説し、実際にどのように変数や動的なコンテンツを使うのかを学びます。
- 変数、動的なコンテンツとは何か?
- 変数で使えるデータ型の種類
- 変数や動的なコンテンツの具体的な使い方
Youtube動画で見たい方は、こちらからどうぞ!
変数とは?
変数とは?
変数は「一時的に情報を保存しておく箱」のようなもので、後のアクションで使用することができます。
例えば以下のように、メールの受信をトリガーに実行され、「日付_メール件名」のフォルダを作成し、作成したフォルダーにメールの添付ファイルを保存するフローがあります。
この時「日付」という名前の変数を作成し、”20240707″など日付の値を設定できます。
その後、新しいフォルダーを作成する際、変数「日付」と受信した「メールの件名」を組み合わせたフォルダー名にする場合などに変数を使うことができます。
このように変数は後のアクションで使うために、一時的に値を保存しておくものです。
また変数は1度設定しても、後から入れる値を変えることもできます。
最初変数「日付」に「今日の日付」を入れた後、後からまた変数「日付」に「1週間後の日付」を入れることもできるのですな!
変数のデータ型
Power Automateで使える変数には、表にあげたような6つの「データ型」があります。
「データ型」とは、どのような種類のデータかを定義するものです。
ブール値として、Boolean型があり、これはTrueかFalseのデータを格納できます。
数値型としては、整数値を入れられるInteger型と、浮動少数点の値を入れられるFloat型があります。。
文字列ではString型を使い、例えば人の名前、社員番号、日付等のデータが入ります。
オブジェクト型は表に示したようなJSON形式のデータが入ります。
アレイ型には、配列のデータが入り、後からループ処理等で1件1件取り出して使ったりします。
Apply to each等のループ処理について知りたい方は、以下の記事を参考にしてください!
変数の使い方
変数を使う場合、最初に「変数の初期化」のアクションを使う必要があります。
変数の初期化では、「変数名(Name)」、「データ型(Type)」、「値(Value)」の3つを設定します。
上の図では、「年月」という名前の「文字列」型の変数に「2024年7月」という値を設定しているのですな!
変数にどのようなデータを入れるかによって、適切なデータ型を選択する必要があります。
アレイ、オブジェクト…何だか難しいですな…
ここら辺は最初は少し難しいですね。
例えばExcelのテーブルを取得した場合、オブジェクトのアレイ型(つまりアレイ型)でデータが取得され、Apply to each等のアクションで1行ずつデータを取り出して使います。
扱うデータがどのデータ型になるかを意識して選択しましょう。
動的なコンテンツとは?
動的なコンテンツは「トリガーやアクションで自動的に取得されたデータで」、変数のように使うことができます。
Power Automateの機能で「自動的に取得される変数」という理解で良いと思います。
例えば以下のように、新しいメールが届いた時をトリガーに実行されるフローがあったとします。
このトリガーが実行された時、中央のように受信したメールのデータが自動的に取得されます。
そしてここでで取得されたデータは、右側のように「動的なコンテンツ」として、後のアクションで使うことができます。
例えば新しいメールが届いた時のトリガーで、取得した「メールの件名」「差出人」「本文」「添付ファイル」の情報等を動的なコンテンツから使うことができます。
先ほどのフローの例で考えてみましょう。
Outlookメール受信時に、「日付」という名前の変数に「その日の日付」を設定し、「日付_メール件名」のフォルダを新規に作成した後、作成したフォルダに、メールの添付ファイルを保存します。
この時、「日付_メール件名」というフォルダー名をつける際、「メール件名」の部分は、動的なコンテンツから新しいメールが届いた時(トリガー)の「メール件名」を設定します。
さらにフォルダに、メールの添付ファイルを保存する際も、動的なコンテンツからトリガーで取得された添付ファイル情報を設定します。
変数と動的なコンテンツを使ってみる!
作成するフローの全体像
それでは実際に、Power Automateで「変数」や「動的なコンテンツ」を使ったフローを作成してみましょう!
作成するフローはこれまで例に示したものです。
Outlookメール受信時に、「日付」という名前の変数に、メールを受信した日付を設定し、「日付_メール件名」のフォルダを新規に作成した後、作成したフォルダーにメールの添付ファイルを保存してみましょう。
トリガー:Outlookメールを受信したとき
まずは自動化したクラウドフローを1から作成してみましょう!
1.トリガーは、Outlookの「新しいメールが届いたとき」を選択します。
2.詳細パラメーターから「添付ファイルを含める」と「添付ファイル付きのみ」にチェックを入れます。
3.2つとも「はい」を選択します。
アクション1:変数「日付」の初期化
1.「変数の初期化」アクションを追加します。
2.変数は以下のように設定します。
- 変数名(Name):日付
- データ型(Type):String(文字列)
- 値(Value):formatDateTime(<トリガーの日付>, ‘yyyyMMdd’) ※式から入力
Valueは、動的なコンテンツで、トリガーのOutlookメール受信時の、受信日時をそのまま選択するのではなく、日付のフォーマットを”20240707″という感じにするため、formatDateTime関数でフォーマットを整えます。
3.「fx」のマークから、関数式を入力します。
4.「formatDateTime」と入力し、()の中の1つ目の引数に、動的なコンテンツからトリガーの「受信日時」を設定します。
カンマで区切って2つ目の引数で、’yyyyMMdd’という感じで、フォーマットを設定することができます。
例えば’yyyyMMdd’と書けば、20240707という感じで出力できます。
5.追加ボタンをクリックすれば、値の設定も完了です。
アクション2:SharePointの新しいフォルダの作成
1.アクションを追加し、SharePointコネクタの「新しいフォルダの作成」を選択します。
2.SharePointサイトのアドレス、ライブラリを選択し、フォルダーパスは今回、「PowerAutomate」というフォルダー下に作成します。
3.「PowerAutomate」と入力後、動的なコンテンツから、変数の「日付」とトリガーのメール受信時の「件名」を選択します。
そして 「/」と「_」を入力すればOKです。
アクション3:フォルダにメールの添付ファイルを保存
前のアクションで作成したフォルダ内に、メールの添付ファイルを入れます。
1.アクションの追加で、SharePointの「ファイルの作成」を追加します。
2.サイトアドレスを選び、フォルダーパスは動的なコンテンツから、前のアクションで作成した新しいフォルダの作成の「完全パス」を設定します。
3.ファイル名は、動的なコンテンツから、トリガーのメール受信時の「添付ファイルの名前」、ファイルコンテンツには「添付ファイルのコンテンツ」を設定します。
動作確認
これでフローは完成です!保存してテストしてみます。
添付ファイル付きメールを送ると、フローが実行され、無事成功しました!
SharePointフォルダにも、ちゃんと「日付_メール件名」のフォルダが作成されて、中に添付ファイルも保存されていますぞ!
添付ファイルが無事開くことも確認しておきましょう!
このようにして、変数や、動的なコンテンツを使うことができます。
普段フローで何気なく使っていたかもしれませんが、このように変数や、動的なコンテンツについて基本的なところをしっかり理解しておくと、今後も効率的にフローを作成することができると思います。
最後に
この記事では、Power Automateの基礎知識となる「変数」、「動的なコンテンツ」について解説しました。
変数とは何かについて、基本的な知識を押さえておきましょう。
- 一時的に情報を保存しておく箱のようなもので、後で使用することができます。
- 最初に変数の初期化をして、変数名、データ型、値を設定する必要があります。
Power Automateの変数では、以下の6つのデータ型が設定できます。
- Boolean型:TrueかFalseのデータ
- Integer型:整数値
- Float型:浮動少数点の値
- String型:文字列のデータ
- オブジェクト型は:JSON形式のデータ
- アレイ型:配列のデータ
またこの記事では、動的なコンテンツについても解説しました。
トリガー、アクションで自動的に取得されたデータで、変数のように使えます。
Power Automateを使うには変数、や動的なコンテンツの理解は必須なので、是非抑えておきましょう!