# パッケージ org.opengion.fukurou.process

package org.opengion.fukurou.process

このドキュメントは、バッチフレームワーク『ふくろう』の ＡＰＩ 仕様です。

     ２．基本設計
       （２）機能概要説明
         ３．バッチ処理フレームワーク
           【概要】
               大量データの登録や抜き出しなど、バッチ的な処理を行うフレームワークを作成します。
               このフレームワークに、基本機能の実装と、各種システム固有機能の実装が簡単に
               行えるように、プラグイン方式を採用します。
               なお、このフレームワーク単独での採用は検討していません。エンジンとしては、
               一体として扱います。

           【効果】
               簡易的なバッチ（あるDBから抜き出して、別のDBに登録するなど）や、ファイルからの
               入出力などが、簡単に作成できるようになります。
               将来的には、統合サーバー機能を充実させることで、PL/SQLの代わりにJavaで
               業務アプリケーションを作成していく事が可能になります。

           【機能】
               １．バッチ共通のMainProcess で、各Process クラス を数珠繋ぎに処理していきます。
               ２．処理の開始は、FirstProcess クラスより始めて、順次、ChainProcess実装クラスで
                   処理を継続します。
               ３．FirstProcess クラス の next() で、次の行が存在するかどうかを判断します。
                   以降の ChainProcess では、LineModel が null かどうか判断して、継続処理を行うか
                   どうかを決定します。
               ４．MainProcess の拡張機能(ログ方式など）をサブクラスで与えます。

        org.opengion.fukurou.process (classes)
           → org.opengion.fukurou.db                            classes
           → org.opengion.fukurou.mail                          classes
           → org.opengion.fukurou.model                         classes
           → org.opengion.fukurou.security                      classes
           → org.opengion.fukurou.system                        classes
           → org.opengion.fukurou.util                          classes
           → org.opengion.fukurou.xml                           classes

- Related Packages
  パッケージ
  説明
  org.opengion.fukurou
  このドキュメントは、夜間バッチ『ふくろう』の ＡＰＩ 仕様です。
- クラス
  説明
  AbstractProcess
  AbstractProcess は、ChainProcess インターフェースを実装した、Abstract クラスです。
  ChainProcess
  ChainProcess は、バッチ処理サブクラスの共通インターフェースです。
  FileLineModel
  FileLineModel は､LineModel を継承した ﾌｧｲﾙﾘｽﾄ専用の LineModel の実装ｸﾗｽです｡ FileLineModel ｵﾌﾞｼﾞｪｸﾄには､ﾌｧｲﾙ属性(Level,File,Length,Modify,LineCnt,Biko,MD5) が設定されます｡ ｵﾌﾟｼｮﾝで､FILEPATH,ADDRESS,FILENAME 属性を文字列で準備できます｡(6.3.1.0 (2015/06/28)) ADDRESS は､指定ﾌｧｲﾙの親ﾌｫﾙﾀﾞ｡FILENAME はﾌｧｲﾙ名｡FILEPATH は､ﾌｧｲﾙ名を含む 完全なﾌｧｲﾙﾊﾟｽになります｡ ※ 6.3.1.0 (2015/06/28) FILEPATH,ADDRESS,FILENAME 属性追加 この､新しい属性に､値をｾｯﾄする場合は､useFilePath="true" をｾｯﾄしてください｡ ※ 6.3.1.1 (2015/07/10) Modify のﾌｫｰﾏｯﾄ(modifyForm)を､指定可能にします｡ これは､Date型のまま､扱いたい所だが､文字列化しています｡ 初期値は､"yyyy/MM/dd HH:mm:ss" です｡ LineCnt と､MD5 は､それぞれ､計算するかどうかのﾌﾗｸﾞを設定する必要があります｡ ※ useLineCnt=false の場合のLength(文字数)は､File#length() ﾒｿｯﾄﾞで求めます｡ 一方､useLineCnt=true にすると､行単位に､String#length() を加算するため､ 先のLength(文字数)値とは異なりますのでご注意ください｡ omitCmnt=true にすると､ｺﾒﾝﾄ部分を削除した行数と文字数を求めます｡ これは､/* から */ の間､// から改行までです｡ ただし､"(二重引用符)で囲まれた文字列は､ｺﾒﾝﾄとみなしません｡ 8.1.0.4 (2022/01/28) さらに､各行の空行はｶｳﾝﾄに含めないことにします｡ ﾃﾞｰﾀの１行分を FileLineModel に割り当てます｡ ｶﾗﾑ番号は､0 から始まります｡ｶﾗﾑ名よりｶﾗﾑ番号を求める場合に､ 存在しない場合は､-1 を返します｡ ｶﾗﾑ番号が -1 の場合は､処理を行いません｡ 注意：このｸﾗｽは､同期処理されていません｡
  FilterOperation
  フィルター条件のオペレーションの列挙型です。
  FirstProcess
  FirstProcess は、バッチ処理サブクラスの共通インターフェースです。
  HybsProcess
  HybsProcess は、バッチ処理サブクラスの共通インターフェースです。
  LineModel
  LineModel は、データの１行分を管理する為の TableModel と類似の実装クラスです。
  LineModelFilter
  LineModelFilter は、フィルター条件をチェックして、LineModel のフィルタリング を判定する実装クラスです。
  LoggerProcess
  LoggerProcess インターフェース は、AbstractProcess を実行する上で必要となる 各種パラメータを設定します。
  MainProcess
  MainProcess は、HybsProcess を継承した、ParamProcess,FirstProcess,ChainProcess の実装クラスを実行するメインメソッドを持つクラスです。
  ParamProcess
  ParamProcess インターフェース は、AbstractProcess を実行する上で必要となる 各種パラメータを設定します。
  Process_BulkQuery
  Process_BulkQueryは、データベースから読み取った内容を、一括処理する、 FirstProcess と、ChainProcess のインターフェースを両方持った、実装クラスです。
  Process_DBCountFilter
  Process_DBCountFilter は、データベースの存在件数でフィルタリングする ChainProcess インターフェースの実装クラスです。
  Process_DBFileout
  Process_DBFileout は、SELECT文 を指定し データベースの値を抜き出して、 個々のファイルにセーブする、ChainProcess インターフェースの実装クラスです。
  Process_DBMerge
  Process_DBMerge は、UPDATE と INSERT を指定し データベースを追加更新 する、ChainProcess インターフェースの実装クラスです。
  Process_DBParam
  Process_DBParam は、他のプロセスへ共通のデータベース接続を割り当てる為の、 ParamProcess インターフェースの実装クラスです。
  Process_DBReader
  Process_DBReaderは、データベースから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_DBWriter
  Process_DBWriter は、上流から受け取ったデータをデータベースに書き込む CainProcess インターフェースの実装クラスです。
  Process_FileCopy
  Process_FileCopy は、上流から受け取った FileLineModel を処理する、 ChainProcess インターフェースの実装クラスです。
  Process_FileFtp
  Process_FileFtp は、上流から受け取った FileLineModel を処理する、 ChainProcess インターフェースの実装クラスです。
  Process_FileSearch
  Process_FileSearch は、指定のフォルダ以下のファイルを一覧する、FirstProcess インターフェースと、ChainProcess インターフェースの実装クラスです。
  Process_Grep
  Process_Grep は、上流から受け取った FileLineModelから、文字列を見つけ出す ChainProcess インターフェースの実装クラスです。
  Process_GrepChange
  Process_GrepChange は、上流から受け取った FileLineModelから、語句を 置換する、ChainProcess インターフェースの実装クラスです。
  Process_GrepChangeExcel
  Process_GrepChangeExcel は、上流から受け取った FileLineModelから、語句を 置換する、ChainProcess インターフェースの実装クラスです。
  Process_LDAPReader
  Process_LDAPReaderは、LDAPから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_Logger
  Process_Logger は、画面出力、ファイルログ、エラーメールを管理する、 ロギング関係の LoggerProcess インターフェースの実装クラスです。
  Process_StringUtil
  Process_StringUtil は、上流から受け取ったデータをStringUtilクラスの特定の メソッドでデータ変換する、CainProcess インターフェースの実装クラスです。
  Process_TableDiff
  Process_TableDiffは、ファイルから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_TableFilter
  Process_TableFilter は、上流から受け取ったデータをフィルタする、 ChainProcess インターフェースの実装クラスです。
  Process_TableReader
  Process_TableReaderは、ファイルから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_TableWriter
  Process_TableWriter は、上流から受け取ったデータをファイルに書き込む CainProcess インターフェースの実装クラスです。
  Process_XSLT
  XSLT変換結果を指定のファイルに出力します。