ブックマークレットでリストに更新情報(ページタイトルとURL)を投稿する

SharePointでコンテンツの更新情報を扱おうと思えば、一番手頃なのは通知機能(メール)です。ただ通知ははあくまで「プル」型ですので、「プッシュ」型であればワークフローでメールを飛ばすのが常套手段でしょう。また、コンテンツクエリWebパーツを利用したり(サイトコレクションは跨げませんが)、代わりに情報集約アドオン製品を活用する方法もあります。

しかし、これらは何れも担当者にある程度の自由/権限があることが前提です。通知はメール送信がサーバ側で構成されていなければ利用できません。ワークフローも.Netフレームワークが必要です。CQWPはサイトコレクションで発行機能をアクティブにする必要がありますし、アドオンはもちろんサーバ管理権限が必要です。

担当者がエンドユーザ部門寄りで、これらが全て不可の場合、どうしたら良いでしょうか?

あくまでひとつのアイデアですが、「更新情報掲示板(リスト)」をポータルトップに設け、そこに情報の更新を通知したい人は都度アイテムを投稿する…というのはどうでしょう。自動でない代わりに「通知」にありがちなノイズは軽減されます。

あながち悪くないかも…と思いますが、しかし、まあ現実問題として、すべてのエンドユーザにこの作業を期待するのは無理でしょう。面倒ですから(苦笑)

そこで(ここからがようやく本題)、更新情報をワンタッチで投稿できれば良いのでは?と考えました。それなら後は「やること」という業務指示でなんとかなりそうです。

仕組みはシンプルです。更新した画面を開いて、ブックマークレット(お気に入りバーに登録したブックマークにスクリプトを仕込んだもの)をクリックすると、そのページのURLとTITLEを取得して、それを指定された掲示板にWebサービス経由で新規アイテムとして投稿します。

まず、掲示板を作成します。

次に実際の情報取得→投稿処理を行うスクリプトを作成。適当なライブラリにアップしておきます。実際のサンプルファイルはこちら send_updated.js ですが、もし利用される場合には、投稿先掲示板の情報は適宜、変更する必要があります。

ブックマークレット用のスクリプトはこちら。こちらも、実際には最後の方のURLを、上で配置したファイルのURLに変更する必要があります。

javascript:function loadScript(scriptURL) { var scriptElem = document.createElement(‘SCRIPT’); scriptElem.setAttribute(‘language’, ‘JavaScript’); scriptElem.setAttribute(‘src’, scriptURL); document.body.appendChild(scriptElem); } loadScript(‘http://vsrv02/Documents/send_updated.js‘);

このスクリプトをブックマークレットにします。とは言っても特別なことはなく、お気に入りのURL(リンク先)をこのスクリプトに変更するだけです。

これで完成です。適当なアイテムを開いてブックマークレットをクリックすると

問題なければ、完了メッセージが表示されます。

掲示板を確認してみます。

本文はこんな風です。
当然、リンクをクリックすると元情報が開きます。

どうでしょうか。あとはこの掲示板をWebパーツとしてサイトに配置するだけです。

この例はSharePoint 2007ですが、内側の仕組みは SharePoint 2010でも変わらないので、利用できるはずです。

ただ、この方法だと、ライブラリに登録された「ファイル」は直接開いてしまうとブックマークレットをクリックできないので(当然ですが)、プロパティ画面を開いてそこでブックマークレットを押下する、などの必要が有りそうです。

なお、毎度の通り、サンプルは野良スクリプトですので完全な動作を保証しません。実運用される際は、御社の開発者の方に書き直して頂くことを強くお勧めします。(そして是非、フィードバックをお寄せください(笑))


Author

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