SharePoint JSOM を使用したアイテムの CRUD 方法

こんにちは SharePoint サポートの森 健吾 (kenmori) です。   今回の投稿では、SharePoint Online または SharePoint 2013 サイト上のページからJSOM (JavaScript オブジェクト モデル) を使用し、リストアイテムを CRUD (Create, Read, Update, Delete) 操作する方法についてサンプルを記載します。   前回の REST に関する投稿で記載した通りですが、SharePoint のクライアント サイド API は、下記のような用途で使い分けされます。   CSOM .NET ベースのクライアント サイド アプリケーションおよびプロバイダー ホスト型アプリ JSOM SharePoint サイト上のページから同じサイトのサイト コンテンツへのアクセス REST (JavaScript) SharePoint ホスト アプリのアプリ サイトからホスト サイトへのアクセス (ただし RequestExecutor を使用) (サンプル) REST (コード) .NET…


PWA サイト上でグリッドの列ヘッダーの表示幅が狭く、文字がすべて表示されない現象の対処方法について

こんにちは、SharePoint サポートの森村です。 今回の投稿では、Project Server 2013 および Project Online の PWA (Project Web App) サイト上でグリッドの列ヘッダーの表示幅が狭く、列ヘッダー内の文字がすべて表示されない現象への対処方法についてご案内いたします。   PWA サイト上にはプロジェクト センター等、多数のグリッドを使用するページが存在します。 現時点の製品の動作として、下記 2 点のページにてグリッドの列ヘッダーの表示幅が狭く、また列の幅を変更することはできないため、文字がすべて表示されない現象が発生することを確認しています。   項目 1) リソース計画のページ (プロジェクトセンターから個々のプロジェクトを選択後に、[プロジェクト] タブから [リソース計画] をクリック)   項目 2) ポートフォリオ分析のリソース分析の要件の詳細ページ (リソース分析のページにて、[分析] タブ内の [要件の詳細] をクリック)   それぞれについて対処方法をご案内します。   項目 1) リソース計画のページ内の文字サイズ スタイルを変更する方法 (スクリプト エディタ Web パーツの使用) スクリプト エディター Web パーツにてページ内のスタイル情報を上書きし、列ヘッダーの文字サイズを変更することで現象の回避を行います。こちらの方法は「リソース計画のページ」にて使用可能です。 本方法を実施した場合、リソース計画のページ内の日付情報以外の列ヘッダー部分 ([リソース名] 等)…


PowerShell サンプル – リストの作成、取得、編集、削除

こんにちは、SharePoint サポートの佐伯です。 今回の投稿では、PowerShell を使用してリストの基本的な操作を実施する方法についてご紹介します。 あまり PowerShell のご経験がない方にも分かりやすくするために、ここではシンプルなサンプルをご紹介していきます。目的の処理を実装する際にご参考になりましたら幸いです。 実装の際は MSDN の資料も合わせてご参照ください。   ■リストの作成 #サイトを取得します。 $web = Get-SPWeb <Web サイトの URL> #リストのコレクションを取得します。 $lists = $web.Lists #リストを追加します。 $lists.Add(“<リスト名>”, “<リストの説明>”, <リスト定義の種類>)   例) お知らせリストを作成する $web = Get-SPWeb http://sharepoint/sites/team $lists = $web.Lists $lists.Add(“News”, “お知らせ用のリスト”, [Microsoft.SharePoint.SPListTemplateType]::Announcements)   例) ドキュメント ライブラリを作成する $web = Get-SPWeb http://sharepoint/sites/team $lists = $web.Lists $lists.Add(“会議資料”, “会議資料管理用のライブラリ”, [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary)  …


SharePoint 2013 個人用サイトのマスター ページ編集について

こんにちは、SharePoint サポートの佐伯です。今回の投稿では、個人用サイトのマスター ページの編集についてとりあげます。 個人用サイトの既定のマスター ページによって描画されている箇所は、簡単にまとめると以下になります。個人用サイトのマスター ページを編集することで、例えば以下のようにサイトの表示を変更することができます。マスター ページを編集してユーザーの個人用サイトの表示を変更したいとのお問い合わせをよくいただきますので、カスタマイズを行う上で参考にしていただきたい情報を以下に記載します。 まずは、こちらの投稿で個人用サイトのアーキテクチャについてご確認ください。そちらに記載されているように、個人用サイトは 2 つのサイト コレクション (ホスト サイト コレクション、個別のサイト コレクション) で構成されています。この内容をふまえてお伝えしておきたいことは、SharePoint 既定の機能では、すべてのユーザーの個人用サイトのマスター ページに、同じ編集を一括で実施することはできないという点です。 この内容について説明のため、ホスト サイト コレクションのマスター ページを編集してみましょう。編集後、ホスト サイト コレクション内のページに編集内容が反映されますが、ユーザー個別のサイト コレクションのマスター ページは変わりませんので、表示も既定の状態のままとなります。 すべての個別のサイト コレクションのマスター ページにも同様の変更を反映させるには、それぞれのサイトで編集を実施する必要があります。Saeki の個別のサイト コレクションのマスター ページを同様に編集すると、以下のようになります。 さらに、Mori の個別のサイト コレクションのマスター ページにも同様の編集を行います。 このように、個別のサイト コレクションはユーザーごとに存在するので、マスター ページの編集によって、すべてのユーザーで同じ表示を実現するには、ユーザーの数だけ作業が必要となります。(SharePoint Designer で編集する場合は、以下のようにサイトを指定して開き、該当のマスター ページを編集します) そうなりますと、各サイトのマスター ページに編集を実施するのは大変です。さらに、今後運用を行っていくにあたり、変更が行われる度に大量のサイトに対して作業が必要となるのは負担が大きいと予想されます。なお、Visual Studio を使用してソリューションを開発するという方法も考えられますが、難易度は高いものになります。 個別のサイト コレクションは各ユーザーが管理者となっており、サイトやライブラリを作成することができます。また、ページの編集やマスター ページの編集も可能で、ユーザー自身で表示を変更することができます。個別のサイト コレクションの管理は各ユーザーに任せて個人用サイトを有効に使ってもらい、共通して表示させたい内容については、すべてのユーザーがアクセスするホスト サイト コレクションの方に反映させるという運用がシンプルです。 以上の点をふまえて、実施するカスタマイズ内容をご検討いただけますと幸いです。今回の投稿は以上です。


SharePoint REST サービスを使用したアイテムの CRUD 方法

こんにちは SharePoint サポートの森 健吾 (kenmori) です。   今回の投稿では、SharePoint Online または SharePoint 2013 サイト上のページから REST API を使用し、リストアイテムを CRUD (Create, Read, Update, Delete) 操作する方法についてサンプルを記載します。   今回紹介する方法は、SharePoint の REST サービスを理解する上で非常に重要であり、SharePoint アプリなどを作っていく前に一度経験しておいた方が良い内容です。ただし、今回ご案内するサンプルは、実際に使用するシナリオが限定されます。   SharePoint のクライアント サイド API は、下記のような用途で使用されます。   CSOM  .NET ベースのクライアント サイド アプリケーションおよびプロバイダー ホスト型アプリ JSOM  SharePoint サイト上のページから同じサイトのサイト コンテンツへのアクセス REST (JavaScript)  SharePoint ホスト アプリのアプリ サイトからホスト サイトへのアクセス (ただし RequestExecutor を使用) REST…


SharePoint のドキュメント パーサー

こんにちは、SharePoint サポートの森 健吾 (kenmori) です。今回の投稿では、SharePoint のドキュメント パーサーについてご説明します。     ドキュメント パーサーとは ドキュメント パーサーは標準で有効化された、ファイル内に持つプロパティ情報と、SharePoint のアイテムが持つフィールド情報を同期しようとする仕組みです。 私たちは何気なくドキュメントをアップロードしていますが、SharePoint サイトにファイルをアップロードし、プロパティの編集画面を経ると、前後でファイルのバイナリを比較すると細かな差異が確認できることに気づきます。これは、ファイルのアップロード後にプロパティの編集画面で、コンテンツ タイプを選択したり列情報を書き込んだりすると、ファイル 内部にドキュメント ライブラリのスキーマに合わせてプロパティ データが格納されることに起因します。 主に、データの同期の方向性に応じて、2 つの用語がありますので、以下に記載します。 1. 昇格 ドキュメント (バイナリ) の持つプロパティ情報をアイテムのフィールド (メタデータ) にコピーします。 2. 降格アイテムのフィールド (メタデータ) をドキュメント内のプロパティ (バイナリ) にコピーします。 基本動作として、ファイルをアップロードした時に 1. 昇格、アイテムのプロパティを書き換えた際に 2. 降格が発生します。 ただし、それ以外にも変則的な条件で動作する例として、リストの列定義などのスキーマ情報が変更された後で、ファイルが最初にダウンロードされたときなどにも整合性を保とうとして同期処理が動きます。 同期する対象の列は、SharePoint 側に存在する列のみです。SharePoint のコンテンツ タイプまたはライブラリの列に存在しない列情報は同期されません。ドキュメント パーサーはライブラリ側に列を自動で作成することはしません。 SharePoint は、メタデータとしてデータを保持した方が、アプリケーションとして連携しやすいことは容易に想像できます。リストビューからの絞り込みやソート、ワークフロー、管理プロパティを使用した検索など、毎回ファイルのバイナリ データを読み取って処理を実施する場合、このレベルでの汎用的なドキュメント管理ソリューションの実現は不可能だと想像できます。 なお、このドキュメント パーサーを使用したアイデア ソリューションは、過去に本ブログにも投稿がありますので、ご紹介します。 タイトル : Excel 2013…


SharePoint 2013 コントロール表示テンプレートを編集して絞り込み Web パーツのデザインを変更する

こんにちは、SharePoint サポートの佐伯です。 今回の投稿では、コントロール表示テンプレートを編集して、絞り込み Web パーツのデザインを変更する方法についてご紹介します。絞り込み Web パーツ全体の表示はコントロール表示テンプレートによって制御されています。 そのため、絞り込み Web パーツの全体的なレイアウトやデザインを変更したい場合は、コントロール表示テンプレートを編集します。以下に例をあげて説明していきますので、ご参考にしていただけますと幸いです。 例) 絞り込み Web パーツに枠線を表示する 絞り込み Web パーツの右側に枠線が表示されるよう表示テンプレートを作成しましょう。 一からファイルを作成するよりも、既定の表示テンプレートをコピーして編集する方が簡単です。下記に手順をご紹介します。 1. [サイトの設定] – [Web デザイナー ギャラリー] – [マスター ページ] をクリックし、マスター ページ ギャラリーを開きます。 2. [Display Templates]、[Filters] の順にフォルダを展開し Control_Refinement.html ファイルをダウンロードします。 3. ダウンロードした Control_Refinement.html ファイルのファイル名を変更します。Control_Refinement_Border.html とします。 4. Control_Refinement_Border.html ファイルを開き、<body> タグの直後にある <div> の id に、この *.html ファイルのファイル名を記述します。 <body> <div id=”Control_Refinement_Border”> 5….


SharePoint のページをフレーム (FRAME,IFRAME) 内に表示する方法について

こんにちは、SharePoint サポートの森 健吾 (kenmori) です。 今回の投稿では、SharePoint Online または SharePoint Server 2013 のページをフレーム内で表示すると "このコンテンツはフレーム内に表示できません。" とエラー発生する現象について原因と対処策をご説明します。SharePoint Online や複数 On Premises など、様々な環境間でのハイブリッド運用シナリオが増えてきており、特に下記のようなシナリオで IFRAME を使用することが一般的となっています。 ・ページ作成者が他ファームやテナントの Web パーツを表示する。・アプリケーション開発者が、クロスドメイン制約をクリアするため JavaScript プログラミングでフレーム間通信 (window.postMessage) を実装する。  このような状況において、突然本投稿のような現象に遭遇することは多いと思います。この投稿が問題解決の手掛かりにしていただけますと幸いです。   発生現象 SharePoint Online または SharePoint Server 2013 では、フレームからページが呼び出された際に、親ウインドウ (呼び出し元) ページの URL が同じドメイン内でない場合は、フレーム内にページを表示することをブロックする動作となりました。 SharePoint 標準 Web パーツである ページ ビューア Web パーツを使用した場合でも、この動作の例外にはならず、別ファーム (または別テナント) にあるページを表示することはできません。 HTML <html> <iframe src="https://tenant.sharepoint.com/DocLib1/test.aspx" width="100%"…


発行インフラストラクチャが非アクティブの場合の表示テンプレートの編集

こんにちは、SharePoint サポートの佐伯です。 検索結果の表示は表示テンプレートと呼ばれるテンプレートで制御されていますが、サイト コレクションの機能 発行インフラストラクチャが非アクティブの場合の表示テンプレートの編集について、この投稿で補足します。 表示テンプレートはマスター ページ ギャラリーに格納されています。既に存在している表示テンプレートを編集したい場合は、目的のファイルをダウンロードして編集し、上書きアップロードします。新しく表示テンプレートを作成する場合は、既定の表示テンプレートをコピーして作成する方法が簡単です。 発行インフラストラクチャがアクティブの場合は、表示テンプレートは以下のように *.html ファイルと *.js ファイルが存在します。 発行インフラストラクチャが非アクティブの場合は、表示テンプレートは以下のように *.js ファイルのみが存在します。 どちらの場合も検索結果に反映されるのは *.js ファイルに記述された内容です。発行インフラストラクチャがアクティブの場合は *.html ファイルと *.js ファイルは関連付けられており、*.html ファイルを編集してアップロードすると、*.js ファイルに変更内容が反映されます。表示テンプレートに加えたい変更を *.html ファイルで編集すると、通常の html ファイルと同様に HTML や JavaScript、CSS を記述して編集できるので便利です。 発行インフラストラクチャが非アクティブの場合は、*.js ファイルのみになりますので、既存のものを変更する場合は *js ファイルをダウンロード、編集、上書きアップロードし、新しく作成する場合は既存の *.js ファイルをコピーして新たに *.js ファイルを作成する方法があります。編集内容にはよりますが、*.js ファイルを編集するよりも、上述のように *.html ファイルを編集する方が簡単です。 そのため、発行インフラストラクチャが非アクティブの環境で表示テンプレートを追加/変更する際は、発行インフラストラクチャがアクティブのサイトで *.html ファイルを作成し、このファイルのアップロード時にあわせて作成される *.js ファイルを取得します。この *.js ファイルを発行インフラストラクチャが非アクティブであるサイトにアップロードする方法をおすすめします。 ※表示テンプレートの *.html ファイルの編集方法やサンプルについては、過去の投稿で詳しく説明していますのでご参照ください。 <<*.js…


SharePoint Online に対して PowerShell を使用する方法

こんにちは、SharePoint サポートの森 健吾 (kenmori) です。今回の投稿では、SharePoint Online を使用するにあたり PowerShell を使用するまでの準備と実践方法について下記にまとめさせていただきます。SharePoint Online に対し PowerShell コマンドレットを使用する方法は、いくつかの方法があります。下記に概要を記載します。 概要 事前準備 Windows PowerShell 3.0 について 方法 1. SharePoint Online 管理シェルを使用する 2. SharePoint Online SDK を使用する SharePoint Online テナントに対してグローバル管理者の権限を所有し、用意された管理タスクを実行する場合、方法 1. を使用するのが工数も少なく効率的です。 ただし、管理運用上でのニーズを満たすためには、現実的にほとんどの場合方法 2. を使用せざるを得ないものと思われます。方法 2. はサイトコレクション管理者や一般ユーザーでも使用可能な方法です。 SharePoint On-Premises で使用する SharePoint 管理シェルと大きく異なる点は、これらのコマンドはサーバーにリモート接続して処理を呼び出す形式のクライアント サイドで実行されるスクリプトであるという点です。 タイトル : SharePoint Online 管理シェルの概要 アドレス : http://technet.microsoft.com/ja-jp/library/fp161388(v=office.15).aspx 事前準備 : Windows…