カテゴリ「Power Automate」の28件の投稿 Feed

2022年8月 3日 (水)

Microsoft Teams にメッセージを投稿するフローを作っている人も多いと思います。この中で書式指定できる項目とそうでないものがある。

特に書式指定するメニューが用意されていない場合はマークダウン記法が利用できるようになっています。ちなみに、Microsoft Teams で利用できるマークダウンは下記の通り。

[マークダウン] の書式設定を使用Teams (microsoft.com)

2022-08-03_18-57-17

そう思って Microsoft Teams で使えるマークダウン記法と同じものを使おうとするとうまくいかない。そこでもう少し調べてみる必要があります。

すると次の情報が見つかります。クライアントによるサポート状況が異なるのです。

Markdown を使用して Power Automate の承認の書式設定を行う - Power Automate | Microsoft Docs

2022-08-03_17-52-42

例えば、Teams の「アダプティブカードを投稿して応答を待機する」アクションの「更新メッセージ」などでマークダウンが使えるのですが、サポートされないものも多い。Microsoft Teams で使えても Power Automate と組み合わせると使えるものが少なくなるのです。

ということで簡単な実験結果が次の通りで、おおよそ上記の表と合致します。
ちなみに強制改行は半角スペースを2つ分追加しておくことで対応できます。

★元のフロー

2022-08-03_19-02-05

★実行結果

2022-08-03_19-01-36

結論として次の Power Automate の Teams コネクター内でマークダウンが使えるということ。

  • 斜体
  • 段落番号 (入れ子も含む)
  • ハイパーリンク

実験したい人用に上記のマークダウンもおいておきます。


■太字 : *太字*  
■斜体: _斜体_  
■取り消し線: ~取り消し線~  
■段落番号:   
1. いちご  
1. バナナ  
  
■順序無しリスト:  
* いちご  
* バナナ  
- いちご  
- バナナ  
  
■入れ子(ネスト)  
1. フルーツ.
   - 
   - 
1. 野菜
   - ブロッコリー
   - ピーマン
   - 人参
  
■ハイパーリンク型: [オフィスアイ](https://www.office-i-corp.jp/)  
■複数行コードブロック:   
```let temparature:number=39.4  
■インラインコードブロック :   
`[let temparature:number=39.4]`  
■ヘッダー:  
##ヘッダーテキスト
2022年7月 8日 (金)

CreateM365Group

秘密度ラベルを適用したMicrosoft 365 グループを作成することで、最初から秘密度ラベルで保護されたチームサイトを作成できます。

こうしたグループ作成は SharePoint REST API または Microsoft Graph APIを用いて作成できますが、PowerShellを使う場合には委任の設定が別途必要になります。詳しくは下記の情報が詳しいです。

Create M365 Group with Sensitivity Label programmatically

Creating the M365 group with Sensitivity Label starts the modern Team site with desired protection. This can be done with SPO Rest API or Microsoft Graph API, both require delegated permissions. The following sample scripts use AAD App ROPC authentication flow (Resource Owner Password Credentials)...

そこで、そういえば Power Automate を使う方法もあるなぁと思いせっかくなので SharePoint コネクターを使った場合のスクリーンショットを共有しておきます。利用するURLは " _api/GroupSiteManager/CrateGroupEx " 。もちろん、これを実行できるのは Microsoft 365 グループが作成できる権限を持っているユーザーに限られます。

2022-07-08_14-17-01

以上で追加設定は特に不要です。

ちなみに、SPSiteLanguage はサイトの既定の言語を指定する LCID (ロケールID) で、日本語だと 1041、英語だと1033です。秘密度ラベルは、CreationOptions 内でラベルIDを指定します。このように作成すればチームサイトは最初から秘密度ラベル適用済みになります。

チームサイト-秘密度ラベル

この方法がわかっていれば、SensitiveLabelは必須ではないので単純な Microsoft 365 グループを作ることもできますよ。

*********************************

秘密度ラベルを使った Microsoft 365 のデータ保護については弊社でオリジナル研修を行っていますので、こちらも併せてどうぞ。

【オフィスアイ株式会社】Microsoft Purview コンプライアンス入門~Microsoft 365ファイルおよびメール・チャットに対する機密情報保護と情報ガバナンス~ (office-i-corp.jp)

 

2022年3月28日 (月)

SharePoint サイト(※モダンサイトです) でサイトページまたはニュースを作成していて、ついうっかり目的のサイトではないところに作成してしまうことがあります。しかし、サイトのページライブラリで操作メニューを確認してもページのコピー先は同一サイトに限られます。残念ながら既定ではサイト間でのページのコピー機能は用意されていません。ですが、どうしても別サイトに一から作成しなおすのは大変だということもあるでしょう。

そんな時には、Power Automate を使ってサイト間でページをコピーするのが最も手っ取り早い方法です。ただし、この場合も注意しなくてはいけないことがあります。まず、コピーしたときには元のサイト内のコンテンツのリンクを持っているとそのままコピーされることになるので、アクセス権限の設定状況によってはユーザーが画像やファイルなどのコンテンツを参照できないかもしれません。また、リストWebパーツやドキュメント ライブラリWebパーツを追加している場合も、もともと同一サイト内にリストやライブラリがある前提となっています。そのため、同一の名前のリストやライブラリがコピー先のサイトにあればそれを取得することになりますが、当該するものがなければWebパーツは空になります。

このように、いつかの懸念事項があるため技術的にはコピーできるものの、運用上のユーザーが混乱することを懸念して、既定では別サイトに安易にコピーができないようになっているのではないかと推測しています。ですから、Power Automate が使えるからと言って安易に利用せず、注意深く利用するようにしてください。

事前準備

今回はSharePoint コネクターの「ファイルのコピー」アクションを使いますが、このアクションでは、コピー元のサイトの「サイトのページ」ライブラリのGUIDが必要です。これを手軽に取得するには、まずサイトのページライブラリの「設定」ページにアクセスすることです。このページを表示しているときのURLを確認しましょう。

2022-03-25_12-52-59

例えば、URLは次のようになっています。

https://<サイトのURL>/_layouts/15/listedit.aspx?List=%7B39a28bb9-3567-475b-a289-f54555841fc8%7D

この末尾の List=の部分がサイトのページライブラリのGUIDです。%7B は "{" のことで %7D は "}" のことです。そのためこのライブラリの GUID は 39a28bb9-3567-475b-a289-f54555841fc8 ということになります。サイトのページライブラリの GUIDは Power Automate から取得することもできますが、フローを実行することなくWebブラウザーだけでさっと確認できるためこの方法も覚えておくとよいでしょう。

フローの構築

今回のフローでは SharePoint コネクターの「選択したファイルの場合」トリガーを利用します。これにより、いつでもコピーしたいページから直接フローを開始できるようになります。ただし、この「選択したファイルの場合」トリガーを使う場合はフローは必ず既定の環境に作成するようにしてください。

なお、ライブラリ名はドロップダウンからは選択できないためカスタム値として先ほどの GUID を指定しましょう。

2022-03-25_11-56-15

次に「ファイルのプロパティの取得」アクションを追加します。ここではトリガーと同じサイトのアドレスとライブラリ名を指定します。IDは「選択したファイルの場合」トリガーで取得したIDを指定します。

2022-03-28_17-33-44

最後に「ファイルのコピー」アクションを追加します。

現在のサイトのアドレスはコピー元のサイトを選択します。コピーするファイルは「ファイルのプロパティの取得」アクションで取得した識別子を選択します。

2022-03-28_17-35-55

送信先サイトのアドレスはコピー先のサイトのアドレスを指定します。インストール先フォルダーはフォルダーアイコンをクリックして SitePages を選びます。

2022-03-28_17-36-15

別のファイルのがすでに存在する場合の指定は、今回は Copy with a new name を選択します。

2022-03-28_17-38-13

あとはフローを保存して、コピー元のサイトの「サイトのページ」ライブラリから任意のページを選択して、フローを実行するだけです。

2022-03-28_17-38-56

2022年2月19日 (土)

長期間の承認フロー

Power Automate にはフローの実行継続期間があり、フロー開始されてから30日となっています。

Duration and retention limits

2022-02-19_22-39-26

承認フローのようなフロー完了までに長期間にかかるようなものは、この制限に引っかかってしまうことがあります。そこでマイクロソフトは承認の情報を Microsoft Dataverse に格納することを勧めています。下記の記事は2019年のもので現在ステータスがアーカイブになっていますが参考にはなります。

Long-lived approvals and flows on Common Data Service

かいつまむと 承認 コネクターの 「承認の作成」アクションを使うことで、フローを作成した環境に既定で用意されている Microsoft Dataverse に承認が格納されるとのこと。これをうまく使えば長期実行できるよ、という話です。

そこでたどり着くのが Power Automate Community の「Build long-running Approval Flows」というブログ記事です。これを一通り試せば、おおよそどんなことをすべきかわかるかなと思ったのですが、如何せん、記事が書かれたのが2019年で Dataverse にもなっていない頃です。今のフローで作成してようとすると結構躓きどころが多い。

ということで、2022年2月現在でフローを作り直すとどうなるかをここに書き記しておきます。フローは2つを組み合わせていきます。大まかなイメージは次の通り。

2段階フロー

1つ目のフロー

こは次のように作成します。ポイントは「承認」コネクターの「承認を作成」を使うことですね。

2022-02-19_22-11-15

2つ目のフロー

これには Dataverse のコネクターを使っています。これはプレミアム コネクターであるため有料プランなどが必要ですね。そのためインターネット上にはこのコネクターを使わずにうまくタイムアウトを処理するロジックを構築している例が複数見つかるので、気になる方は探してみてください。

2022-02-19_22-16-50

最初に追加しているのが Dataverse の「行が追加、変更または削除された場合」トリガーです。「種類の変更」は "更新" を指定し、テーブルは Approvals を指定します。

2022-02-19_23-32-37

次に「IDで行を取得する」アクションを追加します。これは承認を依頼したユーザーを特定するために使用しています。

2022-02-19_23-33-59

条件分岐は「行が追加、変更、または削除された場合」トリガーの「Result」を使って、承認されたかどうかを判定します。

2022-02-19_23-35-41

最後は承認または却下された時にメールを送信しています。送信先は「IDで行を取得する」で取得した申請者の「既定電子メール」を指定しています。「Title」は「行が追加、変更、または削除された場合」トリガーからの取得したものです。

2022-02-19_23-37-35

以上の2つのフローを保存したら動作検証しましょう。

検証結果

1つめのフローをテスト実行することで、Microsoft Teams の承認アプリに承認依頼が送られます。これで1つめのフローが実行されたことがわかります。

2022-02-19_10-27-14

これを承認することで無事にメールに結果が届きます。これで2つめのフローも実行されたことがわかります。

おまけ

このフローを構築することでわかったのが、承認コネクターで「承認を作成」することで Approvals という Dataverse のテーブルに承認が追加されることです。実際にビルトインのソリューションである「Microsoft Flow Approvals Core Solution」を見てみると Approval (複数形は Approvals, スキーマ名は msdyn_flow_approval ) テーブルにデータが追加されていることがわかります。

2022-02-19_20-22-02

2022-02-19_20-24-09

2021年7月16日 (金)

AvePoint 社の中村太一さんの企画により開催された

「【Microsoft MVP の祭典 2021】 Microsoft 365 + Power Platform 利活用デモ祭り」

ですが、AvePoint社に全面スポンサーになっていただき、おかげさまで関係者ともども無事に終了することができました!参加いただいた皆様ありがとうございました。

AvePoint Japan さんとの共同企画の無料セミナー - 【Microsoft MVP の祭典 2021】 (weblogs.jp)

ウィークデーの日中にも関わらず、数百名が参加いただいたようで、アンケート結果を見ると皆さん満足していただいたようでホッと安心しました。

今回、ラジオ番組感覚でのメンバーによるテーブルトークをランチタイムに行ったのですが、こちらも思いのほか、楽しんでいただけたようで何よりです

なんだかんだと、業務の合間に準備するのは大変ではあるので、実施した甲斐があったというものです。

IT系のコミュニティ

ITの技術コミュニティに参加する方が増えるといいなというところが、今回の目標の一つでもあったのですが、今までコミュニティからは縁遠かった方々からも興味をもったというフィードバックも少なくなく、目標は達成できたのではないかなと思います。

私自身、「教えることを生業にしている」という職業柄、さほど頻繁に特定のコミュニティにどっぷりとかかわっているわけではありませんが、それでも研修に参加される方々には継続的な学習を続けるにあたり、適宜、ご案内するようにしています。コミュニティという場があれば、情報の収集やアウトプットをしていくことでより知識も深まっていくと思うからです。組織の垣根を越えて、同じようなことで悩んだり、喜んだりする仲間がいるというのも大きいと思いますしね。

コミュニティの全体像については、冒頭で Microsoft 社の森口さんのセッションが非常に参考になるので、まだ視聴していない方はぜひ、ご視聴ください。

資料のご案内

今回登壇した資料は下記の通りです。なお、録画に関しては AvePoint社の登録サイトから事前登録した方に録画へのリンクが後日公開される予定となっています。

[スライド]

他の方の分は AvePoint Japan 公式 Twitter で公開されているのでこちらからどうぞ~。