Nintex Workflow活用テンプレート : SharePointで施設・備品予約

施設・備品予約管理は、Microsoftの製品構成上はExchange/Outlookの領分です。しかし、Exchangeが導入されていても、それで「すべての」予約管理を行うのは案外、現実的ではありません。

理由は簡単で、Exchangeはエンタープライズ(全社レベル)システムですが、会議室やプロジェクタの管理はむしろローカル(現場部門)のニーズだからです。実際問題、すべての事務所の会議室や貸出備品がExchageに登録されたら、すこし大きな規模の会社では相当な数になります。そこから探すのは一苦労です。

そのため、施設・備品予約管理をSharePointで出来ないのか?というニーズは少なくありません。しかし、上記の製品構成上の理由から、SharePointはこれが苦手です(仕様的に考慮されていない)

SharePoint(標準機能)の限界

SharePoint2007、SharePoint2010のリストを利用して施設・備品予約管理を行う場合、大きく二つの問題があります。1.二重予約ができてしまう2.予定を一覧比較するGUIがない

まず、リストには「予約登録が重複していないかを確認する機能」がないため、バッティングを防ぐことができません。作成日時の後先でどちらが「有効」な予約かを判定することは可能ですので、少人数であればこれでも運用できますが。グループや部門を跨って利用する場合は難しいでしょう。

なおSharePoint2010には特殊なアプリケーションテンプレート「グループボード」があり、これを利用したサイトのみ、重複予防機能が実装された「施設予約」リストを利用できます。しかしビルトインのためこまかな要件に対応できない、そもそも「グループボード」テンプレート内でしか利用できない(既存のサイトは不可)など制約が少なくありません。

次に、複数の施設や備品がある場合、その予約状況を横(あるいは縦)並びで比較することが難しい。ひとつの予定リストで管理した場合、カレンダービューは「存在する予定」を示すため、「どこ/どれが空いているのか」を把握するのが困難です。複数のリストに分けた場合は、ひとつひとつ開いて確認するしかなく、お世辞にも便利とは言えません。

そこで、SharePointのアドオン製品である「Nintex Workflow」を活用した解決方法をご提案します。Nintex以外はすべてSharePointの標準機能で、SharePoint2010およびSharePoint2007に対応します。日本ではリアルコム社様がお取扱いです。

※なお、NintexはあくまでSharePoint Workflow Foundation上におけるGUIベースのワークフローエディタのため、Nintexで実装できるワークフローは、基本的にすべてVisualStudioによる個別開発が可能です。Nintexを未導入で本テンプレートに関心をお持ち頂いたお客様は弊社までご相談ください

Nintex Workflow を活用した施設・備品予約管理サンプル

まず、管理者が、設備や備品の数だけ、テンプレートからリストを作成します。このテンプレートはカスタムリストに列を設定したもので、特殊なカスタマイズは一切行われていません。

Nintex Workflow でデザインしたワークフローを適用します。

ユーザが予約を登録・変更するとワークフローが予約の整合性(日付指定の妥当性)と、そして重複予約の存在を確認します。問題がなければそのまま予約が登録されますが、そうでない場合、「保留」ステータスになり、担当者に警告メールが送信されます。

これにより、矛盾した指定(開始時刻>終了時刻)や、管理者が意図しない時間帯の予約、既存予約との重複を避けることができます。

次に、サイトにコンテンツエディタWebパーツを配置し、HTML+Javascript+CSSからなるソースを挿入します。ユーザがページにアクセスすると、管理者が指定した予約リストから情報を抽出し、一般的な横棒図で表示します。

日付の直接指定、インクリメント(翌日)、デクリメント(前日)、今日へのジャンプに対応しています。

仕様概要と制約およびメリット

・予定表にアイテム新規/更新でNintexが動作し、日付チェック。重複チェック。
・問題がなければ登録。さもなくば保留して警告メール。
・Javascriptで標準Webサービスlists.asmxを利用して各リストをクエリ。
・クエリ結果からHTMLを生成してDOMで描画。

まず、このサンプルはieでしか正常に動作しません。ただ、これはあくまでJavascriptとcssにおける一般的なクロスブラウザ問題のため、修正は容易です。

また、Javascriptによる描画部分は、あくまでサンプルのため、必要最低限の機能しか実装されていません。例えば横棒をクリックすると、個々のアイテムでなく予定リストが開きます。カレンダーからの日付指定や、ドラッグによる予定登録には対応していません。こうしたより「リッチな」GUIを実現するには、専用のWebパーツを開発するか、Flash/Silverlight等で実装する必要があります。

より本質的な問題として、予約を登録(保存)する前に、その予約に問題/重複があるか無いかを確認できないことはやはり不便です。このチェックを行うには、機能を実装した専用のリストテンプレートの開発が必要です。

このサンプルでは「次善の策」として、ワークフローによる保存後の確認を行っています。

しかし、Nintexによる「事後確認」には大きなメリットもあります。それは、判定ロジックを管理者が柔軟に組むことができる点です。例えば「この会議室は管理担当者の承認を要する」「この会議室は60日先までしか予約できない」「この備品に限り貸出時に予算コードを入力しなければならない」等々、現場運用にありがちなローカルルールを、個別に織り込むことが容易です。

動作の動画サンプルはこちら

サンプルテンプレートのご提供

SharePoint Maniacsでは、この事例のサンプル資材(SharePointリストとNintexのテンプレート+簡単な導入手順)をご提供しています(有償)。

40,000円(税別)

なお、本テンプレーはあくまで「サンプル」です。弊社環境で動作確認済ですが、お客様環境での完全な動作を保障するものではありません。本プレートの導入やカスタマイに関するご支援は別途お見積もりさせて頂きます。

本テンプレートに関するお問い合わせ、お見積もりのご依頼は[お問合わせ]から。またNintexWorkflowは弊社で直接のお取り扱いはしておりませんが、基本的なご質問であれば承れます。

Nintex Workflow活用テンプレート : SharePointで施設・備品予約
Nintex Workflow活用テンプレート : サイトコレクションの管理担当とクォータ(容量制限)を一元管理する
Nintex Workflow活用テンプレート : アイテム/ファイル保存時に自動的にアクセス権を設定する
Nintex Workflow活用テンプレート : ユーザによる登録情報の点数づけ(レイティング)
Nintex Workflow活用テンプレート : PscanServ と連携し自動PDF化。「ダウンロード禁止」を実現
Nintex Workflow とは 「The SUPER SharePoint Designer」


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9