2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FUJITSUAdvent Calendar 2023

Day 11

自分に管理者権限がないSPOリストの列名取得方法

Last updated at Posted at 2023-12-11

いつものフィルタークエリ利用時の障壁乗り越えモノです。

経緯・前提条件

  • 所属するTeamsチームがグループフォーム(Forms)を持っています。
  • フローは、Formsで回答した人を所属するTeamsチームにメンバー追加をします。(Teamsチームの所有者権限を私が持っています)
  • また、別部署が管理しているSPOにあるメンバーリスト(SPOリスト)にアイテム追加を同時にしています。
  • 既に別のTeamsチームでメンバーリストに登録されている人がおり、SPOリストにユニーク設定があり一意制約違反でフローの実行が失敗しました。
  • 複数アイテムの取得アクションでフィルタークエリで表示列名を指定したところエラーになりました(=表示名と内部名が異なる)

SPOリストの列を追加する際に日本語で列名を作成しないでください。フィルタークエリを利用する際にこのような面倒が増えます。

日本語表記にしたい場合は英数字で列名を定義して保存(=内部名になります)した後に、日本語名に変更して保存してください(=表示名になります)。

フィルタークエリの操作でやはり手間が起こるのでリスト列名は内部名=表示名で運用をしてくれたら嬉しいです。

通常のリスト列の内部名確認方法

自分に管理者権限がないSPOのリストの列名を取得したい場合、

のような手順では参照できません(”リストの設定”のメニューが出てきません)

経緯・前提条件のような場面でのリスト内部列名取得方法

① SPOコネクタのHTTPの送信アクションを利用します。
スクリーンショット 2023-12-11 143614.png

② ①のフローを実行すると、対象のSPOリストの既定の列を含んだすべての列(JSON)が返されます。「EntityPropertyName」から該当の列を探します。

プロパティ(一部省略) 設定されていた値 補足・考察
CanBeDeleted trueかfalse 消せる列か否か
EntityPropertyName "OData_{InternalName}" フィルタークエリで使いたいのはコレ!
Filterable trueかfalse フィルターできるか
Hidden trueかfalse 表示列か否か
InternalName 内部名!
Required trueかfalse 値が必須か
Scope "/sites/{サイト名}/Lists/{リスト名}"
StaticName InternalNameと同値?
TypeDisplayName 選択肢、計算値、参照 など 列の種類が設定されている
TypeShortDescription TypeDisplayNameと同値

今回は「ユーザーまたはグループ」のカスタム列の内部名を取得したかったのであたりをつけることができましたが、対象列が複数候補があったり元々列数が多いリストでは大変なのでもっと上手い取得方法があればフィードバックいただけるとありがたいです。

リスト列名を日本語で定義しない、を徹底していたらこんなことにはならないわけですが。。:triumph:

余談(想定外の動き。。)

このメンバーリストは以前サイトの管理者権限、リストの編集(投稿か?)権限を持っていたもので、現在はサイトの管理者権限ははく奪されています。

こちらに記したとおり、「アイテムの更新アクションで権限がない旨のエラーになるなぁ」と思いながらリランしたところ、正常終了してしまいました(!)
アクションの接続時点の権限が有効なのか?という推察と、うまいこと動いてしまったのでまぁいいかと放置しています。。

付録

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?