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

2021年6月16日 (水)

  昨年末に次の記事を公開しました。

[Office Scripts] Excel 内のデータを使って SharePoint ライブラリのプロパティを自動設定しよう (weblogs.jp)

この記事で使っていたのは GA 前の Office Scripts でパブリック プレビューでした。しかし、2021年5月27日に General Availability (GA) に達したことが発表されました。

Office Scripts is now generally available in Excel for the web - Microsoft Tech Community

さて、この記事で説明したフローですが、久しぶりにファイルをアップロードして動作させてみると SharePoint コネクターを使ったファイルのプロパティ更新のアクションが実行できない。で、原因を探るためエラーを確認するとファイルがロックされてしまっているようです。

2021-06-16_13-03-28

エラーのメッセージの要点は「ファイル <ファイルパス> は、<フローの所有者> が排他的に使用するためにロックしています。」というところです。Office Scripts 実行時にファイルの内容を読み取っているので、File Open の状態となっているのでしょう。比較のために単純に、SharePoint コネクターだけを使って「ファイルが作成されたとき(プロパティのみ)」のトリガーを使い、次のステップで「ファイルのプロパティの更新」を実行してみますが、特にファイルがロックされることはありません。

さて、これをどう対処しよう。が、結局のところファイルが排他ロックされるとSharePoint 上でファイルが解放されるまで待つしかありません。ですが、どのタイミングで解放されるのかはよくわからない。そこで、Power Automate を使って SharePoint 上のファイルのプロパティを更新するときに何らかの理由でファイルロックに遭遇した人はいるだろうと、なにかよさそうなアプローチがないかネット上で探してみます。予想通り、複数の記事を見つけましたが、結局、みな共通しているのはファイルのロック状態が解除されるまで Do Until で繰り返しトライするしかなさそうです。

まず結果から言うと、5分ほど待機すればロックが解除されるようです(現時点)。

ですが、念のため30秒ごとにロック解除を繰り返し確認するようにロジックを変更してみましょう。まず、ロック状態を判定するために IsFileLockedという名前でブール値の変数を用意します。既定値は true。

2021-06-16_13-36-30

Office Script 実行後すぐにファイルのプロパティを変更していましたが、直後にDo until を追加しこの中に「ファイルのプロパティ更新」アクションを 移動させます。Do until の条件は 「IsFileLocked の値が false に等しい」です。

2021-06-16_13-37-59

次に変数の設定アクションを追加し、IsFileLocked にファイルが引き続きロックされていれば true、そうでなければ false を格納するように式を書きます。

2021-06-16_13-48-18

if
(
  and
  (
    equals(outputs('ファイルのプロパティの更新')?['body']?['status'],400), 
    contains(outputs('ファイルのプロパティの更新')?['body']?['message'], 'ロックされています')
  )
  ,true
  ,false
)
 
ただし、このままでは前のステップが失敗すると次に進まないため、実行条件の構成を行い、成功だけでなく失敗時にもこのステップに進むように変更します。
2021-06-16_13-50-39
あとは、IsFileLocked の値を条件判定して、true なら 30秒待機するように構成します。
2021-06-16_13-51-41
 
以上でファイルアップロード後に5分程度待てば、Excel の内容を読み取り SharePoint ドキュメントライブラリ上の列を自動的に更新してくれるようになるはずです。
 
2021-06-16_14-05-54

なお参考にしたサイトは下記の通りです。

 

2021年2月16日 (火)

Power Virtual Agents for Teams を使って手軽にチャットボットが作れることは下記で説明しました。

Microsoft Teams 用 Power Virtual Agents を使ったチャットボット作成を試そう - SharePoint Technical Notes (weblogs.jp)

このチャットボット開発ですが、基本的には質問に対する回答をフローロジック内に用意していかなくてはいけません。しかし、すでに FAQ などの情報を持っているとすると、これをロジック内に書き写していき、条件分岐をしていく作業は途方もないものです。

そんな時に組み合わせて利用したいのが QnA Maker です。Azure Cognitive Services が提供するサービスの一つであり、ボット作成を支援するものです。

QnA Maker

QnA Maker についてはネット上に多くの情報が見つかるので、ご存じなければ検索してみましょう。この QnA Maker ではあらかじめ質問と回答のペアを複数用意しておきます。これは手動で作成してもいいし、Excel や PDF, Word, Tsv 形式のファイルなどから読み込ませることができます。

下記の図は SharePoint に関する質問を書き溜めている QnA Maker 上に構築しているナレッジベースです。左側が質問、右が回答です。

QAMaker - KB

ボットはこの内容を一問一答で返すわけではなく、話し言葉で問いかけられると、AIによりその内容を推測し適切な回答を見つけ出してくれます。Power Virtual Agents はこのナレッジベースと組み合わせて、ユーザーからの質問に回答することもできるようになっています。

実際に実験した結果が次のビデオです。音声はありません。右が QnA Maker の KB (ナレッジベース) であり、左がチャットボットです。一問一答ではなく、自然に会話しながら内容を推測し、回答を提示していくれていることがわかると思います。

Power Virtual Agents から QnA Maker を呼び出して利用する手順は次の資料が参考になります。

チュートリアル:Power Virtual Agents との統合 - QnA Maker - Azure Cognitive Services | Microsoft Docs

だだし、この内容が Power Virtual Agents 用であり for Teams にはなっていないので少し読み替える部分があります。たとえば、QnA Maker の呼び出しはシステム フォールバックで設定するのですが、これは次のように設定します。

2021-02-16_1-17-42

また作成する Power Automate のフローは「Power Virtual Agents Flow Template」で作成すればよいです。このあたりの説明も少し違っています。

2021-02-16_1-27-25

以上のポイントに注意して、手順に従って QnA Maker と連携させてみてください!

 

 

2020年秋に Dataverse for Teams が登場したおかげでユーザーが手軽にチャットボットを作成できる Power Virtual Agents for Teams が利用できるようになりました。Teams 内で利用する分には追加のコストがかからないのが魅力です。

さて、この Power Virtual Agents  for Teams を手始めに利用してみようと思う方は、下記リンク先にあるクイックスタートガイドがお勧めです。

クイックスタート: Microsoft Teams でボットを作成して展開する - Power Virtual Agents | Microsoft Docs

この手順に従ってチャットボットを作成すると「休暇を取得したい」「休日を知りたい」といった質問にボットが答えてくれます。

実際に構築してみた内容をビデオにしています。音声はありませんが、ボットの会話部分を見ていただくと何ができるのかをイメージできると思います。

単に質問に答えるように構成するだけではなく、Power Automate と組み合わせることで、Teams 経由で担当者に連絡をつなぐように構成することもできます。

挙動がある程度わかったら、ぜひボット開発にチャレンジしてみてください! 

2020年12月17日 (木)

SharePoint のドキュメント ライブラリでは任意のプロパティを持たせることができます。これにより、ファイル名からだけだと内容が推測できない場合も、プロパティを見ればおよそ内容が把握できるようになります。このプロパティの値は、ファイルをアップロードするたびにユーザーがつど設定する必要があり、なかなか面倒です。

2020-12-17_23-52-15

たとえば、 Excel のファイルを例に、SharePoint のライブラリに Excel ファイルがアップロードされたら、自動的にファイルの内容を読み取って必要な情報をプロパティに設定してもらえるようにしたい。

そこで登場するのが Office ScriptsPower Automate です。

なお、この記事は Office 365 Advent Calendar 2020 に参加しています。

Office 365 Advent Calendar 2020

Office Scripts は Web用の Excel (Excel Online) 上で利用できるスクリプトであり、TypeScript で記述します。これと Power Automate を組み合わせると実に様々な処理が可能です。とはいえ、Office Scripts を利用するには Office 365 E3 または E5 のライセンスが必要であり、テナントレベルで機能がオンになっている必要があります。既定でオンになっていますが、テナント管理者のさじ加減で設定がオフにされていることもあるので、組織内で確認してください。また Office Scripts は 2020 年12月、現在まだプレビューの状況です。

実際の動作を確認するためにデモンストレーションと構築方法をビデオで公開しました。詳しくは次のビデオ (YouTube) をご参照ください。

ビデオの補足情報

SharePoint サイト側では任意のドキュメント ライブラリを用意します。このデモでは次の列を4つ追加しています。

  • 見積金額…通貨
  • 組織名…1行テキスト
  • 部署名…1行テキスト
  • 担当者名…1行テキスト

Excel は次のサンプルファイルを用意しています。類似したファイルを用意して試すとよいでしょう。

2020-12-18_0-00-13

Office Scripts は次のようなスクリプトを用意しています。

2020-12-18_0-03-06

これを次のような Power Automate のフローで呼び出します。

2020-12-18_0-11-29

 

2020年9月16日 (水)

先日の勉強会の資料と録画が公開されているのでここに共有しておきます。

まずは私が登壇した内容は下記の通りです。

タイトル : Excel と SharePoint を組み合わせローン返済アプリケーションを作成する (Power Apps + Power Automate)

概要 : Microsoft Graph API を使って、SharePoint に格納している Excel ファイルを高度な計算を行うためのリソースとして利用し、Power Apps と Power Automate を使ってローン返済アプリを作ってみます。もともとオンプレミスのSharePoint のころに Excel Web Services や InfoPath を使ってデモをしていた内容を、Power Platform を使って置き換えてみるとどうなるだろうという実験でもあります。
マニアックですが、実務的に応用できる内容にしています。ご興味のある方は是非どうぞ!!

YouTube

スライド

 
その他の当日の勉強会の録画ビデオ
今回の勉強会も、他のセッションも含め魅力的なものばかりでした。
一連の内容がYouTube に公開されていますので、そちらもどうぞ。
 

【宣伝】

オフィスアイ株式会社では Power Automate を利用する方に対して、一歩ステップアップするためのオリジナルの研修コースをご用意しています。

⇒ 業務効率を向上させる Power Automate 実践演習