2020年3月28日土曜日

alfrescoの文書を文書作成日で並び替えたい

alfrescoに登録した文書を作成日順に並び替えたいと思い、bulkfsimportで、作成日を書き換えて対応しましたが、今後の運用を考えると、登録時に作成日を書き換えるルール設定を行えばいいのではないかと思い、試行錯誤しましたが、書換に成功しませんでした。
次に、カスタム属性を追加し、そこに入力することで可能となるのではないかと考え、一応成功したので記録を残します。

参考サイト
http://labo-blog.aegif.jp/2013/01/alfresco.html
 Alfrescoにカスタム属性を追加する - タイプとアスペクト
http://labo-blog.aegif.jp/2013/02/alfresco.html
 Alfrescoのカスタム属性(とアスペクト名、タイプ名とか)を日本語化する
https://www.slideshare.net/terajun/alfrescoui
 ドキュメントライブラリのUIカスタマイズ 

以上を参考に作成しましたが、ソートキーの多言語化については、分かりませんでした。
なお、以上の方法は、古いバージョンを対象としたもので、現在は、shareの管理ツールからモデルマネージャーを使用してカスタマイズできることが分かりました。しかし、ソートキーの追加については、やはり手動でカスタマイズするしかないようです。
また、一度上記のサイトを参考に、カスタム属性を作成し、customModel.xmlに設定したプロパティー名を書き換えたところ、エラーでプロパティーの編集ができなくなりました。一度作成したアスペクトは消去せずに、追加するしかないようです。

以上で作成したカスタムプロパティーをフォルダへアップロード時に記入するため、下記のようにルールを設定しました。

実行条件:アイテムがこのフォルダに作成または入力された時
すべの条件を満たす場合:すべてのアイテム
実行する処理:1.カスタムアスペクトを追加
       2.スクリプトを実行※

ファイル名に「ファイル名200101.pdf」と最後に作成日を表す6桁の数字をあらかじめ付加している場合
※スクリプトの内容
function main(){
var fileName = document.properties[ 'cm:name']; //ファイル名を変数に代入
var No = fileName.replace(/[^0-9]/g, ''); //ファイル名から数字のみ取り出す
var DateNo = No.slice( -6 ); //最後の6桁の数字のみ抽出
var Y = '20' + DateNo.slice( 0 , 2 ); //年を抽出し、4桁化
var M = DateNo.slice( 2 , 4 ); //月を抽出
var D = DateNo.slice( -2 ); //日を抽出
var Dt = new Date( Y + '/' + M + '/' + D) //日付に再構成 ISO8601形式へは自動で変換
document.properties[ '識別子:カスタムプロパティー名' ] = Dt;  //カスタムプロパティーへ代入
document.save(); 
}
main();

2020年3月6日金曜日

alfrescoの本番運用にあたって試行錯誤

docker-composeでのalfrescoの運用は、開発やテスト環境での運用が想定されています。実際、メモリの使用量が非常に大きく、windows10環境のhyper-vでは、ハングアップしたこともありました。何より、compose down やupでデータが消えてしまうため、volumeでの待避も試みましたが、dockerでの運用が想定されていないため、どこを待避すればいいか試行錯誤している内に、認証に失敗するようになり、docker-composeでの実運用は諦めました。

次にやはり、開発環境での運用が想定されていますが、単一ノードのKubernetesであるminikubeでの運用を模索し、インストールを試みましたが、alfrescoのイメージ取得で行き詰まり、また、docker-composeでも経験した、メモリ消費とデータ待避の困難さが解消されるわけではないため、これも諦めました。

最後にwarファイルを手動インストールする方法は、実運用も想定されており、最も可能性が高いため、alfrescoのドキュメントを参考に行いましたが、オレンジの画面を表示させるまでには至りませんでした。しかし、下記のブログで、インストール方法が細かく記載されており、一部変更した上で無事構築できました。

参考ブログ
https://rohhie.net/install-ubuntu-18-04-alfresco/

変更した点
データベース mariaDBを使用されていましたが、オーソドックスにPostgresqlを使用しました。インストール後、データベースの作成を忘れて、認証画面ではねられてしまいましたが、alfrescoドキュメントの通り、


create database alfresco encoding 'utf8';
create role alfresco LOGIN password 'alfresco';
grant all on database alfresco to alfresco;
以上を実行して、無事ログインできました。

次に、solrがエラーを出していたため、alfresco-search-servicesを再インストールしましたが、改善せず、構成を見直したところ、alfresco6.2系列からは、仕様が変更になっているためか、ssl接続関連の設定項目がデフォルトでオンになっており、
/alfresco-search-services/solrhome/templates/rerank/conf/solrcore.propertiesの記述で
alfresco.secureComms=none
(中略)
# ssl, default values
# keystore and trustore files are not provided by default

#alfresco.encryption.ssl.keystore.type=JCEKS
#alfresco.encryption.ssl.keystore.provider=
#alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore
#alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties
#alfresco.encryption.ssl.truststore.type=JCEKS
#alfresco.encryption.ssl.truststore.provider=
#alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore
#alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties

以上を実施して、非ssl環境でのalfrescoの構築ができました。 次にMS-officeとの連動を行うため、Alfresco Office Servicesの環境構築をめざし、ssl接続に挑戦したいと思います。