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

2020年4月 3日 (金)

Power Automate を使ってリスト内のアイテムを一気に他のリストに移動させたいということもあります。しかし、残念なことに、SharePoint Designer で開発するワークフローには存在していた「アイテムのコピー」というアクションは SharePoint コネクターにはありません。

一つ断っておくとすると、SharePoint Designer での開発はサイトを越えた処理は基本的にはできず、SharePoint REST API を使うなどしていましたので、もともとそう高機能だったというわけでもありません。

話を戻しましょう。

Power Automate の場合は元のアイテムのデータをもとに新しいリストにアイテムを新規に作成するという、コピー作成を行うことになります。「移動」にしたければ最後にアイテムを削除すればよい。

まずは機能検証するためにコピーまでとし、元のリストアイテムの削除はしません。これを実現する最も手軽な方法は、次の SharePoint コネクターのアクションを使うことです。

  • 複数の項目の取得 (Get items)
  • 項目の作成 (Create an item)

さて、複数のアイテムがあるのでこれを一気にコピーしたいのですが、とりあえず手動でフローをトリガーしてやることにします。処理が終わったらMicrosoft Teams にチャットメッセージを投稿するようにします。以上を踏まえると以下のようなフローの組み立てがシンプルです。

Bulk List Item Copy 1

さて、フローをテスト実行し、手動開始してみます。今回、元のリストには1,000件以上のアイテムがあります。が、試すと Apply to each では 100件までしか処理していないことが分かります。

Bulk List Item Copy 2

さて、なぜこうなっているのか? 

昔から SharePoint の一括操作(バルク処理)は100がしきい値というのはおなじみのところであり、SharePoint の API もクエリを使って取得するデータの上限は既定値が 100 というのもよくある話。さて、これはどこの設定が関わっているのか確認してみましょう。

先ほどの「複数の項目の取得」の詳細オプションを確認すると「上から順に取得」という項目あります。英語だと Top Count という項目です(英語の方が分かりやすい...)。SharePoint の開発をしたことのある方なら、ここでピンとくるかもしれません。これが要はREST API の引数の $top に当たるわけです。これが既定値のままだと、100アイテムを取得するという既定の動作となるのです。

Bulk List Item Copy 3

この値を2000ほどに変更しておくと、今度は1,000件以上のアイテムが取得できました。

Bulk List Item Copy 6

なお、「上から順に取得」で指定できる上限は SharePoint は一度の呼び出しで最大  5,000までしか取得できません。

そして このアクションのあとに Apply to each を使用しますが、 Office 365 およびフリーのライセンスでは5,000までしか対応していません。これ以上の値を指定したい場合は Power Automate per flow または per user (もしくは Plan2 か Plan1)が必要になります。有料プランであれば上限は100,000 になります。

このことについては詳しくは下記に記載されているので一度目を通しておきましょう。

さて、5,000以上指定したい場合は、上記のライセンスを持っているのであれば、「複数の項目の取得」アクションの設定から、改ページ (Pagination) のしきい値をたとえば20,000などに指定します。

Bulk List Item Copy 4

Bulk List Item Copy 5

改ページをオンにすることで、しきい値の指定がなければすべてのアイテムを、もしくはしきい値があればその値に達するまで呼び出しを続けるようになります。「改ページ(Pagination)」に関しては次のブログに記載されています。

Do Until の利用

ところで Power Automate per user や per flow などの有料プランを持っていない場合に対処方法はあるのか?

Do Until を使う方法であれば、これをクリアできそうです。たとえば、上限である5,000アイテムずつ繰り返し取得して行くというアプローチが取れるようになります。ただし、フローは若干、複雑になります。

まず変数の準備。次のように変数を用意します。

Bulk List Item Copy 7

次に Do Until を挿入します。条件は ItemEmpty が true になるまで。

あとはこのコンテナの中に「複数の項目の取得」アクションと「項目の作成」アクションを挿入します。

Bulk List Item Copy 8

「複数の項目の取得」アクションの設定で改ページをオンにします。しきい値は5,000にしておきます。

Bulk List Item Copy 9

また「複数の項目の取得」アクションのフィルター条件に TargetItemID の値以上を指定します。

Bulk List Item Copy 10

Do Until コンテナ内の処理の続きとして条件を指定します。

Bulk List Item Copy 11

条件は「empty(body('複数の項目の取得')?['value'])」が true です。

「はい」のときは ItemEmpty を true に設定し、「いいえ」のときは TargetItemIDの値に「複数の項目の取得」アクションで取得した最後のIDを格納します。式は次の通り。

last(body('複数の項目の取得')?['value']).id

このIDを使ってスライディングウィンドウを作るイメージです。

全体像は次の通りです。

Bulk List Item Copy 12

謝辞および参考資料

Power Automate を使って SharePoint のアイテムを一括で処理するところで悩んでいたところ、それを Twitter でつぶやいたら Yellow11(@br_Yellow11) さんが助け舟を出してくださいました! 

Do Until の利用か! なるほど、と思い、いろいろと調べていたところ、細かいところが分かったので、忘れないうちに記事にしようと思い立ったわけです。

また、海外の方が書かれている下記の記事も見つけることもでき、これを含めて今回の日本語の記事にまとめました。

How to get more than 5000 items from SharePoint Online in Flow

皆さんのおかげです

Pay it forward !!

2019年5月23日 (木)

2019年5月21日から23日までの日程で Las Vegas にて SharePoint Conference 2019 が始まりました。SharePoint に特化したセッションばかりの3日間です。今年は幸い現地にて参加しています。

SharePoint Conference は最初は Microsoft 主催でシアトルで開催されていましたが、それが Las Vegas 開催へと発展し、しばらくの間は Mandalay Bay (ホテル名)で行われていました。その後、SharePoint 以外も含めた Microsoft Ignite へと吸収されてしばらく開催がなくなってしまいます。しかし、2018 年から Microsoft 協賛の North America でのコミュニティイベントという形で復活しました。ですから、純然たる Microsoft のカンファレンスというわけではありません。登壇者も Microsoft の社員は勿論、Microsoft MVP などが担当します。現場視点での興味深いセッションも多く見られるというのが非常に特徴的です。

SharePoint Conference 2019 は、MGM Grand Conference Center で開催されています。

セッション数は SharePoint 関連だけで(Teams や Stream, PowerApps/Microsoft Flow なども含む)  200 以上。国内ではとてもこれだけの情報量はでてきません。

 

SharePoint Virtual Summit

さて、Keynote や主要なセッションについては SharePoint Virtual Summit として下記のURLから On-demand でどなたでも閲覧できます。

https://www.microsoft.com/en-us/spvs

94889ED9-DFBA-4115-A66A-6709A3EB888E

最新情報

その他のセッションは基本的には現地でしか見られません。とはいえ、SNS の恩恵により、現地にいなくても、息つく間もなく、このカンファレンスから発信される情報を拾えるので、便利な世の中になったものです。

ということで SharePoint Confernce 2019 (#SPC19) から発信された主だった最新情報を Twitter から引用してまとめておきましょう。日本語に訳している時間がないほどの情報量です。自分が発信したものだけでなく、他の方々もスライド部分を Twitter で公開しているので、それも含めます。

ちなみに、この記事を書いているのは 2日目が終了時点です(それでもすごいボリューム)。最終日にまとめていると、帰国の準備だなんだでバタバタするので、先にわかっている範囲でまとめます。追加があれば、改めて記事を書きます。

そしてまだモダンサイトをしっかりと勉強できていない方がいれば、これを機会に早めに取り組んでいってください。時間がたてばたつほど新たに覚えることが増える一方です。特にオンプレミス環境とは雲泥の差で、差は広がるばかり。。。

チームワーク全般

SharePoint Home site 

SharePoint Home sites っていうのが出てきます。

ポータル機能

近日中に利用できる機能としては Vertical Section 、コンテンツのコピー&ペースト、Webパーツとセクションの複製などが注目です。今年の後半はニュースやページのスケジュール公開がやはり根強い期待感があるところでしょうか。

イントラネットのデザイン周り

ハブの数が 100 から一気に 2,000 に拡大されるのが一番のポイントです。

SharePoint チームサイトとビジネスアプリ

個人的に注目しているのは サイトをサイトデザインに抽出できるようになる部分です。サイトのテンプレート化ができる。また、カードベースのリストビューというのも気になります。さらに、PowerApps Forms がゲストアクセスできる (リストのフォームの方だと思います。このセッションも参加できなかったので、詳細は確認できていません)!

SharePoint リストとライブラリ

OneDrive for Business のRoadmap

機能が盛りだくさん過ぎます。

Teams 内のチームの「ファイル」タブ

ファイルタブの中身が SharePoint のドキュメントライブラリとほぼ同等に使えるようになります(もともと実体は SharePoint ではあるのですが)。

Microsoft Teams を活用するためのエチケット

当該セッションには参加していないのですが(参加したいセッションが複数被るため)、コンパクトに分かりやすく infographics にまとめてくださっています。素晴らしい。

SharePoint 開発

SharePoint Framework に関するロードマップ。

Microsoft Search

去年からパブリックプレビューが始まり、先日 GA となった Microsoft Search です。SharePoint を含め検索機能は今後 Microsoft Search がベースになります。そして、今後は機能が結構増えそう。

Microsoft Search では今後 コネクターが用意される予定となっており、オンプレミスの共有フォルダー検索もこれで対応できるようになるとのこと。

 

SharePoint ECM 

Microsoft Stream roadmap

個人的に気になるところは Screen recording 、 External video sharing, Microsoft Search integration。Stream上のビデオって、意外とまだ Stream内からしか検索できません。ですから、Delve からも対象外となっている(内部的に検索機能を使っているので)。

サイトスクリプト

サイトスクリプトも新機能が続々登場される予定。

Yammer の Question and Answer 機能

Yammer に質問と回答の機能が追加されます。Live Events 内でも利用できます。

 

Yammer の新機能

 

Microsoft Flow に SharePoint 関連機能が追加

ようやくファイルのチェックイン/チェックアウト、権限設定などができるようになるようです。

サイトコレクションのURLが SharePoint Online 管理センターから変更できる

この機能は既に Target Release テナントから順次展開されていて、私が利用しているテナントでも利用できるようになっています。URLを変更しても旧URLから新しいURLへリダイレクトしてくれる機能も備えています。

Microsoft Kaizala

Teams とよく似たイメージの Kaizala。その違いを、またまた infographics にしてくださっています。すごくわかりやすい!

2018年8月 1日 (水)

さて、1週間前ほどになりますが、Excel 内から Microsoft Flow のフローが利用できるようになりました。といっても、まだプレビューです。

Flow is available in Excel and the Outlook Web App, introducing Business process flows, and more! | Flow のブログ

There are two new flow integrations: with the new Flow button in Excel, you can create and trigger automation directly on tables in your worksheets, and, you can now create flows that sync tasks to Microsoft ToDo in the Outlook Web App.

Excel の アドインとして提供されます。アドインの詳細は下記のリンク先などを参照してください。

Microsoft Flow for Excel (Preview)゜

Automate repetitive tasks by integrating your favorite apps and services with Microsoft Flow.

 2018/8/1 現在のアドインの概要は次の通り。

  • バージョン : 1.0.0.2
  • 更新日時 : 2018/7/17
  • サポートされている製品 : Excel 2016 + , Excel 2016 for Mac, Excel Online

つまり、Excel 2016 以降で利用できるということですが、注目すべきはいわゆる "Office Webアドイン" であるため Excel Online でも使えるということ。手元の環境が Excel 2013 以前だというケースでは Excel Online だと試せます。

Office ストアへのアクセス制限を考慮

ところで、このアドインは入手元は Office ストアです。Office 365 テナント管理者は組織内のユーザーが Office ストアにアクセスできるかどうかを制御できます。そのため、これを許可していなければユーザー自身が Office ストアからアドインを追加することはできません。試したくてもテナント管理者が許可していないなぁ。ということもあり得るので注意してください。

 

とはいえ、これは基本的に「ユーザーが勝手には」追加できないという話。管理者が今回の Microsoft Flow アドインのように、特定のアドインの利用を全てのユーザー、または特定のユーザーやグループにのみ許可することはできます。

2018-08-01_11-34-27

アドインを追加してみよう!

では上記の条件をクリアしている前提ですが、Excel 2016 でアドインを追加してみましょう。

追加すると[データ]タブに[Microsoft Flow]ボタンが追加されるようになります。これをクリックすると Flow 用のパネルが右側に表示されます。Excel Online を使っている場合も同様にアドインの追加が必要です。

2018-08-01_11-42-20

このパネルからフローを作成したり、開始したりできます。

Excel アドインでは Excel内に作成してあるテーブルを基軸にします。テーブル内の任意のセルを選択し、その行データを使ってフローを処理します。ですから、「選択した行から」というトリガーが基本。ちなみに現時点でExcelアドインを使ったテンプレートとして用意されているものは次の通りです。 

  • 選択した行から --> メールを送信する
  • 選択した行から --> SharePointにアイテムを作成する
  • 選択した行から --> Dynamicsにエンティティを作成する
  • 選択した行から --> 承認を送信する
  • 選択した行から --> Teamsにメッセージを投稿する
  • 選択した行から --> 他のスプレッドシートに行を作成する
  • 選択した行から --> Twitter にメッセージを投稿する

SharePoint と連携させてみよう!

 では SharePointリストと連携したフローを作成してみましょう。対象は SharePoint のカスタムリスト。Excel シート内のデータをここに手作業で書き写すのではなく、フローを使って素早くアイテムを追加できます。詳しくは YouTubeに動画を公開しましたので、ご参考まで。

トラブル対応情報

ちなみにビデオでは、Excel Online を使いました。デスクトップ版に比べるとトラブルが少ないためです。では、ここまでで遭遇したトラブルを以下に共有しておきます。いずれも Flow のパネル部分の問題であり、パネル自体は表示されるが、パネル内に何も表示されないか、エラーが表示されてしまう。

2018-08-01_16-04-15

私自身は、複数テナントを持っているので、これを切り替えるためにアカウントを切り替えて使っていたのですが、何度かやっていたら、「ウンともスンとも」画面がでてきません。アドインのアンインストールと追加も何度やったことか。。。Cookieの削除とか、あれこれ。しかも半日経っても治らない。そこで Twitter でこの困った件をつぶやいたら「Yugo Shimizu」さんからヒントを頂きまして、それをもとにあれこれやったら「サインイン」が出てくるところまでは何とか修正できました。

で、何をやったかというのをメモしておくと、そもそもこの部分は Office Webアドインであり JavaScriptで動作しているわけです。そのため、プラウザー側にも何かしら影響を受けます。そのため下記のことをやりました。が、正確にはどれが正しい処理なのかまでは追及しきれていないので、はっきりしたことが分かれば追記しようと思います。

  • IEと Edgeの両方を使っているので、念のためどちらも Office 365 ポータル (www.office.com) に入り直し、きちんとサインアウトする
  • 各ブラウザーでMicrosoft Flow ポータルにも入り直し、きちんとサインアウトする
  • 念のためPCを再起動

以上です。ただ、再び同様の現象が発生しているので、なかなか問題追及は難しいです。特にOffice 365 にサインインするときに「サインインを継続する」をオンにせずにいるとトラブルにあう可能性が高まります(これは、PowerAppsの方も同じですが)。

Edge を使って Excel Online 上でフローを利用しようとしていたら、下記のようなエラーメッセージにも遭遇しました。

2018-08-01_15-01-29

確かに IE側では、https://flow.microsoft.com はセキュリティ ゾーンにキチンと登録していなかった。。。ですが、Chrome に切り替えたらすんなり動きました。まだまだプレビューですし、不安定さありますが、それでも Excel Online + Chromeは安定しているようなので、検証する際にはまずはこの環境を利用することをお勧めします。

 

2017年12月19日 (火)

 

Microsoft Flow で利用する Outlook コネクターに新機能が追加されました。

Improvements to the Outlook connectors and more

This week we released several improvements to the Outlook connector, including saving an email as a ".eml" file, responding to calendar invitations automatically, and triggering flows when you are mentioned in an email thread.

 

メールのエクスポート機能

Outlook.com および Office 365 Outlook のコネクタにメールのエクスポート機能が追加されました。この機能を使って、OneDrive や SharePointサイトなどにメール(*.eml) を自動保存できます。ちょっと試してみましたが、Microsoft Flow ブログに記載されているスクリーンショット道理にやろうとすると詳しい手順は記載されておらず、 Message Id が取得できなくて、困ります。あれこれと調べたところ、これは手入力しないと出てこないんですね。下記が操作イメージで、「メッセージID」と手入力します。

 そのほかは、ブログのスクリーンショット通りに設定すればOKです。例えば下記のような設定です。

2017-12-19_8-00-09

新しく追加されたアクション

そのほかにも新しいアクションが追加されています。

  • 電子メールの転送
  • 開封済みにする
  • イベント招待に応答します(プレビュー)→これは "会議の出席依頼" などで自動承認などできるということです
  • 会議室の取得
  • 部屋リストから会議室を取得
  • 部屋リストの取得

まだ試していないものがありますが、どんどんと増えてきているので、急ぎ試さねば! 

 

 

2017年12月 4日 (月)

現在、 Microsoft Flow に関する監査ログが Office 365 セキュリティ&コンプライアンスセンターで取得できるようになっています。このログを使って、組織内でどのように Microsoft Flow が利用されているかを把握するのに役立ちます。具体的には次のような情報が取得できます

  • 誰が Flow を作成したか
  • Flowが誰と共有されているか
  • どのコネクターが使われているか
  • ライセンスの利用状況

監査ログを確認してみよう

この情報にアクセスできるのは、Office 365 のテナント管理者のみです。ちなみに、セキュリティ&コンプライアンスセンターの直接の URL は次の通りです。

  • https://protection.office.com

当ブログを閲覧されている方は必ずしも Office 365 のテナント管理者ではないと思いますので、どのようにログが取得できるのか説明しておきましょう。

管理者は先述したセキュリティ&コンプライアンス センターから、次のように監査ログ検索します。

2017-12-04_7-38-10

監査できる項目は、徐々に増えてきており、Microsoft Flow 関連については次の情報が取得できるようになっています。

  • フローの作成
  • フローの編集
  • フローの削除
  • アクセス許可の編集
  • アクセス許可の削除
  • 有料試用の開始
  • 有料試用の更新

取得したログは次のようになっており、いつ誰が何を行ったのか一覧で確認できます。

2017-12-04_7-40-38

各ログの詳細では、Flow への詳細 URL なども取得できます。

2017-12-04_7-42-19

監査ログは、90日間保持されているためこの期間内であればログが閲覧できます。必要があれば、CSVにエクスポートできるため、Excel や Power BI で加工して利活用状況の分析などを行いましょう。

Microsoft Flow のログに Microsoft Flow からアクセスする 

 2017年12月付けで、Microsoft Flow に関する公式ブログに次の記事が公開されました。

Accessing Office 365 Security & Compliance Center Logs from Microsoft Flow

In a previous blog post, we discussed Microsoft Flow audit events surfacing in the Office 365 Security & Compliance Center. We have had inquiries from customers and partners about programmatically accessing this data. Something that is of particular interest, is understanding what connectors are being used in new, or updated, flows.

 要約すると、監査情報に対して 「PowerShell Search-UnifiedAuditLog」Webサービスを使って Microsoft Flow からアクセスし、アクティビティをメールで通知するというものであり、次のMicrosoft Flow のテンプレートが新たに追加されています。

  • Admin - Get List of New Flows
  • Admin - Get List on Edited Flows

2017-12-04_9-33-36

このフローも結局は先ほど紹介した監査ログにアクセスするため、Office 365 テナント管理者のアカウント情報が必要です。一般ユーザーのアカウントでは動作しないため注意しましょう。また、Basic Authentication のみが利用できる状態であるため Multi-Factor Authentication を構成しているアカウントでは利用できません。上記のブログの具体的な手順が書かれていますが、Postman を使った接続テストをしてから Flow を試しましょうという流れです。しかし、私の環境では、Postman でうまく認証が通らず(詳細は調査中) 、とりあえずPostman での接続テストはあきらめて、Microsoft Flow 側で検証したところまずは動いてくれました。環境によっては、こんなことも有り得るということを参考までに記載しておきます。

ちなみに、Microsoft Flow の上記テンプレートでは2箇所追加設定が必要です。アカウント情報を入力する部分と送信先メールの2箇所です。

2017-12-04_9-40-40

☝で指定するアカウントが Office 365 テナント管理者アカウントです。

2017-12-04_9-47-58

☝が送信先のメールアドレスです。これで、既定では1日ごとにメール送信されます。ブログ通りAdmin - Get List of New Flowsを試してみたところですが、次のような内容のメールが指定したメールアドレスに送信されます。

2017-12-04_9-54-16

いつ、だれがどのFlow を新たに作ったのか概要が分かります。ただ、Connectors のところはこれだけで何をしているかは把握しにくいですが、フローの複雑さは確認できるように思います。

ということで、このフローを応用(アレンジ)すれば、メールでなくても Excel に定期的に書き込むなどの処理もできそうです。

余談ですが、監査ログへのアクセス方法は次の3つがあります。

  • Office 365 Management Activity API
  • PowerShell Search-UnifiedAuditLog コマンドレット
  • PowerShell Search-UnifiedAuditLog Webサービス

上2つに関しては把握していたものの、最後の " PowerShell Search-UnifiedAuditLog Webサービス" については不勉強であったため、非常に参考になりました。

最後に

弊社でもMicrosoft Flowに関しては定期的にオープンコースとして研修を実施していますが、Microsoft Flow に関して認知度がまだまだ低いと感じます。それもそのはず、Office 365 のテナント管理者側で PowerApps や Microsoft Flow などの新サービスの利用をまだ正式には社内に公開していないところが多いのです。

この手のツールは、業務に紐づくため、最初はある程度ユーザー範囲を狭めつつも、実証実験していかなければどこまで利用できそうかなどの予測ができません。しかし、そこまで手が回っていないといったケースも多いようです。使ってみなければ、いつまでも公開できないし、公開しなければいつまでも使えないという悪循環に陥りがちです。

今回紹介したようにMicrosoft Flow に特化した監査ログが取れるようになってきているため、少し長めに検証期間を設けしばらくの間、特定のユーザーに利用してもらい、どのようなワークフローニーズが多く、どのようなフローが作成できて、作れていないのか、だれがよく利用しているのかなど、分析することで、利活用の支援の体制づくりに役立てられればと思います。