PowerApps│SharePointリストにアプリのアクセスログを記録する

アイキャッチ

こんにちは、あんこ先生です。

リリースしたアプリがちゃんと利用されているか調べていますか?

自信作をリリースしても、使われなければ意味がありません。

しかし、PowerAppsにはアクセスログの機能がついていません。

代替手段として、ユーザーひとりひとりに聞いて回るのは現実的ではありませんよね。

安心してください、なければつくればよいのです。

今回は、「アプリの利用状況を集計したい」、「アクセスログからニーズを調査したい」という方を対象としたユーザーやアプリ別のアクセスログ記録機能を紹介します。

この記事を読めば、アプリのアクセスログを記録できるようになります。

SharePointリストにアプリのアクセスログを記録する

今回は、アプリ起動時やスクリーン表示をトリガーに、いつ、だれが、なにを利用したかSharePointリストに保存する機能を紹介します。

この機能を搭載し、解析することで、アプリや機能(スクリーン)など利用状況や需要が把握できます。

また、複数のアプリに埋め込めばそれらも同様にアクセスログを記録できます。

力作にも関わらずアクセスが極端に少ないところは、使い方や活用方法が十分認知されていないのかもしれませんね。

アクセスログはよりよいアプリ開発や運用には欠かせない情報です。

そのため、リリース時点で搭載しておくことをオススメします。


アクセスログについて

アクセスログとは、システムに対するユーザーや外部システムからの操作や要求などを、事前に定めた形式で時系列に記録したものです。

本来は何かしらトラブルがあったときに確認するもので、その原因追及に活用されます。

その特性から、利用状況の調査にも利用されます。

アクセスログを記録するSharePointリストの準備

必要な情報を特定する

はじめにどの情報が必要か整理します。

後から項目を追加すると完全性が損なわれますので、事前に取り決めておくのが無難です。

今回は最低限の、いつ、だれが、なにを利用したかわかるレベルとしました。

SharePointリストの構成は上図のとおり、アプリ名とスクリーン名のみ記録する項目を作りました。


いつ、だれがの項目は標準機能を流用する

上記SharePointリストではいつ、だれがの部分をあえて外しています。

なぜなら、SharePointリストの標準項目で代替できるからです。

わかりやすくするために、現在のビューの編集から登録者登録日時を追加します。


登録者

ここはアイテム(レコード)を新規に登録したユーザー情報が格納されます。

つまり、この中を参照するだけでアクセスした人を特定できます。

名前はもちろん、部署や役職に電話番号、はたまたユーザーIDや画像まで引っ張ってこれます。

とっても便利ですね。


登録日時

こちらはアイテム(レコード)を新規に作成した日時が格納されます。

つまりアクセスした日付と時間が記録されているわけです。

これらを使えば必要な情報は集まりますね。


以上で事前準備は終わりです。アプリの方に移ります。

アクセスログに必要な情報を記録する


アクセスログを記録するリストを接続

当たり前のことですが、大事なことです。

忘れずに接続しておきましょう。


アプリ名の取得

2022.2時点で標準関数やプロパティでアプリ名を取得する機能は実装されていないため、作成者向けPowerAppsコネクタ(Power Apps for Makers)をコネクタに追加します。

これで作成者向けPowerApps用のアクションが利用できるようになります。


スクリーン名の取得

こちらはAppオブジェクトから取得できるので準備は不要です。


アプリ起動時にログを記録する

AppオブジェクトOnStartに下記コードを埋め込みます。

スクリーン展開時にもログを取得したい場合は同様に該当ScreenコントロールOnVisibleに埋め込んでください。

Patch(AccessLog,
    {ApplicationName:作成者向けPowerApps.GetApp("アプリのid").properties.displayName,
    ScreenName:App.ActiveScreen.Name
    }
)

アプリのidはPowerApps>アプリ>詳細画から確認できます。

ここまでで、アプリの設定は終わりです。

実際にApp.OnStartを実行すると下記のようにアイテムが追加されます。

順番は調整していませんが、いつ、だれが、どのアプリ(とスクリーン)を使ったか記録できましたね。

アクセスがあった段階で通知もさせたい場合は、下記記事でTeamsへのチャット投稿など紹介していますので併せてお読みください。

次は監視や集計方法について紹介します。

PowerQueryを使ったかんたんな集計方法

アクセスログはPowerQueryを使ってExcelで管理します。

アクセスログを確認するために、毎回サイトコンテンツのリストを見に行くのめんどいですよね。

それよりもExcel開いたら最新の状態が確認できるって方がずっと素敵じゃないですか?

ここではそんな方法を説明します。


PowerQueryの設定方法

まずExcelでデータ>データの取得>その他の…>SharePointリストからを選択します。

次に、SharePointサイトのURLを入力し、該当のリストを選択するとPowerQueryが起動します。

初見だとさっぱりわからないと思うので、“Title”, “ScreenName”, “Created”, “Author”のみ選択して他の列を削除します。

次に“Author”を展開して、“Title”のみ抽出します。

これで必要な情報は抽出できました。あとは“Created”の型を日時にしておきます。

順番や列名は修正した方が分かりやすいです。

SharePointのタイムゾーンによって日時が9時間前(UTC基準)になることがあります。

その場合は、列の追加で数式を[Created]+#duration(0,9,0,0)にすることで9時間進めた日時を取得できます。不要となった“Created”は削除しておきます。

あとはファイル>閉じて読み込むを押すだけでテーブルがセットされます。


自動更新の設定

都度、テーブルを右クリック>更新でやってもよいのですが、せっかくなので自動更新させてみましょう。

クエリ>プロパティファイルを開くときにデータを更新する(Q)があるのでそれにチェックを入れます。

あとはこのExcelを開くたびに自動で最新データに更新されます。

アクセスログのまとめ

今回はユーザー・アプリ別のアクセスログ記録機能を紹介しました。

記録するリストの準備、記録するためのトリガーとコード、アクセスログの監視・集計方法を理解できたと思います。

PowerQueryが少し難しかったかもしれませんが、データ加工に便利なのでぜひ使ってみてください。

なお、アクセスログを見るだけならSharePointリストのエクスポートでも同じことができますので、そちらも検討してみてください。


ご支援よろしくおねがいします

この記事を気に入ってくださった方、寄付してあげてもいいよという方がいらっしゃっいましたら、ご支援いただけると助かります。

下記リンクからAmazonギフト券で、金額は15円からお気持ちを入力してください。

受取人のメールアドレスは amazon@anko7793.com までお願いします。

メッセージもいただけるとたいへん喜びます。

よろしくお願いします。

Amazonギフト券(Eメールタイプ) 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
七草あんこ
非IT系中間管理職やってます。社命によりoffice365を主軸とした業務改善プロジェクトメンバーに任命されたことでPowerAppsと出会えました。いまではビジネス・プライベートを問わず、欠かせないツールになっています。導入初期やアプリ作成時に遭遇した諸問題の解決法とサンプルアプリの作り方を紹介していきます。主にTwitterで情報収集しているので不明点など呟いているとお邪魔するかもしれません。