2018年7月

2018年7月20日 (金)

 2018年7月18日付けの PowerApps ブログ記事では "アプリの再発行" を推奨することで、パフォーマンスの改善と追加機能が利用できるようになるとのこと。

Republish your apps to get performance improvements and additional features

With the PowerApps platform, you can build great apps and deploy them to your end users, but sometimes you make an app and don't update it for many months. When you open the app in the studio, it reflects all the performance improvements that the PowerApps team made in the past since the last time you opened the app in the studio.

アプリの再発行の必要性 

以前のブログ記事でも紹介した通り、開発環境が Web ベースに一本化されていらい、Webブラウザー上でのアプリ開発は非常にスムーズになりました。初期の PowerApps は開発時のレスポンスが非常に遅く、お世辞にも「サクサク」アプリが開発できるとは言えませんでしたが、現在は推奨スペックの PC 上であれば、Edge や Chrome を使うことでストレスなくアプリ開発ができるようになってきました。

特に今年に入って加速度的に新機能や機能改善が行われてきています。新機能としては、たとえば、まだ試験段階ではありますがリッチテキストエディタコントロールが利用できるようになりました。こうした背景から、一度作成したアプリも定期的に見直しをすることで、「今までは別の方法をとっていたけど、もっとスマートな方法が利用できるじゃないか! 」とか、「今まで欲しかった関数が、ようやく使えるようになっているぞ」といった発見もあるはずです。

そもそも PowerApps の資料を見ていると次のような文言が書かれています。

作成したアプリが警告なしで動作を停止した場合、過去 6 か月以内に更新または再発行をしていないことが原因である可能性があります。 この問題を解決するには、アプリを更新または再発行して PowerApps の最新バージョンと同期します。その後は、最後に公開してから 6 か月以内にアプリを更新または再発行することを継続して行うようにします。

少なくとも6か月おきには再発行を行った方がよさそうです。

ちなみにアプリは発行時の PowerApps のバージョンで固定されます。つまり勝手に最新バージョンに上がることはないということ。これが再発行することでアプリも最新バージョンに自動更新され、バグ修正やパフォーマンス改善なども反映されるようになっています。上記記事によると、例えば SharePoint サイトに埋め込んでいる PowerApps アプリも以前は 1秒以下で実行できるものが全体の40% 程度だったものが、再発行することで 80% 程度まで向上しているようです。

またPowerAppsアプリは自動的にバージョン管理されているため、以前のバージョンの状態に容易に戻せます。

ということで現在のところ、定期的な再発行を保守・運用に組み入れていく必要がありますが、将来的には自動再発行機能も利用できるようになるようです。

 

 

2018年7月16日 (月)

以前の記事でも紹介しましたが、SharePoint Online でモダンUIになっているリストは "列の書式" が利用できるようになっています。Excel の条件付き書式のようなものですね。

[関連記事] 

これを使って Microsoft Flow も起動できるという話が去年の Microsoft Ignite 2017 では説明されていたのですが、しばらく書き方がわからずにいました。しかし、最近になって資料を見直したところ、情報が公開されていたので本ブログでも紹介しておきます。

列の書式の公式ドキュメントとしては次の資料を参照してください。

列の書式設定で SharePoint をカスタマイズする

SharePoint リストとライブラリに含まれるフィールドの表示方法をカスタマイズします。それには、フィールドがリストビューに組み込まれるときに表示する要素を記述し、それらの要素に適用するスタイルを記述する JSON オブジェクトを作成します。

今のところ "JSON" 形式で式を書く必要があるため、エンドユーザーにとってはハードルが高くなっていますが、もう少し簡単に設定できるようになる予定だそうです。ということで、資料をさっと見て、難しそうだなぁと思う方も少なくないと思います。ソースが読めることに越したことはありませんが、ちょっとでもトライしてみようという気持ちがあれば、コード部分をコピー&貼り付けでもある程度利用できるので、ぜひチャレンジしてみましょう。

リストの準備

手元で作成したデモ環境では、カスタム リストとして作成した「コース一覧」からコース申し込みができるようにしていきます。今回はコース一覧リストの作成方法は、本題から少しずれるので詳しく触れませんが、実際に取り組む方は、任意のカスタム リストを作成してみましょう。

2018-07-16_16-55-51

コース申し込みはワークフローで処理し、別のカスタム リストにコース申し込みのエントリーを登録するように作成したいと考えています。たとえば、下記のようなイメージですね。

2018-07-16_11-32-13

ちなみに、この手のアプリは "Notes で同じようなことをしていた" という話がよく出てくるもので割とニーズがあります。今回はデモ用であるため簡易作成していますが、これをベースに社内研修の申し込み管理などのアプリへと本格的に発展させることも可能です。

ということで、この例では2つのカスタム リストを用意しています。実際にフローの起動のみ試す場合はリストは1つあれば十分です。

Microsoft Flow の準備

さて、コース一覧の方に Microsoft Flow を実装します。ここからワークフローを使ってコース申し込みができるようにしたい。まずは目的のコースを選択してたら、手動でフローを開始できるようにします。フロー開始時には所属組織や氏名、連絡先のメールアドレスなどを入力できるようにしておきます。詳細は割愛しますが、大まかには次のような手順でフローを作成していきます。とはいえ手軽に試すのであれば、単純にメールを送信するフローを実装するのでもよいでしょう。

1. フローを作成するために、コマンドメニューから[Flow]>[フローの作成]をクリックします。

2018-07-16_10-11-32

2. 選択したアイテムをベースにフローを開始することで、申し込み者が対象コースに関しての詳細を入力しなくてもフローで勝手に取得できるようにします。このために[選択したアイテムのカスタム アクションを完了する]というテンプレートからフローを作成するとよいでしょう。

2018-07-16_10-12-10

3. ワークフロー開始時にユーザーに入力してもらいたい項目があれば、次のような手順で入力を求めるように設定していきます。

まずは最初のアクションの[編集]をクリックします。

2018-07-16_10-16-05

出力の追加をクリックします。

2018-07-16_10-21-49

出力の種類を選択します。コース申し込みなので、"テキスト" を選択して、ユーザーが所属組織や氏名を入力できるようにします。もちろん、フローではフロー開始者を申込者としてユーザー情報を自動取得することもできるので必要があればそういった設定も検討するとよいでしょう。とはいえ、大規模組織ではグループ企業からの代理申し込みなどいろいろと想定すると、必ずしもフローで自動取得できないケースも少なくないため、まずは手入力にした方が無難なので、ここでは手入力としています。

2018-07-16_10-21-55

今回は「申込者の所属組織」というフィールドを用意しました。

2018-07-16_10-22-08

同様の手順で次のように申込者の氏名や電子メールなどのフィールドを複数用意します。

2018-07-16_10-22-56

後は[新しいステップ]をクリックし、追加したい処理を増やして構成していくだけです。

2018-07-16_10-23-20

ちなみに、今回は別のリストに申込者情報を書き込むようにし、コース一覧に表示される登録者数を更新する処理と定員以上になった場合にコース一覧の Status 列を "申し込み可能"から"キャンセル待ち" に変更するような処理も加えてみました。運用環境であれば、これに申込者への 受付メール送信 やコース実施管理者への登録者情報のメール送信など、いろいろと処理を考える必要があります。あとは、定員オーバーになっているときに申し込みをクローズするなど。ただし、今回はデモ用に作成しているので、そこまで込み入った処理はまだしていません。

ちなみに、作成したフローは既定では作成者しか実行できないので、サイトにアクセスできるユーザーは誰でも実行できるようにMicrosoft Flowの画面から "実行のみのユーザーの管理" 設定を次の手順で変更しておきます。今回作成しているサイトは Training-PowerAppsFlow という Office 365 グループで利用しているサイトであるためこのグループに権限を付与しています。

さて、ここまで設定することで次のようにコース一覧のリストから目的のコースを選択すると [Flow]メニューに[コースの申し込み] というフロー(上記手順で予め作成したフローの名前) が表示され、フローが実行できるようになります。次のデモを確認してみてください。ちなみに、登録者数列がフローによりカウントアップしていることも確認できます。

このフローによって、先ほど紹介したように別リストである "Course Entries" リストにエントリーがフローによって自動的に登録できるようになっています。

2018-07-16_11-32-13

 列の書式設定

さて肝心要の列の書式設定です。今回はコース一覧にあらかじめ "申し込み" という名前で 1行テキストの列を用意しています。この列の値は空のままでかまいません。その代り、列の書式でボタンを生成します。ということで、"申し込み" 列をクリックし、[列の設定]>[この列の書式設定]とクリックします。

2018-07-16_12-04-39

列の書式に次のようなJSON形式のデータを記述します。

2018-07-16_18-31-45

[ソース] 列の書式 (ワークフロー起動サンプル)

図内でも指し示しているように実行したいフローのIDに関しては、自分の環境のフローのIDに置き換える必要があるので注意してください。フローのIDは フローの管理画面に表示される URLにあります。ちょうど下の画面の上部にある赤枠部分です。

2018-07-16_11-33-20

このURLを以下に書き出しておきましょう。ちょうど色を指定している部分がIDであり、フローごとに異なります。

https://japan.flow.microsoft.com/manage/environments/Default-35bb248d-3041-46e1-9f25-800b2e9f7256/flows/6f5ec875-9ce4-4382-a6ae-4ee57c3f706d/details

フロー編集時なら下記の部分です。

https://japan.flow.microsoft.com/manage/environments/Default-35bb248d-3041-46e1-9f25-800b2e9f7256/flows/6f5ec875-9ce4-4382-a6ae-4ee57c3f706d?backUrl=%2Fflows%2F6f5ec875-9ce4-4382-a6ae-4ee57c3f706d%2Fdetails

フローのIDを書き換えたら、先ほどの列の書式にJSON形式で構文を書きます。すると下記のようなボタンが表示されます。これをクリックすると直接、フローが開始できるようにラウンチパネル(右側部分)が表示されるようになります。ユーザーにとっては、アイテムを選択して[Flow]をクリックして、目的のフローを選んで、、、という手間がなくなるため直感的に操作できますね。

研修のご案内

さて、ちょっと宣伝を。

Microsoft Flow については下記のコースで取り扱っていますし、弊社オフィスアイラーニングポータルなどでも学習できます。

ちなみに、列の書式については簡単に下記コースで説明はしていますが、 事前知識としてWeb技術の一つであるCascading Style Sheets の知識も必要です。

SharePoint経験者向け SharePoint モダンUI機能について学ぶワークショップ

SharePoint Online サイト管理基礎

このあたりの知識は、弊社オフィスアイラーニングポータルをご利用いただくことで対応できるほか、インターネット上にも書店にも資料は多くありますので、ご自身でしっかり身に着けておくようにしましょう。

 

2018年7月 2日 (月)

再受賞のご連絡とお礼

お陰様で、本年もなんとかMicrosoft MVP アワードを再受賞できました。SharePoint のカテゴリで 2004年に受賞してから、毎年受賞させていただいており、今年で14年目となります。ちなみに、受賞カテゴリは引き続き SharePoint が含まれている " Office Servers and Services " です。

近ごろ SharePoint について思うこと

ここ最近はどんな状況か振り返ってみると、仕事面で言えば、ここ数年は SharePoint 単独ではなく Office 365 全体として関わることが増えてきています。本当にオンプレミスの話はぐっと減りました。

もともと SharePoint 自体が関わってみると守備範囲の広い製品だと思いますが、そこに PowerApps, Microsoft Flow, Microsoft Teams なども加わってきており、さらに守備範囲が広がってきています。

これに加え、たとえば、SharePoint Online のモダンUIでの機能拡張などに欠かせないSharePoint Framework については、国内ではいち研修コースを立ち上げて実施しているのですが、これにはオープンソースの技術をある程度まで把握しなくてはいけない。この意味でも守備範囲は広くなります。これまで個人的にはオープソースは自分にはかかわりがないと避けてきたようなところがありました。しかし、いろいろと技術に触れてみる、とても新鮮で面白い。これまでとは、また違った視点を持てるようになったと思います。いままでは、とかく Microsoft 製品だけで語ってきたところがありますが、世の中には面白い技術やツールがまだまだあり、こうしたオープンソースの仕組みを取り組む仕掛けが SharePoint 側に用意されてきているところを見ると、「さて、どれとどれを組み合わせいこうかな」という選択肢の広がりを感じます。自分にとってのオープンソースへのハードルは随分下がってきたように思います。

守備範囲は広がりますが、新しいことにいろいろとチャレンジできるので、そこが面白さであるとも言えます。技術をやる以上、わくわく感がないと、面白くない!

そして、今後も引き続き、Microsoft 社の情報共有基盤の中核が SharePoint であることに変わりはありませんし、私の原点でもあります。SharePoint Online はモダンUIになってから "真のバージョンアップ" と言っていいほど、目覚ましく進化し続けています。今後も "SharePoint" を中核に据えながら、働き手が減っていく中で「いかに業務効率を向上させて、早く家に帰ってプライベートも仕事も充実させられるか」という観点で技術的に支援していければと思っています。このブログでは、そろそろ SharePoint Framework とか PowerApps とかカスタマイズ関係の情報をまとめたいなぁと思っているところです(が、今抱えている書籍の執筆をまずは一区切りしないと。。。。Office 365 関連本、必死に、執筆中です。。。)ともかく、引き続き皆様に少しでも役立つ情報提供を心がけたいと思っております。

皆様、今後とも引き続きよろしくお願いたたします!

余談

プライベートでは子供がこの4月から幼稚園に通うようになり、不慣れな中であれこれ準備だなんだと追われつつ、仕事は仕事で追われて、、、という日々を過ごしています。そのため、最近はブログにまとめる時間がなかなか取れないこともあるのですが、時間をやりくりしながら、なるべく情報を提供できるよう精進していきたく思います。とはいえ、時間の節約のため、調べて気になったことなどは先に Twitter の方 (@ai_yamasaki) に備忘録的につぶやいています。こちらも、何かの参考になれば幸いです。