PaperWorkerについてもう少し具体的にメモ。

もう少し具体的なPaperWorkerの構成についてメモしておきます。自分がブレないように。

PaperWorkerは「シンプルな事務処理のビジネスロジック」に特化したシステムです。
H2Databaseを組み込みのRDBとしてデータストアに使用していますが、多分JDBCであれば何でもOK(のはず)です。

システムは、複数の「job」とそれにぶら下がる複数の「action」から構成されます。
jobとactionは次のようなイメージです。

job一つの業務。各種マスタのメンテナンスやら、出退勤時刻入力、休暇申請、通勤変更届等々。
actionjobに対して実行可能な機能。全てプラグインとして提供される。ロールによって実行権限の制約を付与する(予定)。

実際に使えるjobとactionは、設定として登録することで提供されます。
これらの設定情報もRDBに登録されます。(ちなみに、jobとactionの登録も、プラグイン機能を使用しています。)

また、「標準action」をいくつか提供する予定で、これらは設定で対象となるデータ(実際にはBeanのクラスパス)を指定できるようになっています。
そのため、典型的な機能であれば新たなactionクラスを実装せずとも、新しい業務を追加することが可能です。
標準機能だけで実現できない複雑な機能が必要になった場合のみ、専用のactionクラスを実装すればOKです。

現在、「標準action」は次の12種を実装するつもりでいます。

基本機能新規追加新規文書を登録する。実装済
更新既存文書を変更する。実装済
削除既存文書を削除する。実装済
詳細表示1つの既存文書の内容を表示する。実装済
一覧表示複数の既存文書のサマリーを表示する。実装済
承認機能承認依頼文書の承認を指定した人物に依頼する。未実装
承認承認依頼された文書を承認する。未実装
却下承認依頼された文書を却下する。未実装
帳票機能印刷文書を指定されたフォーマットで印刷する。未実装
Export文書を指定されたフォーマットの電子ファイルに出力する。未実装
通知機能リマインダー文書に対し所定のアクションが実行された場合、関係者に通知する。未実装
コメント機能コメント既存文書に対してコメントを付与する。未実装


というわけで次から承認機能についてメモ。