ルドルフもわたるふもいろいろあってな

Microsoft 365、Power Platform、PowerShellについて調べたことや検証したことなどを投稿します。技術の話は面白い。

【Power Automate】【TIPS】トリガーやアクションの入力情報を後続のアクションで取得する

今回はPower AutomateのTIPSです。

概要

こんなフローを作ってみました。このフローで、、、

このようにトリガーやアクションの入力情報を後続のアクションで取得します。この方法について解説します。

解説で紹介するケース

解説では紹介するフローの目的は下記の2つです。

  • トリガーの入力情報として指定されているSharePointリストのURLを取得する
  • アクションの入力情報として指定されているSharePointリストのURLを取得する

解説で使用するフローをGitHubで公開しました

github.com

フロー図

アクションの設定を閉じた状態のフロー図

開いた状態のフロー図

ステップごとの解説

「項目が作成されたとき」トリガー

このアクションは「SharePoint」>「項目が作成されたとき」です。このトリガーはSharePointに新しいアイテムが登録されたときにフローを開始するトリガーです。

「作成-トリガーのinputパラメーター」アクション

このアクションは「データ操作」>「作成」です。今回はトリガーの情報を関数を使って取得するために使用します。

"inputs": "@trigger()['inputs']['parameters']"

trigger関数を使ってフローのトリガーの情報を取得します。trigger関数の出力が持つinputs > parametersプロパティがトリガーの設定値を表します。

このアクションの取得は下図の通りです。

SharePoint に HTTP 要求を送信します-リストのルートフォルダを取得」アクション

このアクションは「SharePoint」>「SharePoint に HTTP 要求を送信します」です。

"parameters": {
    "dataset": "@outputs('作成-トリガーのinputパラメーター')['dataset']",
    "parameters/method": "GET",
    "parameters/uri": "/_api/web/lists('@{outputs('作成-トリガーのinputパラメーター')['table']}')/RootFolder"
},

input関数で取得した情報を使ってHTTP要求アクションでリストの情報を取得します。このHTTP要求アクションの入力情報をすべて動的コンテンツで完結できるのが今回のポイントです。つまり、トリガーの対象となるSharePointリストを変更した場合であってもこのHTTP要求アクションについては変更の必要がありません。

このアクションの出力は下図の通りです。

「作成-トリガーで指定したリストのURL」アクション

このアクションは「データ操作」>「作成」です

"inputs": "@concat(outputs('作成-トリガーのinputパラメーター')['dataset'], '/Lists/', outputs('SharePoint_に_HTTP_要求を送信します-リストのルートフォルダを取得')?['body']['d']['Name'])"

trigger関数の出力とHTTP要求の出力それぞれから受け取った情報をconcat関数で文字列結合することによって、トリガーの対象として指定しているリストのURLを取得しています。

このアクションの出力は下図の通りです。

「複数の項目の取得」アクション

このアクション「SharePoint」>「複数の項目の取得」アクションです。

「作成-アクションのinputパラメーター」アクション

このアクションは「データ操作」>「作成」です。

"inputs": "@actions('複数の項目の取得')['inputs']['parameters']"

actions関数を使うことによってアクションの入力情報を取得することができます。trigger関数と同じく inputs > parameters プロパティでアクションの設定内容を取得することができます。

このアクションの出力は下図の通りです。

SharePoint に HTTP 要求を送信します-リストのルートフォルダを取得 2」アクション

このアクション「SharePoint」>「SharePoint に HTTP 要求を送信します」です。

"parameters": {
    "dataset": "@outputs('作成-アクションのinputパラメーター')['dataset']",
    "parameters/method": "GET",
    "parameters/uri": "/_api/web/lists('@{outputs('作成-アクションのinputパラメーター')['table']}')/RootFolder"
}

このアクションの出力は下図の通りです。

「作成-アクションで指定したリストのURL」アクション

このアクションは「データ操作」>「作成」です。

"inputs": "@concat(outputs('作成-アクションのinputパラメーター')['dataset'], '/Lists/', outputs('SharePoint_に_HTTP_要求を送信します-リストのルートフォルダを取得_2')?['body']['d']['Name'])"

このアクションの出力は下図の通りです。目的である、リストのURLを取得することができました。

参考情報

mofumofupower.hatenablog.com

qiita.com

learn.microsoft.com

最後に

小さなTIPSではありますが、こういったTIPの積み重ねで設定変更時に強いフローが作成できます。

(`・ω・´)シャキーン

 

今回は以上です。