Category( "Customize" ){ return results; };

PowerShell の CSOM を使って SharePoint Online の 5,000 件を超えるアイテムが格納されたリストから全アイテムを取得する

Pocket

SharePoint Online を利用していると、リストに格納されたアイテムが 5,000 件を超えることも珍しくありません。こうしたリストのアイテムを PowerShell の CSOM で扱おうと思うと、5,000 件の壁にぶつかります。

これは、SharePoint Online からは一度に 5,000 件より多いアイテムを取得できないためです。ではどうするかというと、5,000 件の制限の範囲内で小分けにしてアイテムを取得していきます。ページングというやつですね。

ではさっそくスクリプトを見ていきましょう。

Read More

SharePoint Online 管理シェルでモダン サイトを作成する

Pocket

SharePoint Online 管理シェルからサイト コレクションを作成するには、みなさんご存知の通り New-SPOSite を利用するわけですが、つい先日までは、このコマンドでは SharePoint Online のモダン サイトを作成することができませんでした。

そのため、下記の記事のように REST API を利用して作成を試みていたわけです。

SharePoint Online の新しいコミュニケーション サイトは REST API で作成できるらしい
https://idea.tostring.jp/?p=3257

ところが先ほど確認してみたところ、このコマンドでもモダン サイトを作成できるようになっていたのでメモしておきます。

Read More

PowerShell から SharePoint Online の CSOM を呼び出すときに、HTTP リクエストに User Agent を設定する(スロットリング回避策?)

Pocket

SharePoint Online は、CSOM や REST API の呼び出しにスロットリングが設けられており、頻繁にリクエストを送っているとサーバー側から実行が制限されてしまいます。どのくらいの頻度でリスエストを送ると制限されるのかについては、情報が公開されていないので悩むところではあるのですが…、この制限を超えるとサーバーからは「429」または「503」のコードが返ってきます。

この制限の回避策についてはリファレンスが公開されています。

SharePoint Online で調整またはブロックを回避する
https://docs.microsoft.com/ja-jp/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online

回避策のひとつは、制限されることを前提にしたリトライ処理をあらかじめ組み込んでおくことです。PowerShell での実装については、以前に Microsoft のサポートチームがブログで書いてくれていますね。

PowerShell サンプル : SharePoint Online HTTP 調整 (応答コード : 429) 対策の増分バックオフ リトライ
https://blogs.technet.microsoft.com/sharepoint_support/2016/10/08/powershell-csom-sample-code-for-spo-http-429-incremental-backoff-retry/

もうひとつの回避策は、HTTP リクエストに決められた命名規則の User Agent を含めることとあります。リファレンスには「適切に装飾されたトラフィックは、不適切な装飾を施したトラフィックより優先されます。」とあるので、制限される頻度を低くできる可能性があるのだと思います。

というわけで、PowerShell で CSOM を扱うときにどのように User Agent を含めたら良いかについてメモしておきます。

Read More

SharePoint Online の新しいコミュニケーション サイトは REST API で作成できるらしい

Pocket

PowerShell を使ってサイト作成を自動化や簡略化しようとした時に、SharePoint Online Management Shell(SharePoint Online 管理シェル)を使うことが多いのですが、どうやらこの管理シェルからはモダン UI の新しいコミュニケーション サイトは今のところ作成できないようです。

なんとかならないかなー?と、検索してみたことろ、どうやら REST API では新しいコミュニケーション サイトを作成する操作が提供されているようで、下記のようなリファレンスを見つけました。

Creating SharePoint Communication Site using REST
https://docs.microsoft.com/en-us/sharepoint/dev/apis/communication-site-creation-rest

というわけで、さっそく PowerShell からこの REST API を呼んでみたいと思います。

Read More

JS リンクで列の値に応じて行の色を変える(クイック編集モード対応)

Pocket

この記事は、Office 365 Advent Calendar 2017 に参加しています。

Office 365 Advent Calendar 2017
https://adventar.org/calendars/2585

SharePoint Server 2013 以降や、SharePoint Online の “クラシック UI” のリストで利用できる JS リンクを使って、列に入力された値に応じて行の色を変える方法です。

JS リンクの OnPostRender を利用する方法でイルミネート・ジャパン・ブログさんに記事がありますが、こちらのサンプルではリストのクイック編集モードに対応していないようでしたので、クイック編集モードに対応するように少しだけ書き足してみました。

[SharePoint Online/SharePoint Server 2013] JS リンクでリストビューに条件付き書式設定 | イルミネート・ジャパン ブログ
https://crieilluminate.wordpress.com/2016/01/26/sharepoint-onlinesharepoint-server-2013-js-%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%A7%E3%83%AA%E3%82%B9%E3%83%88%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AB%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E6%9B%B8%E5%BC%8F/

とは言っても、ほんの数行書き足しただけです。

Read More

SharePoint Online モダン リストの Column formatting を試してみた

Pocket

先行リリースの機能として SharePoint Online のモダン リストに新たに追加された Column formatting という機能を試してみました。この機能は、Excel でいうとセルの条件付き書式のような機能となっており、列に入力された値に応じて文字の色を変えたり、アイコンを表示したりといったカスタマイズが行えます。下図のサンプルは、Microsoft さんのものを拝借しました。

こうしたカスタマイズは従来のリストでは JS リンクといった機能を利用して実現できましたが、Column formatting はそれのモダン リスト版となっており、JS リンクと同様に簡単にカスタマイズが行えるようになっています。後述の GitHub に華やかなサンプルがありますが、そのサンプルを迷いなく利用したり、ちょっと手を加えて自分好みにカスタマイズしていくためにも、基礎を抑えながら動作を見ていきたいと思います。

それでは、さっそく試してみましょう。

Read More

SharePoint Online モダン サイトに独自のテーマを設定する

Pocket

SharePoint Online では、Office 365 グループに接続されたチーム サイトや、今年登場したコミュニケーション サイトなど、「モダン サイト」と呼ばれる新しい SharePoint のサイトがあります。(従来のサイトは「クラシック サイト」と呼ばれるようになりました)このモダン サイトを利用する場合でも、やはりサイトの色使いとして企業のブランド カラーを反映させたいななどと思われる方もいるかと思います。

こうしたテーマ(色合い)は、モダン サイトにアクセスした状態で「歯車アイコン」をクリックすると、「外観の変更」へアクセスでき、あらかじめ定義されたテーマを選択することができます。

今回はここに独自に定義したテーマを追加してみたいと思います。

Read More

SharePoint Server 2016 でも SharePoint Framework の Web パーツが展開可能に

Pocket

SharePoint Server 2016 向けにリリースされた September 2017 Public Update により、オンプレミスの SharePoint Server 2016 の環境においても、SharePoint Framework で作成された Web パーツが展開可能になりました。

Now available: Deploy SharePoint Framework web parts to SharePoint Server 2016 with Feature Pack 2
https://dev.office.com/blogs/now-available-deploy-sharepoint-framework-web-parts-to-sharepoint-server-2016-with-feature-pack-2

Read More