なぜこれをつくったか
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 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 アクション
枠の個所の式を下記のように変更します。
- (修正前)
empty(body('Get_messages_in_a_group')?['messages'])
- (修正後)
empty(body('Get_messages_in_a_group')?['value'])
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 アクション
枠の個所の式を下記のように変更します。
- (修正前)
last(body('Get_messages_in_a_group')?['messages']).ID
- (修正前)
last(body('Get_messages_in_a_group')?['value']).ID
以上で修正は完了です。