カテゴリ「Power Apps」の34件の投稿 Feed

2021年5月17日 (月)

本件ですが、約一週間ほどで修正されたようで現在は発生していません。

======================

2021年5月15日付

Power Apps に関するバグ情報です。私の環境で遭遇したもので、調べると同様の現象が起こっているようです。

Power Apps Guide - Bug - OnStart property missing from designer - impossible to set OnStart formula - Power Apps Guide - Blog

日本語で簡単にまとめておきます。


キャンバス アプリ作成時に、アプリノードを選んだ時に従来であれば OnStart プロパティが選択できるようになっていたのですが、OnStart が選べず既定で OnMessage となってしまいます。

2021-05-17_11-48-29

2021-05-17_11-50-47

修正方法としては本来は作成バージョンを次の手順で以前のバージョンに戻すことです。ちなみに、現在は、3.21051.17 です。

[手順] ファイルメニューを開いて次の手順で作成バージョンを変更する。

2021-05-17_11-56-01

2021-05-17_11-56-50

しかし、この方法でも新規に作成している場合などは戻せません。この場合は次のURLに直接アクセスして、以前のバージョンで作成できる Power Apps Studio ページにアクセスして作業する必要があります。

https://create.powerapps.com/v3.20114.22.171220965/studio/#

つまりは、作り直しです。

このURLにアクセスすると、Power Apps Studio が表示されます。

2021-05-17_12-01-57

ここから通常通りアプリを作成していきます。そうすると OnStart プロパティが復活します!

2021-05-17_12-02-48

 

2020年4月23日 (木)

今回は SharePoint 開発経験者向けのお話。

Power Automate では SharePoint の REST APIが呼び出せます。

本題に入る前に少し状況の補足をしておきましょう。

カスタマイズや機能拡張の変遷

クラシックサイトでは気軽に JavaScript を埋め込めていましたが、これにより管理者が把握できないスクリプトも溢れることになりました。さらには、何かするにも JavaScript を書く必要があるというのはエンドユーザーにとってはハードルが高い。サイロ化したスクリプトを管理下におけるよう、モダンサイトでは SharePoint Framework を使ってサイト管理者の管理下にあるスクリプトのみが実行できるように振る舞いが変わっています。またエンドユーザーでも手軽にアプリが作れるように Power Platform と SharePoint は連携できるようになっているわけです。

こうした背景から、今まで JSOM (JavaScript Object Model)ゃREST APIを JavaScript からアプローチを一部は Power Automate や Power Apps などに置き換えていく方向も考えていく必要があります。

そこで冒頭の話に戻ります。Power Automate では SharePoint REST API を呼び出せるので、これまで JSOM や REST API で培ってきた開発ノウハウを生かせる部分も多く存在します。

今回、ブログの題材は SharePoint Designer 2013 の持っていた機能の一部置き換えをしようという試みです。その一つがリストの表示・非表示です。

リストの表示・非表示とは?

リストには Hidden 属性があり、SharePoint Designer では簡単にTrueもしくはFalseを切り替えられました。Hidden 属性が True となると「サイトコンテンツ」ページからリストは非表示になります(こういうリストを隠しリストと呼びます)。もちろん、URLは利用可能であるため、ユーザーが直接 URL をアクセスすれば従来通りリストにはアクセスできます。

さて、Power Automate などで処理している際にも、ユーザーには直接目につかないように隠しリストを作りたいというケースも少なくない。こうした処理を Power Apps と Power Automate で処理してやろうという話です。次のビデオでは実際の動作が確認できます。まだアプリは改善の余地はありますが、それは追々機能を拡充していく予定です。

このフローでのポイントは SharePoint コネクターの「SharePoint に HTTP要求を送信します」アクションを使うことです。今回は更新処理であるため POST します。また、リストのアップデートを行う必要があるわけですが、従来のようなページ上で JavaScript を実行するときとは異なり、X-REQUESTDIGEST の値を指定する必要はありません。

2020-04-23_12-20-11

さて利用したフローの全体画面を掲載しておきます。REST API に慣れている方は、このあたりは問題なく利用できるでしょう。

リストの表示非表示

 

【研修のご案内】
弊社では Power Automate の知識を体系立ててハンズオンを踏まえて学習できる研修コースを用意しています。
 
 
2020年4月20日 (月)

Microsoft Teams 内の各チームには[ファイル]タブが用意されています。このファイルタブの実体は SharePoint サイトです。

もっというと、チーム内の[ファイル]タブは SharePoint サイト上にある「ドキュメント」ライブラリ内のチャネルごとに生成されるフォルダーが紐づいています。しかし、Teams の[ファイル]タブは、SharePoint の標準的な機能の一部が実装されていません。もちろん、あくまで[ファイル]タブ経由で利用するとという限定的な話であり、[ファイル]タブのコマンドバーから "SharePoint で開く" をクリックすることで、Webブラウザーから直接 SharePoint のライブラリにアクセスすれば、標準機能がフルに利用できます。

Teams 内から SharePoint サイトにアクセスする

※補足 : Teams がリリースされて間もないころはSharePoint が持つファイル管理機能のごく基本的な機能のみしか提供されていなかったのですが、数か月前からだいぶ SharePoint のオリジナルの持つ機能に近づいては来ています。

そのため、今回のブログのタイトルにあるような Power Automate を使った承認フローを実装するには、少し工夫が必要です。

Webブラウザーから直接SharePointサイトを利用するときには、格納しているファイルに対して承認フローを開始する方法としてはファイルのプロパティを確認し、例えば "下書き" から "公開" といった値に変更したときに承認フローを自動的に開始できるようにすることも少なくありません。しかし、[ファイル]タブでは現時点(2020/4/18)ではプロパティを編集できません。さらに、手動でワークフローを開始するにもフローを手動開始するコマンドメニューがありません。SharePoint 標準では本来はできることです。

そこで、[ファイル]タブを使ってフローを開始するのであれば、手動開始とプロパティの値をトリガーにすることはあきらめる必要があります。「ファイルを新規に作成したら」という自動的にフローが開始されるトリガーを使うのが妥当でしょう。

例えば、[ファイル] タブ内の特定のフォルダーにファイルを移動したらフローが開始されるというような実装を考えます。ただここで問題なのが、SharePoint コネクターのトリガーによってはサブフォルダーからはフローが開始されないものがあるということ。[ファイル]タブはサブフォルダーに紐づいているので、ここが重要なのです。

以上のことから、トリガーには次のいずれかを使うようにします。このトリガーはサブフォルダーでも動作します。

  • ファイルが作成されたとき(プロパティのみ)
  • ファイルが作成または変更されたとき(プロパティのみ)

自動開始を前提とするので、フローを起動したときに承認者を選択させることができないので、最初から承認者を固定で指定しておくか、上司の自動取得をするなど何かしら工夫をしておく必要があります。

ところで、トリガーを設定するときですが、SharePoint サイトとの関係が把握できていないとどのフォルダーをトリガ―指定すればよいのか迷うところです。チャネルとフォルダーの関係を図解しておくと次のようになります。トリガーを構成するときには、この図を念頭に置いたうえで、チーム名と同じ名前の SharePoint サイトのURLとフォルダーを指定するようにしましょう。

Teams 内のチャネルとSharePointフォルダーの関係

なお、チャネルを最初に作ったときに(もっと正確にいうと、チャネルを作成後に[ファイル]タブに初回アクセスしたときに生成) SharePoint側にフォルダーが作成されるのですが、フォルダー生成後はチャネル名を変更しても既存のフォルダ名は変更されません。そのため、現在 Teams 内のファイルタブには関連づいているフォルダー名が表示されるようになっているので、これを手掛かりにするとよいでしょう。

Teamsファイルタブにひもづくフォルダー名

以上を踏まえ、最もシンプルな承認フローを構築すると次のようになります。ここでは細かい設定については触れませんが、詳細は例えば、既存の承認用のテンプレートを使いトリガー部分を差し替えるなどしてみてください。

承認フロー

 

【研修】SharePointユーザーのための Power Apps & Power Automate入門

AdobeStock_194043476対象者は SharePoint サイトの基本的な操作や用語が理解できている方で、Power Automate や Power Apps を使った業務改善などを検討している方です。

2019年12月12日 (木)

自分の備忘録として。

=======

以前作成していた Power Apps アプリを久しぶりに開いたら次のメッセージが表示されました。

2019-12-12_22-48-49

現在プレビューの以下の機能が近く正式リリースになるようですね。

  • 遅延読み込み
  • 信頼性の高い Concurrent 関数

そのためアプリの設定でも既定でオンになっていました。

2019-12-12_23-00-58

遅延読み込みについては下記のパフォーマンスに関する記事が参考になります。

Optimize canvas-app performance in Power Apps

また Concurrent 関数は 2018年7月に追加された機能ですが、この機能が強化されるということを意味します。

Concurrent 関数 - PowerApps

複数の数式をそれぞれ同時に評価します。 Evaluates multiple formulas concurrently with one another. The 通常、複数の数式は、それぞれが順番に評価される、 Normally, multiple formulas are evaluated by chaining them together with the Concurrent 関数では、同時に複数の数式を評価します。 Concurrent function evaluates multiple formulas at the same time. ; 演算子と共に連結することによって評価されます。 ; operator, which evaluates each sequentially in order. アプリによって操作を同時に実行すると、同じ結果がユーザーに返されるまでの時間は短くなります。 When the app performs operations concurrently, users wait less for the same result.

 

2019年3月24日 (日)

PowerApps でデータソースを SharePoint リストにしているとき、日付と時刻の列が空にできないことがあります。そんなときの工夫の方法は、アプリの詳細設定で実験的な機能の一つである「数式レベルのエラー処理」機能をオンにすることです。

2019-03-24_21-52-15

実験的な機能はあくまでも実験段階のものであるため、今後大幅な機能変更や機能が完全に消滅する可能性もあります。そのため残念ながら現在のところは運用環境での利用は難しいのですが、この機能をオンにすることで Blank関数を使って Null値を渡せるのです。

実際に SharePoint リストから生成した PowerAppsアプリの動作を見てみましょう。次のビデオで示している通り、日付と時刻列の値を空にできません。

キチンと空の値で更新するには、先ほどの「数式レベルのエラー処理」機能をオンにして、アプリを保存後、いったんアプリ編集を終了します。こうしないと機能が有効になりません。再びアプリを編集します。例えば、この例では日付と時刻列部分のカードコントロールの Updateプロパティの値を「DataCardValue6.SelectedDate」から「If(!IsBlank(DataCardValue6.SelectedDate), DataCardValue6.SelectedDate, Blank()) 」に変更します。これにより、次のビデオのように日付と時刻のフィールドが空として更新されたことが確認できるはずです。お試しあれ。