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

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

【解説編その2】プレミアムアクションを使わずAzureADアプリも作らずにPower AutomateでMicrosoft TeamsのスレッドをCSVに保存する

掲題のフローの解説編その2です。

フローをGitHubで公開しました。
github.com

この投稿は、
解説編その1 の続きです。

概要編はこちらです。

この回で解説する範囲

解説する範囲のフロー図

この回で解説する範囲のフロー図は以下の通りです。

今回の範囲の目的

今回の範囲の目的は、解説編その1 で得た投稿一覧のデータを、使いやすいように変換することです。

解説編その1 で得た投稿一覧のデータ

今回の最終的な出力

この範囲で解説するステップ

この範囲で解説するステップは以下の通りです。

  1. 投稿一覧のデータを変換したものを格納するための配列変数を初期化
  2. 投稿一覧の1行ごとにデータの変換処理を実行して、配列変数に追加

解説

1.投稿一覧のデータを変換したものを格納するための配列変数を初期化

これは「変数」>「変数を初期化する」アクションです。後続のステップで変換処理したデータを格納するための箱をつくります。

2.投稿一覧の1行ごとにデータの変換処理を実行して、配列変数に追加

解説編その1 で得た投稿一覧のデータを、使いやすいように変換します。

アクションをひとつずつ解説します。

4-1.「ユーザー プロフィールの取得 (V2)」アクション

これは「Office 365 User」>「ユーザー プロフィールの取得 (V2)」アクションです。投稿一覧から取得した投稿者のUser IDをキーにして、Azure ADから投稿者の表示名を取得します。

4-2.「Html からテキスト(プレビュー)」アクション

これは「Content Conversion」>「Html からテキスト(プレビュー)」アクションです。投稿一覧から取得した投稿本文はHTMLタグが含まれます。そのため、このアクションでHTMLタグの無いテキストに変換します。

4-3.「配列変数に追加」アクション

これは「変数」>「配列変数に追加します」アクションです。4-1 と 4-2 のアクションで変換した列を含む3つの列を持つデータ(= 行)を、配列変数「投稿一覧のデータを変換したもの」に追加します。

このアクション内で"createdDateTime"列を、convertTimeZone関数を使ってUTCから Tokyo Standard Time に変換します。

また、このアクションでは変換したデータの列名を任意に指定できます。そのため、用途が分かりやすいように日本語の列名をつけます。

"inputs": {
    "name": "投稿一覧のデータを変換したもの",
    "value": {
        "投稿日時": "@convertTimeZone(item()?['createdDateTime'], 'UTC', 'Tokyo Standard Time', 'yyyy/MM/dd HH:mm:ss')",
        "ユーザー": "@outputs('ユーザー_プロフィールの取得_(V2)')?['body/displayName']",
        "本文": "@body('Html_からテキスト')"
    }
},

今回の範囲の結果として得られるもの

今回の範囲の結果として得られるものは、配列「投稿一覧のデータを変換したもの」のデータです。

この配列の中身は、一番上は"親の投稿"です。2つめ以降の行は"返信"です。ですが、返信の並び順は日時の昇順になっていません。

後続の処理ではこの配列の中身を日付の昇順に並べかえます。こちらについては次の回で解説します。

今回は以上です。

追記:解説編その3を投稿しました。

wataruf.hatenablog.com

追記:CSVに含める列を「最終更新日時」から「投稿日時」に変更しました。

「最終更新日時」を基準にした並び順はTeamsのスレッド上の並び順と一致しない場合があるため、出力対象を「投稿日時」に変更しました。