UI クライアント アプリ ブラウザ JavaScript Silverlight ソリューション パッケージ WSP ファイル (ファーム・サンドボックス) ・ASP.NET ページ ・CUI アプリ ・PowerShell スクリプト SharePoint 機能+サーバー オブジェクト モデル Web パーツ サイト定義 リスト定義 列定義 メニュー ワークフロー イベント処理 タイマージョブ マスターページ ページ CSS
App for SharePoint : オンプレ IIS・Azure
(.NET コード+ クライアント サイド オブジェクト モデル) App for SharePoint : SharePoint ホスト型
(.NET コードなし、SharePoint 機能+HTML + JavaScript)
クライアント オブジェクト モデル モバイル アプリ REST・OData ブラウザ JavaScript クライアント PC モバイル端末 API (REST エンド ポイント) テキスト ファイル Azure Workflow (宣言型でノンコーディング)
分類 SharePoint Online オンプレミス API サーバー オブジェクト モデル △ (サンド ボックスの範囲内) ○ PowerShell コマンドレット × ○ クライアント オブジェクト モデル (Silverlight 含む) ○ ○ JavaScript オブジェクト モデル ○ ○ REST ○ ○ SharePoint ソリューション ファーム ソリューションサンド ボックス × ○ ソリューション ○ ○ App for SharePoint プロバイダー向けのホスト型SharePoint ホスト型 ○(別途実行環境が必要)○ ○(別途実行環境が必要)○
対応レベル 内容 使用ツール・API 設定 カスタム リスト、列、ビューの作成・設定 標準 Web UI Web パーツの配置 標準 Web UI 外観の変更 標準 Web UI CSS/JavaScript の挿入 標準 Web UI / IE 開発者ツール カスタマイズ マスタページの変更 SharePoint Designer 2013 ページ レイアウトの設定 SharePoint Designer 2013 XSLT によるビューのカスタマイズ SharePoint Designer 2013 カスタム フォームの設定 InfoPath Designer 2013
開発 Web パーツ・Silverlight の開発 Visual Studio 2012 : SharePoint ソリューション Web アプリの開発 Visual Studio 2012 : App for SharePoint
リボン・ファイル操作メニューの追加 Visual Studio 2012 : SharePoint ソリューション or Visual Studio 2012 : App for SharePoint
クライアント アプリの開発 Visual Studio 2012 :
.NET アプリ・クライアント オブジェクト モデル
対応レベル 内容 使用ツール・API 設定 列の既定値の設定 標準 Web UI 列の検証・アイテムの検証 標準 Web UI 計算値列 標準 Web UI 集計ビュー 標準 Web UI ドキュメント ID の付与 標準 Web UI 変更不可・削除不可に設定 標準 Web UI : レコード化 複数選択削除 標準 Web UI
Excel 出力・Access 連携 標準 Web UI
一括編集 標準 Web UI : クイック編集
カスタマイズ バッチ処理 PowerShell
開発 イベント処理 Visual Studio 2012 : SharePoint ソリューション or
Visual Studio 2012 : App for SharePoint リモート イベント レシーバー タイマージョブ Visual Studio 2012 : SharePoint ソリューション
対応レベル 内容 使用ツール・API 設定 標準の承認ワークフローの設定・利用 標準 Web UI カスタマイズ カスタム ワークフローの作成 (アクセス権の設定・メール通知など) SharePoint Designer 2013 : 2010 形式ワークフロー 状態遷移型ワークフローの作成 SharePoint Designer 2013 : 2013 形式ワークフロー カスタム フォームの設定 InfoPath Designer 2013
開発 ワークフロー アクションの開発 Visual Studio 2012 : SharePoint ソリューション (2010 形式ワークフロー用のみ)
カスタム ワークフロー の開発 Visual Studio 2012 : SharePoint ソリューション ソリューションとしての
対応レベル 内容 使用ツール・API
設定 アップロード・ダウンロード 標準 Web UI
複数ファイルのアップロード 標準 Web UI : Office 連携 一括アップロード・ダウンロード・
フォルダ作成 標準 Web UI : エクスプローラーで開く
ドラッグ & ドロップ 標準 Web UI : Office 連携 or IE 10 などブラウザ対応
有効期限設定 標準 Web UI : 情報管理ポリシー・保持ポリシー
Word 翻訳 標準 Web UI : Office Web Apps Server
カスタマイズ 翻訳呼び出し SharePoint Designer 2013 : 2013 形式ワークフロー
ファイルのアップロード・ダウンロード PowerShell (WebDAV GET/PUT) 開発 ファイルのアップロード・ダウンロード Visual Studio 2012 : .NET アプリ
(WebDAV GET/PUT)
ファイル変換 (Word → PDF など) Visual Studio 2012 : SharePoint ソリューション (Document Conversion)
対応レベル 内容 使用ツール・API
設定 固定の選択肢 標準 Web UI : 選択肢列
共通分類からの選択 標準 Web UI : 用語セット
サイト内リストの参照 標準 Web UI : 参照列
外部データベースのテーブル一覧表示・
更新・検索・選択肢としての利用 SharePoint Designer 2013 : Business Connectivity Services レポート画面の作成 Excel / Visio / Performance Point ダッシュボード デザイナー /
レポート ビルダー:
Excel Services / PowerPivot / PowerView / Visio Services / Performance Point Services / SQL Server Reporting Services
カスタマイズ CSV 連携 PowerShell
開発 外部データ(DB、OData、.NET)の
テーブル一覧表示・更新・検索・ 選択肢としての利用
SharePoint Server 上の Web パーツ
などでは、現在の Web サイトを、
URL 指定なく取得可能
アクセスしたユーザーの権限で、
各種操作が実行される
(別途管理者権限に切り替えての
操作も可能)
各オブジェクトも名前等で、
直接取得可能
http://sharepoint/sites/Dev/
SharePoint 管理シェル上では、
Get-SPWeb などの、コマンドレットが
利用可能
取得したオブジェクトは、.NET の
オブジェクトとなっているため、
.NETと同じプロパティや
メソッドが利用可能
"|" でパイプすることにより、前のコマンドの
出力結果を、オブジェクトのまま、
引数として渡すことが可能
SharePoint 管理シェル上での対話的な実行
もしくは、スクリプトとしての記述・実行
(次ページ参照)が可能
スクリプトの実行にあたっては、下記を一度実行
Set-ExecutionPolicy Unrestricted
バッチ ファイルや外部からの呼び出し
PowerShell.exe –file "C:¥Task¥スクリプト.ps1"
$SPWeb = Get-SPWeb "http://stationery" $SPList= $SPWeb .Lists["VOC"]
$filename="C:¥PowerShell¥Data.csv" $csv=Import-Csv $filename foreach($row in $csv){ $SPListItem=$SPList.Items.Add() $SPListItem["内容"]=$row.Comments $SPListItem["満足・不満足"]=$row.Sat $SPListItem["年代"]=$row.Age $SPListItem["性別"]=$row.Gendar $SPListItem.Update(); }
サーバー オブジェクト モデルを利用しているので、
SharePoint Server 上でのみ動作する
ご参考 Uploading Content Into SharePoint (Let me count the ways) http://vspug.com/smc750/2009/05/19/uploading-content-into-sharepoint-let-me-count-the-ways/
WebDAV PUT メソッドによる
ファイルのアップロード
WebDAV GET メソッドによる
ファイルの取得
アイテムやコレクションの取得には Load や
Update などの操作と ExecuteQuery が必要
ExecuteQuery を実行したタイミングで
実際のデータ取得処理が行われる
特定アイテムの取得は、XML の CAML 構文で
検索条件を設定
Cookie 操作や別ブラウザ画面での認証をせずに
SharePointOnlineCredentials を使って、
PowerShell ではオブジェクトの型に合わせた Generic 関数の呼び出しができないため、 別途、オブジェクトの型に合わせた、 関数を定義する必要がある 以下の例では、 "Microsoft.SharePoint.Client.FieldCollection" の Load を呼び出す
クライアント オブジェクト モデルと同じく、
load や executeQueryAsync が必要
executeQueryAsync 完了後、登録した
ハンドラ関数が非同期に呼び出され、
executeQueryAsync 処理が成功後、呼び出される
REST のエンドポイントに GET 要求を
行えば、データを XML で取得可能
http://sharepoint/sites/Dev/_api/Web/Lists/GetByTitle('customlist1')/Items
JavaScript 用では、結果を json 形式で
受け取るよう、ヘッダーを追加する
処理完了後呼び出される関数
json 形式の場合、XML 形式より、
SharePoint 2010 ワークフロー SharePoint 2013 ワークフロー 条件分岐・並列ステップ ○ ○ 管理者権限で実行する ○(代理ステップ) ○(アプリ ステップ) 繰り返し処理 × ○ 状態遷移型ワークフロー × (Visual Studio での開発は可能) ○ 一定の割合の承認などの合議 × ○ Web サービスの呼び出し × ○ 他のワークフローの起動 × ○ スケーラビリティ × ○ InfoPath による開始・関連付け・ タスク フォームのカスタマイズ ○ × Visual Studio による カスタム アクションの開発 ○ × アイテムの権限の設定・確認 ○ × 複数アイテムに対する一括処理 × ×
アクティビティ カテゴリ 説明 CreatedBy 条件 現在のアイテムが、指定されたユーザーによって作成されたかどうかを返します。 CreatedInRange 条件 現在のアイテムが、指定された期間に作成されたかどうかを返します。 ModifiedBy 条件 現在のアイテムが、指定されたユーザーによって変更されたかどうかを返します。 ModifiedInRange 条件 現在のアイテムが、指定された期間に変更されたかどうかを返します。 WordsInTitle 条件 指定されたキーワードが、現在のアイテムのタイトルに含まれるかどうかを返します。 WorkflowInterop 調整 SharePoint 2010 ワークフロー (Windows Workflow Foundation 3.5) を開始します。 WaitForCustomEvent イベント カスタム イベントがワークフローに送信されるのを待機します。 WaitForFieldChange イベント 指定されたフィールドが、指定されたリスト アイテムの指定された値に変わるのを待機します。 WaitForItemEvent イベント 指定されたイベントが、指定されたリスト アイテムで発生するのを待機します。 CheckInItem リスト 指定されたリスト アイテムをチェックインします。 CheckOutItem リスト 指定されたリスト アイテムをチェックアウトします。 CopyItem リスト 指定されたファイル アイテムを、指定されたドキュメント ライブラリにコピーします。ファイル以外のリスト アイテムには適用されません。 CreateListItem リスト リスト アイテムを作成します。 DeleteListItem リスト リスト アイテムを削除します。 LookupSPList リスト 指定されたリスト ID に一致するリストの情報を返します。 LookupSPListItem リスト 指定されたリスト アイテムのプロパティを返します。 LookupSPListItemBooleanProperty リスト 指定されたリスト アイテムのプロパティの値を Boolean として返します。 LookupSPListItemDateTimeProperty リスト 指定されたリスト アイテムのプロパティの値を DateTime として返します。 LookupSPListItemDoubleProperty リスト 指定されたリスト アイテムのプロパティの値を Double として返します。
アクティビティ カテゴリ 説明 LookupSPListItemDynamicValueProperty リスト 指定されたリスト アイテムのプロパティの値を DynamicValue として返します。 LookupSPListItemGuid リスト プロパティ名およびプロパティ値に関して指定されたフィルター条件に一致する最初のリスト アイテムのGUID プロパティを返します。 LookupSPListItemInt32Property リスト 指定されたリスト アイテムのプロパティの値を Int32 として返します。 LookupSPListItemProperty リスト 指定されたリスト アイテムのプロパティの値を Object として返します。 LookupSPListItemStringProperty リスト 指定されたリスト アイテムのプロパティの値を String として返します。 LookupSPListProperty リスト リストのプロパティを DynamicValue として返します。 UndoCheckOutItem リスト 指定されたリスト アイテムのチェックアウトを元に戻します。 UpdateListItem リスト リスト アイテムを更新します。 CompositeTask タスク タスク プロセスを実行します。複数のタスクを複数のユーザーに連続または並行して割り当て、タスクの完了を待機し、集計結果を求めます。 SingleTask タスク 単一のタスク プロセスを実行します。単一のタスクを単一のユーザーまたはグループに割り当て、タスクの完了を待機します。 ExpandGroupToUsers ユーザー 指定された SharePoint グループ プリンシパルのメンバーであるユーザーの LoginNames のコレクションを返します。 IsValidUser ユーザー 指定されたユーザー プリンシパル ID が有効な SharePoint ユーザーであるかどうかを返します。 LookupSPGroup ユーザー 指定されたプリンシパル ID に一致する SP グループの情報を返します。
LookupSPGroupMembers ユーザー グループの各メンバーに関する情報のコレクションを返します。
LookupSPPrincipal ユーザー SP プリンシパル (プリンシパルとはアクセス許可を割り当てられる SharePoint のユーザーまたはグループです) に関する情報を返します。 LookupSPPrincipalId ユーザー 指定されたユーザー名に一致するプリンシパル ID を返します。
アクティビティ カテゴリ 説明
LookupSPPrincipalProperty ユーザー 指定された SP プリンシパルの指定されたプロパティの値を返します。 LookupSPUser ユーザー 指定されたプリンシパル ID に一致するユーザーの情報を返します。
LookupSPUserProperty ユーザー 指定された SP プリンシパルに一致するユーザーの、指定されたプロパティの値を返します。 Email ユーティリティ 電子メール メッセージを SharePoint サイトのユーザーに送信します。
GetCurrentItemGuid ユーティリティ ワークフロー インスタンスが実行されている SharePoint リスト アイテムの GUID プロパティを返します。 GetCurrentListId ユーティリティ ワークフロー インスタンスが実行されている SharePoint リストの ID プロパティを返します。 GetHistoryListId ユーティリティ 履歴リストがワークフロー関連付けに対して指定されている場合、ワークフロー インスタンスの履歴リストのID を返します。 GetTaskListId ユーティリティ 履歴リストがワークフロー関連付けに対して指定されている場合、ワークフロー インスタンスのタスク リストの ID を返します。 LookupWorkflowContextProperty ユーティリティ 指定されたワークフロー コンテキスト プロパティの値を返します。 SetField ユーティリティ 現在のアイテムにフィールドを設定します。 SetWorkflowStatus ユーティリティ 現在のリスト アイテムの指定されたフィールドに、指定されたテキストを状態として設定します。ワークフローで、リスト アイテムの任意の文字列フィールドの値を「ワークフローの状態」として設定できます。 TranslateDocument ユーティリティ SharePoint Translation Services を使用して、指定されたドキュメント ライブラリの指定されたドキュメントの変換済みコピーを作成します。 WebUri ユーティリティ ワークフローが含まれる SP Web の絶対 URI を返します。
App Catalog サイト SharePoint ホスト型 (SharePoint サブサイト: SharePoint 機能+ HTML+JavaScript) プロバイダー向けのホスト型 (社内 IIS Web サイト / Azure:
ASP.NET + クライアント オブジェクト モデル)
購入
独自 App の登録
アプリの追加
App Web
(いずれかの形式)
生成
Web パーツ表示 (iFrame) ページに アクセスOR
認証連携・ データ取得・操作ホスト Web
SharePoint サイト
オンライン
SharePoint ストア
JavaScript オブジェクト モデルの利用 クライアント オブジェクト モデルの利用 (.NET) ASP.NET としての コーディング アプリ用の SharePoint カスタム リストの作成や、 ホスト Web への リボン メニューなどの追加 プロバイダー向けの ホスト型(独立したホスト) ○ ○ ○ × SharePoint ホスト型 ○ × × ○
使い分け
•
プロバイダー向けのホスト型
•
独立した ASP.NET アプリとしての開発に向く
•
.NET クライアント オブジェクト モデル を通じたホスト Web の SharePoint と連携が可能
•
SharePoint ホスト型
•
SharePoint のリストやホスト Web へのリボン メニューの追加など
宣言型の機能の展開ができる
•
ただしカスタムのページなどでは、.NET コードでの実装はできず、
HTML、JavaScript での実装が必要
新規プロジェクトで、
App for SharePoint 2013 を選択
テスト用の SharePoint サイトと
自分宛の回覧一覧表示Webパーツ 回覧表示画面 -ボタン押下により参照確認可能-回覧一覧表示ビュー