Power BI の SharePoint Online リスト コネクタ がイイ感じに変わりそうなのである。


まだベータですけどね、これまでわちゃわちゃしていたのがグッと整理されたっていう感じだ。(2020-10時点)。これまでいろいろと補うために FieldValuesAsText フィールドを展開とかしてたのよね。

これまでの SharePoint Online リスト コネクタ は

このポストのきっかけでもあるし。前身のPower BI for Office 365 時代からあーでもないこーでもないと。こういう経緯もあったんだよって思ってもらうとよいかなと。で、どういう不遇というか出来事があったかというと、

たぶん en-US 環境以外は調子悪かった
SharePoint 自体の更新によるものだったのだけど、のちに SharePoint に関わる Power Query の関数に <option> 引数 ApiVersion フィールド が追加された。ApiVersion を "15" か "Auto" にするとよいよ。

生 EntityPropertyName の時があった
よほど訓練されてないとわかんないですよね。記憶は定かでないけど少ししたら修正されたけど、たしかこんな感じだった。

いまでも EntityPropertyName であることに変わりはない
現在でもEntityPropertyNameがインポートされるであろう列の列名として使われているのである。EntityPropertyName のうちエンコードされた文字列をデコードしてるっていう現在。やろうと思えばこんなことできる。

狙わないとならないですけどね。で、以前こんなポストをしていたのだ。

書き直したいなと思い続けて幾星霜🤪もういいよねとなった。

どうなるか

データを取得するという場面で使いやすくなる。

  • SharePoint リストのビューに設定されたフィールドとか必要な部分だけ取得できる
  • インポートするSharePoint リストの列名が表示された列名になる。
  • 日付時刻列が現地時間に (UTC + 0 → Site settings 依存かな)
SharePoint.Tables( url as text, option as record )

option
[ ApiVersion = 14 | 15 | "Auto" ]
[ Implementation = "2.0", ViewMode = "Default" | "All" ]

内部的ところ

SharePoint リストアイテムの取得じに利用する API が変わる。
1.0 (Current)

GET https://{site_url}/_api/Web/Lists(guid'{list_guid}')/Items

2.0 (Beta)

POST https://{site_url}/_api/Web/Lists(guid'{list_guid}')/RenderListDataAsStream

Working with lists and list items with REST - Retrieve items as a stream

Working with lists and list items with REST - RenderListDataAsStream body parameter properties
Request body に含められた パラメタに "DatesInUtc" がなかったので、UTC ではなく Local time だったということでしょう。Site setting に依存はよい場面はあるけれども、異なるタイムゾーン設定されたサイトのリストを見るよというときあらかじめ調べる必要がある感じになってしまうのか。オプションスイッチをコネクタに持たせてくれるとよいかもな。

思ったこと🙄

コンテンツタイプから列名とか探したり、FieldValuesAsText フィールドを展開する必要がなりそうでやれやれなのである。

その他