キャンバスアプリ Tips ユーザー検索の調整 ① 表示情報量を増やす

はじめに

今回はひさしぶりにキャンバスアプリのTips的な内容で、よく使用されるユーザー検索のためのプルダウンの調整についてサンプルをご紹介します。
SPOの場合ユーザー列を使うケースも多いのですが、今回はOffice365ユーザーコネクタを使用しての例となります。
今回はコンボボックスで表示する情報を増やすTipsです。

Office365ユーザーコネクタ SearchUserV2でコンボボックスでユーザー検索

最初にコンボボックスを追加してユーザー検索用の設定にします。

Office 365 Users コネクターのリファレンスはこちら
Office 365 Users – Connectors | Microsoft Learn

SearchUserV2のパラメータを抜粋

・searchTerm  →こちらにコンボボックスのSearchTextを指定します
・top      →ここは既定値が1000までとなります。以下では記載を省略
・isSearchTermRequired →Trueの場合空の場合には表示されません。Falseの場合は検索が空でも最初から500位までは表示される感じです。

NOTEよく聞かれますが、このコネクタの取得上限が1000までとなり、検索時には部署指定はできません。
そのため、特定の部署のユーザーのみをリストしてそこから検索したいという要件は1000人を超える組織では対応できません。(※Autoamte側で別途取ってきてそれを嵌めて頑張るなどのやりかたもあったりはしますが、、)

TIPS最初から部署でフィルターは出来ませんが、名前などで取ってきて1000件以下にして、そのうえで特定の部署のみでフィルターするなどは可能ですのでそういった使い方で対応いただくのがいいかと思います。

まずはコネクタを追加します。

コンボボックスコントロールを追加してItemsに以下を指定します。
以下では例として未選択時でも一覧が出るようにisSearchTermRequiredをFalseにしています。ここは用途に合わせて調整ください。

CodeOffice365ユーザー.SearchUserV2({searchTerm:Self.SearchText,isSearchTermRequired:false}).value

NOTE返却値はvalueに入っているので.valueを付ける必要があります。

コンボボックスのフィールドを調整します。
最初のままだと空白になっているかと思います。フィールドからレイアウト(人)、
主要なテキスト、副次的なテキスト、SearchFieldを指定します。
※画像は取ってきていないので使われません。SPOのユーザー列の場合なら使えますね

そうすると以下の様にユーザーの一覧(表示名とメールアドレス)が出てきて、
検索に入れると前方一致で対象を指定できると思います。

TIPS検索ボックスのプレースホルダーも変更できるのでユーザーの検索としておいたほうがいいですね。

注意点:検索許可のチェックが勝手に外れたりする

コンボボックスのItemsや表示項目など調整していると気づいたら勝手に
検索の許可のチェックが外れている事象が発生します。

よくわかりませんが、そんなものだと思い気づいたらチェックを再びオンに戻しましょう。

設定していると勝手に外れてしまうことがある。気づいたらオンに戻す

表示項目は基本2つまで

コンボボックスの表示で2重線や人のレイアウトの場合、メインと別にもう一つ副次的なテキストを出せます。3つ目はありませんので2つまでですね。

今回の例だとDisplayName、副次的なテキストはMailにしています。よくある構成かと思います。

NOTE部署が多かったり、同姓同名の人がいるとどっちの人なのかが分かりずらかったりします。
なので部署を出したりもしますが、メールも出したいしな。。というケースがあるかと。
そんな場合に以下対応でどちらも表示することが出来ます。

副次的なテキストに表示する項目を増やす!

こちらが今回の記事のメインです。やり方はシンプルです。
部署とメールアドレスを合わせた文字列を副次的テキストに出す。という感じですね。

AddColumnsを使って、元々の情報に部署+メールの列を追加してあげます。
以下、元々の実装にAddColumnsで「dep&mail」という列を追加し、中身は部署とメールを | で区切ったものです。

ItemsにAddColumnsで2つの情報を合わせた列を追加する

以下をコンボボックスのItemsに追加します。
※サンプルなので合わせる列や区切り文字などは任意にカスタムください。

Code//部署とメールをひとつの文字列として列を追加する例
AddColumns
(Office365ユーザー.SearchUserV2({searchTerm:Self.SearchText,isSearchTermRequired:false}).value
,”dep&mail”,Concatenate( Department ,” | “,Mail))

NOTE★バージョン:3.24042以降ではAddColumnsの書式が変わっています。””なしで定義が必要なので読み替えてください。
詳細はこちらをご参照ください。
AddColumnsやSearch関数などで内部名を二重引用符(ダブルクォーテ)が不要になりました!(バージョン:3.24042.20以降) | Power Apps Tips ログ (youseibubu.com)

コンボボックスの副次的なテキストに指定する

次にコンボボックスのフィールドの選択で作成した「dep&mail」が出てきているので、選択してあげます。

表示を確認する

ちょっと実際のデータが元になってしまっているためお伝えしずらいですね。。すいません。

以下のようにエヌ田サフ夫さん(架空ユーザー)でみると、
1行目に表示名、2行目には、部署 | メールアドレス とちゃんと2つの情報が1行で出ていますね。
ちなみに横が収まらない場合は改行され3行になって表示されました。
※部署が登録されていないユーザーの場合は空となっています。

その他要素も対応可能

上記ではよく使う部署やメールを入れていますが、取得出来ている値であれば大丈夫です。
また2つではなく3,4つくっつけることも出来ると思いますが、そうすると表示量がかなり多くなるのでみずらいかもしれません。

またメインの部分を調整も可能ではありますが、検索時や既定値を嵌める際に同じようにしないとうまくいかなかったり、実装がややこしくなると思うので、副次的なテキストの部分を調整くらいにするのがいいと思います。

おわりに

今回はよく使用されるユーザー検索(コンボボックス)の概要と表示情報量を増やすTipsをご紹介しました。

この辺りにまつわる調整として、他にも、検索する対象列を増やしたい。や、
結果を特定の部署の人のみ、アドレスがない人は出したくない。
などもよく聞くので次の記事でそのあたり書こうと思います。

それでは!

関連

次の記事②:

次の記事③:

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

ヨウセイ

ヨウセイ

一般職からSharePoint、C#、.NET系技術者へ、そこからPower App、Power Automate技術者へと転身。 ワンランク上のおっさんはPower Appsでシステム開発が出来る〜! qiitaや自社HPでも技術ブログを書いていました。

関連記事

コメント

この記事へのコメントはありません。

CONTENTS