Wednesday, April 20, 2016

Alfresco Community Edition 5.1の新機能を見てみよう

こんにちは。大谷です。

今回は、Alfresco Community Edition 5.1の新機能について紹介します。既にAlfresco勉強会の方で「Alfresco Community 5.1.e 機能紹介」という発表があって、GUI上でのモデル定義とスマートフォルダ機能については触れられていますが、ここではそれ以外の変更点についても紹介したいと思います。

なお、インストール方法については「Alfresco Community Edition 5.1をインストールしてみよう」という記事を見てみてください。


今回使っているバージョンは?


2016/02/17にリリースされたAlfresco Community Edition 5.1.eというバージョンです。Community 5.1.x系の最新版であり、かつ初のGA(Generally Available)版となります。

実は、5.1系からバージョンの呼称が変わっていて、201508_EA(Early Access)、201509_EA、201510_EA、201512_EA、201602_GAとバージョンを重ねてきました。そして、それぞれが内部的にはこれまでの命名規則と同じ5.1.a、5.1.b、5.1.c、5.1.d、5.1.eというバージョン番号が振られています。というわけで、5.1.e = 201602_GA版ということになります。


新機能の前に、出来なくなったこと


大きく2つの機能が落ちています。1つはNFS、もう1つはjBPMです。

ファイルサーバ機能としてNFSが利用できなくなった

AlfrescoはFTP、CIFS、WebDAV等のファイルシステムアクセス機能を持っていますが、これまで利用できたNFS機能が標準機能から外れました。ただ、ソースコードはGitHub上に公開されているので、それをビルド/パッケージングすることで引き続きNFS機能を利用することはできるようです(未検証ですすいません…)

ワークフローエンジンとしてjBPMを選択できなくなった

これまでもjBPMはオプション扱いで、alfresco-global.propertiesで設定変更することで利用できましたが、5.1からはalfresco-global.propertiesで設定することもできなくなりました。完全にActivitiに移行したということになります。しかし、Spring bean定義が生きていることや、jBPM関連のjarファイルが相変わらず同梱されているところを見ると、Spring beanの設定を変更することで相変わらずjBPMを利用できるかもしれません(こちらも未検証ですすいません…)


5.1で出来るようになったこと


次に、Alfresco Community Edition 5.1の新機能を挙げていきます。これまで幾度となく要望があがっていてやっと実現したもの、Alfresco Explorer(=過去の遺物)でしか操作できなかったものがやっとAlfresco Shareに実装されたものなど、大小様々なエンハンスメントがありましたが、ここでは主要なものをいくつか挙げたいと思います。


スマートフォルダ機能

まずは、スマートフォルダから紹介します。スマートフォルダとは、指定した切り口(条件)に合致したコンテンツを仮想的なフォルダに表示する機能です。よく仮想フォルダなどと呼ばれています。データベースでいうところのビューみたいなものかと思います。まず、この機能を使うためにはAlfrescoの設定を変更する必要があります。<tomcat_dir>/shared/classes/alfresco-global.propertiesで、以下のようにスマートフォルダの設定をtrueに変更します(デフォルトでfalseとなっています)。

smart.folders.enabled=true

Alfrescoを再起動したら、管理者でログインして「リポジトリ」から リポジトリ/データディクショナリ/スマートフォルダテンプレート フォルダに移動し、ここにjson形式で書かれたテンプレートファイルをアップロードします(今回はデフォルトで入っているsmartFoldersExample.jsonを利用します)。テンプレートファイルをアップロードしたらコンテンツ詳細画面の「タイプの変更」でコンテンツタイプを「スマートフォルダテンプレート」に変更してください。


以上でスマートフォルダのテンプレート登録が終わりました。続いて、テスト用にフォルダを作り、フォルダ詳細画面の「アスペクトの管理」から「システムスマートフォルダ」アスペクトを追加します。すると、フォルダのプロパティ編集画面にテンプレート設定欄が表示されるので、適用するテンプレートを選択して保存します。


では、スマートフォルダテンプレートを設定したフォルダを見てみてください。メガネアイコンの付いたフォルダが表示され、そのフォルダ内に指定の条件に合致するコンテンツが表示されているはずです。


この機能、従来はAlfresco Workdeskという製品で実現されていたのですが、Workdeskの開発が終わったためか、Alfrescoの標準機能として搭載されました。要望としてよく伺っていた機能なので(特に競合製品で出来て標準のAlfrescoではできていなかった)、Alfrescoの適用範囲というか利用シーンがググッと広がるんじゃないかなと思っています。


GUI上でのモデル定義機能

これも大きなエンハンスメントですが、Alfresco Shareの管理画面上からカスタムモデルを定義できるようになりました!これまでも、Data Dictionaryフォルダ以下にモデル定義のxmlファイルをアップロードして動的にモデル定義を読み込ませることはできましたが、
  • モデル定義をxmlで記述しなくてはならない
  • Alfresco Shareのフォーム定義(要Alfresco再起動)を別途行わないとAlfresco Share上でカスタムプロパティが表示されない
という状況でした。Alfresco 5.1からは、カスタムモデル定義が管理画面上の操作で完結するようになります。

以下、簡単にカスタムモデルの定義方法を見ていきます。まず、管理者でログインし、「管理ツール」→「モジュールマネージャ」に移動して「モデルの作成」をクリックします。ここで、カスタムモデルの情報を入力します。


次に、作成したカスタムモデルを開き、「カスタムタイプの作成」もしくは「アスペクトの作成」をクリックし、タイプもしくはアスペクトの情報を入力します。


続いて、作成したカスタムタイプもしくはアスペクトを開き、「プロパティの作成」をクリックし、プロパティを追加します。名前やラベル、データ型の他、必須か否か、複数値、デフォルト値、制約、インデックス種類を設定することができます。


必要なプロパティを追加し終わったら、アクションの「レイアウトデザイナー」をクリックします。

ここで、Share上での表示フォームを設定します。「デフォルトのレイアウトを適用」をクリックすると標準的な表示レイアウトを作ってくれるので、それをベースに調整するのもよいかもしれません。なお、このステップは必須で、レイアウトを保存しないとカスタムモデルが有効になりません。


必要なモデル定義が完了したら、カスタムモデルのアクションから「有効化」をクリックすることでモデルを有効にすることができます。エクスポートを実行すると、モジュールとしてパッケージングされたモデル定義/フォーム定義を取得することができます。GUIベースでモデル定義を進めて、エクスポートした定義ファイルで詳細を調整する、というようなモデル定義の進め方もできるうえ、モデル定義の可搬性も高くなって嬉しい事ずくめです。


以上でカスタムモデル定義が使えるようになります。適当なコンテンツの「タイプの変更」をクリックすると、先ほど追加したモデルが選択できるようになっているはずです。


ホームページ指定機能

ログイン後に○○のページに遷移してほしいという要望は結構あって、これまでは都度カスタマイズで対応していたのですが、この機能を使うとユーザ毎に自分の好きなページをホームページに指定して、ログイン直後に表示することができます。


「解凍先(Unzip to)」アクション

これも、Alfresco Explorerで出来ていた機能がAlfresco Shareで実現されたパターンになります。Alfresco上にアップロードされたZIPファイルもしくはACP(Alfresco Content Package)ファイルを、指定したフォルダに展開する機能です。ルールのアクションとしては既に実装されていたのですが、ZIPファイルもしくはACP ファイルのアクションから直接実行できるようになりました。



「所有者になる(Take Ownership)」アクション

これまでAlfresco Explorerで出来ていたコンテンツ所有権の取得をAlfresco Shareで実行できるようになりました。コンテンツ所有権は権限管理上地味に重要な概念で、コンテンツ所有者はそのコンテンツに対して特別な権限が与えられています。しかし、Alfresco 5.0からAlfresco Explorerが廃止となり、コンテンツ所有権をGUI上で操作できない状況になっていました。

Admin Consoleでのノードブラウズと管理

Alfresco Community Edition 5.0系の後半から、Enterprise Edition限定だったAdmin Consoleの一部がCommunity Editionにも開放されました。 http://localhost:8080/alfresco/s/admin/ にアクセスすると、Admin Consoleにログインすることができます。モデル/テナント/ワークフローの各コンソールが利用できる他、ノードブラウザを利用することができます。Alfresco Shareにもノードブラウザがあるのですが、Admin Consoleではノードに対して以下のような操作を行うことができるようになりました。
  • ノードの削除
  • ノードの強制削除(アーカイブせずに削除)
  • 所有権の獲得
  • 権限を元に戻す
  • ノードの復元(アーカイブされたもののみ)
  • ノードプロパティの削除


さいごに


以上が、Alfresco Community Edition 5.1の新機能になります。是非みなさんもAlfresco Community Edition 5.1をインストールして、これらの新機能を確認してみてください。


No comments: