ささみ学習帳 - sasami's study book

ささみ学習帳

Microsoft365 や Power Platform について学んだこと・アイデアのメモ

Vivaエンゲージ(Yammer) のコミュニティ内の全てのメッセージを取得する Power Automate クラウドフロー ※「 グループでメッセージを取得する (V2)」アクション対応 超簡易改修メモ

なぜこれをつくったか

Microsoft Lean のYammer コネクタ ページの既知の問題と制限事項 からリンクされているHow to get all messages in a Yammer group using Microsoft Flowの超簡易改修版です。

オリジナルのフローは2019年のページということもあり2023年現在では【非推奨】となっている「Get messages in a group V1 (グループでメッセージを取得する V1)」アクションを使用しています。これを最小の修正で「Get messages in a group V2 (グループでメッセージを取得する V2)」アクションに置き換えるメモです。 両方使えるうちに検証してメモを残しておこう、という訳です。

準備

How to get all messages in a Yammer group using Microsoft Flow から、オリジナルのフローをダウンロードし自環境にインポートします。

フローの修正箇所

「Get messages in a group V2 (グループでメッセージを取得する V2)」アクションに置き換えることで、出力のJSON構造が若干変わります。
その為下図の枠の4か所を修正します。

フロー全体図

Get message in a group アクション

Get message in a group アクション

元の「Get message in a group」 アクションを削除し、「Get messages in a group V2 (グループでメッセージを取得する V2)」アクションに置き換えます。

  • アクションの名前は元と同じ「Get message in a group」として修正箇所を少なくします
  • 「削除までの期間(Older than)」
    • オリジナルと同じ式
    • if(equals(variables('varLastMessageID'), 0), null, variables('varLastMessageID'))
  • メッセージのスレッドの種類(Thread type of messages)
    • false :オリジナルと同じく全てのメッセージを取得
    • true :スレッドスタートメッセージのみ取得

Condition to check if the messages array is empty アクション

Condition to check if the messages array is empty

枠の個所の式を下記のように変更します。

  • (修正前)empty(body('Get_messages_in_a_group')?['messages'])
  • (修正後)empty(body('Get_messages_in_a_group')?['value'])

Compose array of messages from union アクション

Compose array of messages from union
枠の個所の式を下記のように変更します。

  • (修正前) union(variables('varAllMessages'), body('Get_messages_in_a_group')?['messages'])
  • (修正後) union(variables('varAllMessages'), body('Get_messages_in_a_group')?['value'])

Set variable varLastMessageID アクション

Set variable varLastMessageID
枠の個所の式を下記のように変更します。

  • (修正前) last(body('Get_messages_in_a_group')?['messages']).ID
  • (修正前) last(body('Get_messages_in_a_group')?['value']).ID

以上で修正は完了です。