SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

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

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人以上在籍しており、手厚いサポートを提供しています。また、豊富なライセンス購入特典もご用意しております。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術連載記事一覧

もっと読む

この記事の著者

熊井 亮輔(リックソフト株式会社)(クマイ リョウスケ)

 アトラシン製品の開発エキスパート、さまざまなアドオンや移行ツールなどを開発。主たる業務はコンサル、プロジェクト管理、開発など。アトラシン製品だけでなくオープンソースのECM製品「Alfresco」の認定技術者でもある。技術、普段の生活共に草食です。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

大塚 和彦(リックソフト株式会社)(オオツカ カズヒコ)

 マーケティング/ソリューション営業を担当。システム構築、プロジェクト管理が好きな営業!? 新しい技術・知識に出会い・習得するのが何より楽しい!好きなモノは「注文書」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10214 2017/10/02 19:07

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング