はじめに
CMISとはContent Management Interoperability Serviceの略称で、コンテンツ管理の標準規格です。CMIS準拠のコンテンツ管理ソフトウェアは、「Alfresco」だけでなく「EMC Documentum」「IBM FileNet」「Microsoft SharePoint」など、多くのソフトウェアが存在します。
今回利用したAlfrescoは、世界中で多くの実績があるオープンソースのエンタープライズ・コンテンツマネジメント(ECM)です。
JIRAでダイアログを表示し、Alfrescoのドキュメントをファイル名またはドキュメント内のコンテンツからキーワード検索して、一致したドキュメントを一覧で表示する簡単な機能(図1および図2)を、JavaScriptライブラリであるjQueryとCmisJSを利用することで実現します。
開発環境
今回はJIRA 7.2とAlfresco 5.1を利用していますが、セットアップの手順については記載しません。
- CentOS 6.4(今回はこのバージョンで確認しました)
- JIRA 7.2
- Alfresco 5.1
JIRAからAlfrescoのドキュメントを検索する機能を動作させてみる
はじめに、jQueryとCmisJSで実装されたJavaScriptをChrome DevToolsで簡単に確認します。
まず、JIRAとAlfrescoへのアクセス確認をします。Chromeからアクセスしてログインできることを確認してください。今回、私の手元で用意したJIRAとAlfrescoのURLは以下の通りです。
ソースコードの以下の変数を先ほど確認したAlfrescoのURLとユーザー名、パスワードに合わせて編集します。変数のurl_cmisbrowserで定義されたURL末尾の「/cmisbrowser」はCMIS APIのエンドポイントとなります。
var url_cmisbrowser = 'http://demo.atlassian/alfresco/cmisbrowser'; var url_sharedetails = 'http://demo.atlassian/share/page/document-details?nodeRef='; var username = 'admin'; var password = 'zaq12wsx';
JIRAとAlfrescoのURLが異なる生成元(プロトコル、ドメイン、ポート番号の三つを合わせたもの)の場合、ブラウザの同一生成元ポリシー(Same Origin Policy)によってJIRAからAlfrescoへの接続がうまくいきません。その場合は、Alfrescoの設定ガイド for クロスドメイン(CORS)を参照してください。
JIRAのダッシュボードを表示して、Chromeの[Console]パネルを表示してください。ダッシュボード以外では正しく動作しない場合があります。
[Console]パネルが表示できたら、ソースコードをそのまま貼り付けてEnterを押してください。JIRAからAlfrescoへの接続が問題なければ図1のように検索アイコンがプロファイルの右側に表示されます。問題がある場合は、[Console]パネルに「レポジトリのロードが失敗しました。」というメッセージが表示されます。その場合はAlfrescoのURLとユーザー名、パスワードが正しいかどうかもう一度確認してください。
問題なければ、検索アイコンをクリックしてダイアログを表示してください。表示されたらダイアログの検索ボックスにキーワードを入力して、Enterキーを押下するか[Search]ボタンをクリックします。キーワードに一致したAlfrescoのドキュメント一覧がダイアログに表示されるはずです。
ここまでChromeでの動作確認が取れたら、JIRAのお知らせバナーにソースコードを埋め込んでみましょう。
まず、JIRA管理者でログインして[システム]→[ユーザーインターフェース]→[お知らせバナー]を表示します。[お知らせ]の入力欄にソースコードを貼り付けて、先頭に<script type="text/javascript">、最後に</script>を追加します。終わったら[バナーの設定]ボタンをクリックして保存してください。
最後にJIRAのダッシュボードを表示して、検索アイコンからAlfrescoドキュメントを検索できるか確認します。
今回の紹介は、あくまでもJavaScriptによるCMIS APIの確認に焦点を絞っているため、ユーザー認証で利用するユーザー名とパスワードはソースコードに直接埋め込む形で実現しています。この認証情報はユーザーが参照することができてしまうため、プロダクション環境でのご利用はお控えください。