CodeZine(コードジン)

特集ページ一覧

JIRA SoftwareをCMIS準拠のコンテンツ管理ソフトウェア「Alfresco」と連携させて情報共有をさらに活性化!

JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

CmisJSについて

 Alfrescoと連携する際に利用できるAPIの一つに、OASISが開発した文書管理システムのオープン標準であるCMIS APIがあります。このAPIを利用するとAlfrescoだけでなく、Microsoft SharePointやDocumentumといったCMISに準拠した文書管理システムとも連携することが可能になります。CMISのクライアント実装として有名なのはApache Chemistryというプロジェクトのライブラリです。このライブラリではJavaやPython、.Netといった言語で開発することができますが、今回はより簡単にCMISの動作を確認するためにJavaScriptで実装可能なCmisJSというオープンソースのライブラリを利用して実現してみました。以下に今回作成した機能のソースコードを交えて、簡単な利用方法を記載します。

CMIS APIでセッションを作成する

 先ほど動作させたソースコードの中から、Alfrescoに対してCMISのセッションを作成する部分を説明します。

CMIS Sessionの使用例
    var url_cmisbrowser = 'http://demo.atlassian/alfresco/cmisbrowser'; // (1)
    var url_sharedetails = 'http://demo.atlassian/share/page/document-details?nodeRef=';
    var username = 'admin';
    var password = 'zaq12wsx';

    var session = cmis.createSession(url_cmisbrowser);  // (2)

    session.setCredentials(username, password);  // (3)

    session.loadRepositories().ok(function (data) {  // (4)
        console.log(data);
    }).notOk(function(res) {
        console.log("レポジトリのロードが失敗しました。");
        console.log(res);
    });

 (1) AlfrescoのCMISエンドポイントを指定します。

 (2) CMISのエンドポイントからセッションを作成します。

 (3) Alfrescoへ接続する際の認証情報をセッションに設定します。ここで指定するアカウントはAlfrescoへログインできるユーザーである必要があります。

 (4) CMISのセッションでレポジトリ情報をロードします。このロードが成功して初めてCMIS APIを利用してレポジトリに対してドキュメントやフォルダの操作が可能になります。

CMIS APIでファイルを検索する

 次に、生成したセッションを利用して、Alfrescoからドキュメントのコンテンツ内とファイル名をキーワードで検索し、結果を表示する部分を説明します。

CMIS Sessionの使用例
    $("#demo-dialog-submit-button").on("click", function(e) {
        e.preventDefault();
        $('#demo-table').find('tbody').empty();
        var keyword = $("#demo-search").val();
        var query = "SELECT * FROM cmis:document WHERE CONTAINS('\"" + keyword + "\" OR cmis:name:\"" + keyword + "\"')";
        var searchAllVersions = false;
        var maxItems = 10;
        session.query(query, searchAllVersions, { maxItems: maxItems }).ok(function (data) {  // (1)
            $.each(data.results, function(i, doc) {  // (2)
                $('#demo-table').find('tbody').append(  // (3)
                    '<tr>'+
                        '<td headers="name"><a href="' + url_sharedetails + doc.succinctProperties['cmis:versionSeriesId'] + '">' + doc.succinctProperties['cmis:name'] + '</a></td>'+
                        '<td headers="mimetype">' + doc.succinctProperties['cmis:contentStreamMimeType'] + '</td>'+
                        '<td headers="length">' + doc.succinctProperties['cmis:contentStreamLength'] + '</td>'+
                    '</tr>'
                );
            });
        });
    });

 (1) Alfrescoに格納されているドキュメントを検索する場合はqueryというメソッドを利用します。以下の条件で検索しています。

  • 第1引数:検索対象はドキュメントのコンテンツ内とファイル名(cmis:name)に指定されたキーワードが含まれるドキュメントとするようにCMIS Statementを指定する。
  • 第2引数:検索対象は最新のバージョンのみとする。
  • 第3引数:検索結果は最大で10件取得する。

 (2) 検索結果からドキュメントが格納されているArray型のresultsを1件ずつループで取得しています。他にも「hasMoreItemsに検索結果が存在するか否か」「numItemsで検索結果の件数」といった情報が返却されます。詳しくは図4を参照してください。

図4 取得内容
図4 取得内容

 (3) ドキュメントのファイル名(cmis:name)、MimeType(cmis:contentStreamMimeType)、ファイルサイズ(cmis:contentStreamLength)を取得してHTMLテーブルに行として表示しています。ファイル名はHTMLのリンクにして、該当のドキュメントをAlfrescoで表示できるようにしています。

おわりに

 このようにJIRAとCMIS準拠のコンテンツ管理ソフトウェアとの連携は簡単に実現できます。

 今回はAlfrescoを利用しましたが、それ以外のEMC Documentum、IBM FileNet、Microsoft SharePointなどとの連携も試してみてください。

 Atlassian社が開発するJIRAはプロジェクト管理やタスク管理、バグトラッキングツールとして世界中で有名なツールです。最近では業務プロセスを効率化する基盤としても活用されるようになりました。

 JIRAは「課題管理」「プロジェクト管理」「プロセス管理」ツールのため、コンテンツ管理機能は十分ではありません。例えば、大きなファイルを添付してしまうとJIRAに負荷がかかり、パフォーマンス低下を引き起こす原因になりかねません。「餅は餅屋」というように、「プロセス管理や課題管理はJIRAへ」「コンテンツ管理はAlfrescoへ」任せる利用方法が、お互いのツールにとって無理のない運用を実現させます。

 このように業務プロセス管理とコンテンツ情報を連携させることによって、「『デジタルトランスフォーメーション』にも通ずる変革に至るのでは?」と壮大な妄想をしつつ、最後にAtlassian製品とAlfrescoを連携させるアドオンを紹介したいと思います。

 リックソフト株式会社では、「Alfresco connector for JIRA」と「Alfresco connector for Confluence」の二つのアドオン製品を開発しています。

 JIRAやConfluence上でさまざまなファイルのPDFプレビューやフォルダ作成などができるだけでなく、動画再生やCADデータ、illustrator、Photoshopなどのファイルもプレビューできます。

 Atlassian製品に関するご相談は、リックソフト株式会社にご相談ください。

参考リンク

リックソフトはアトラシアン製品アジアパシフィック売り上げ第1位(2015~2016年)

 リックソフト株式会社は、日本でトップレベルのAtlassian Platinum Solution Partnerです。アトラシアン製品の専任技術者が30人以上在籍しており、手厚いサポートを提供しています。また、豊富なライセンス購入特典もご用意しております。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

バックナンバー

連載:JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術
All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5