JSPカスタムタグをベースとした、Webアプリケーションフレームワークです。
SQLの知識さえあれば、データのCRUD操作をメインとした業務システムが
簡単に構築することができます。
このフレームワークは、村田機械株式会社の基幹システムを構築するために
開発され、ほぼ全ての基幹システムは、これを利用して構築し、稼動しています。
(基本機能)
・ユーザー管理 ・認証・アクセス制御
・多言語対応 ・Excel入出力機能
・ガントチャート表示、編集機能 ・定型帳票作成、発行機能
・定型メール送信機能 ・データベース定義管理機能
・バッチ処理機能
各種詳細情報及びドキュメントについては、openGion@Websiteを参照して下さい。
Java を含む標章は、米国 Sun Microsystems, Inc.の商標であり、同社のJava ブランドの技術を使用した製品を指します。
Excel は、Microsoft Corporationの米国及びその他の国における登録商標です。
コンテンツ中に記載された社名および製品名は、すべて各社の商標または登録商標です。
5.7.0.0 (2013/11/03)
[属性の空白文字削除]
5.6.9.4で対応したcheckNamesと同じ処理をおこなっている箇所で、
属性値から空白文字を削除する対応を行います。
hayabusa.taglib.ForwardTag#setKeys( final String key )
hayabusa.taglib.QueryTag#setCheckNames( final String nm )
hayabusa.taglib.TableUpdateParamTag#setOmitNames( final String nms )
[ガントヘッダー表示拡張]
時間単位のガントヘッダーの上段に、月日を表示可能にします。
システムリソースのUSE_MDHEADER_ONTIMEで表示を指定しますが、互換性から標準はfalseとします。
月日が入りきらない場合は表示しません。(12時間の単位など)
まずは試験的な実装とし、要望次第で機能拡張を行います。
hayabusa.common.SystemData#USE_MDHEADER_ONTIME
hayabusa.taglib.GanttHeaderTag#useMdheader
hayabusa.taglib.GanttHeaderTag#makeZoomTime( final int hourOfPixcel,final int step,final boolean useTani )
hayabusa.taglib.GanttHeaderTag#makeHeaderMD( final StringBuilder bufH , final int fillCnt , final int mtCnt , final String mdStr )
5.6.9.4 (2013/10/31)
[Query_JDBCTableUpdate]
Query_JDBCTableUpdate のエラーメッセージに1行前の情報も出力します。
これは、データ列が null でエラーになった場合、どのレコードがエラーなのか
判りにくいケースがある為、その前の正常登録できたレコードを表示するように
します。例えば、EXCEL読み取りで、#によるコメント行や、シート連続読みなどを
行うと、表示された行番号からは、該当レコードを見つけることができないためです。
plugin.query.Query_JDBCTableUpdate#execute( final int[] rowNo, final DBTableModel table )
[DB定義DB関連]
DB定義DB関連の修正を行いました。
定義書読み取り時に、EXCELに空行が入っていると、エラーになる為、
読み取り必須カラムの指定をできるようにします。
GF2050/result.jsp 定義ファイル(GF80)取込 filePopup.jsp の引数に、nullBreakClm=TABLE_NAME 追加
common/filePopup.jsp 引数に、nullCheck と nullBreakClm を受け取るように修正
common/upload.jsp readTable に、nullBreakClm 引数を追加
GF06(インデックス定義)の備考欄には、GF07(インデックスカラム定義)のカラム名が、カンマ区切りで
登録されていますが、既存の読み取りでは、スペース区切りになっています。
そこで、統一する為、スキーマ情報取込みと同じ処理方法で、備考欄をセットします。
GF2060/dbdefIn.jsp 定義ファイル(GF80)検証 GF07 へのINSERT用テーブルモデルから、GF06の備考欄を作成
GF2110/directGF07.jsp スキーマ情報取込 カラム集めのためのユニークキーから、SYSTEM_ID,TBLSYU を削除
ORACLEオブジェクトの検索で、ユニークインデックス、プライマリキー などの制約も検索できるように
CONSTRAINT 項目を追加します。
また、この情報を削除できるリンクを用意します。
gamen/03_DBSEARCH/changeSQL.jsp
gamen/03_DBSEARCH/constraintDrop.jsp
gamen/03_DBSEARCH/optionQuery.jsp
[CSV 関係のI/O]
TableWriter_Default で、5.3.2.0 (2011/02/01) に修正した、","を付加する条件が反転しているバグを修正
が、TableWriter_CSV で対応されていなかったので、修正します。
また、TableWriter_CSV3 として、数字型には、ダブルクオートを付けず、文字型のゼロ始まりでも
カンマを付けないタイプの カンマ区切り出力クラスを新規作成します。
plugin.io.TableWriter_CSV#writeData( final DBTableModel table,final PrintWriter writer )
plugin.io.TableWriter_CSV3.java 新規作成
[edit機能のqueryButtonでの初期値]
edit機能を利用した場合、検索の初期値はユーザ情報内に保存された値が必ず使われていましたが、
リクエスト変数editNameの値が存在する場合はそちらを優先的に利用するようにします。
hayabusa.taglib.QueryButtonTag#doEndTag()
[JavaDoc関係]
JavaDocの出力がおかしかったので、修正します。
※ ソースコメント上に、@og.tag がなかったので、追加します。
hayabusa.taglib.ReadTableTag#setSheetConstKeys( final String constKeys )
hayabusa.taglib.ReadTableTag#setSheetConstAdrs( final String constAdrs )
※ stackHeader に、使用していない属性 daySpan、skipHoliday があったので、コメントアウト
gf/src/META-INF/hybs-taglib.tld
gf/WEB-INF/hybs-taglib.tld
[columnCheckタグcheckNames属性修正]
chechNames属性はカンマ区切りで指定可能ですが、判定方法が,CLM名,とのindexOfマッチングのため
タグで属性を指定する際に改行が入ると正しく判定されなくなります。
checkNames属性指定時は、文字列から空白文字を削除するようにします。
fukurou.util.StringUtil#deleteWhitespace( final String data )
hayabusa.taglib.ColumnCheckTag#setCheckNames( final String nm )
5.6.9.3 (2013/10/25)
[mailSenderでのGE35利用]
これまではGE35テーブルをmailSenderでは利用できず、社員番号とアドレスとの対応はLDAPのみでした。
mailSenderでもGE35を利用できるように対応します。
タグとしてはuseDB属性を追加します。検索条件はmailSender2と同じで、名称が取得できた場合は
名称<アドレス>の形式でアドレスを設定します。グループテーブルには対応していません。
useLDAPと同時に設定された場合はLDAPが優先されます。
hayabusa.mail.MailPattern#selGE35,GE35_NAME,GE35_MAIL (privateからpublic)
hayabusa.taglib.MailSenderTag#useDB,DBID
hayabusa.taglib.MailSenderTag#getAddressArray( final String[] src )
hayabusa.taglib.MailSenderTag#getUserAddr( final String userId )
hayabusa.taglib.MailSenderTag#doEndTag()
hayabusa.taglib.MailSenderTag#release2()
hayabusa.taglib.MailSenderTag#setUseDB( final String flg )
hybs-taglib.tld
[queryButtonのサブミットボタンID付加]
queryButtonタグで出力しているサブミットボタンにidを付けます。(queryButtonSubmit)
hayabusa.taglib.QueryButonTag#getSubmit()
[tableFilter の SEQRESET]
tableFilter で、表示順の再振り替えを行う処理で、maxRowCount 指定が
ない場合、1000件で処理が打ち切られてしまうため、振り直し処理のqueryタグに
maxRowCount="0" (無制限) を追加します。
ge/jsp/GE0002/entry.jsp
gf/jsp/common/gamen/23_FAQRGST/entry.jsp
5.6.9.2 (2013/10/18)
[メールモジュールのテーブル変更]
メール送信時に、パラメータに長文を利用したい場合があるため
GE30のparam0とparam1のみ4000バイトに変更します。
(パラメータの分割が可能な場合は、通常長文にはなりにくいため)
送信履歴テーブル追加時はtrimをかけているので、この部分は変更しません。
GE30.PARAM0,PARAM1
[DB定義]
INDEX作成時に、削除構文を出力するかどうかをパラメータで指定できるようにします。
これは、INDEXファイルを何度も実行できるようにするためです。
plugin.table.TableFilter_INDEX#execute()
plugin.table.TableFilter_INDEX#makeDropLine( final int[] clmNo,final String[] data )
これに伴い、エラー時に、処理を中断するのか、継続するのかを選択できるようにします。
INDEXのクリアなどは、存在しないとエラーになります。先に存在チェックすべきか、どうかは
ともかく、一番最初は、すべてエラーになるため、エラー時はパスできる機能を用意します。
なお、エラーを無視するのは、EXEC_SQL のみとします。
fukurou.xml.HybsXMLSave#actionExecSQL( final TagElement tag )
hayabusa.common.InitFileLoader#loadXML( final InputStream stream, final Connection conn,final String table )
hayabusa.common.SystemInstaller#execScripts( final EXEC_TYPE type, final String scriptPath, final Connection conn )
[INDEX作成]
INDTYPE で、その他ではなく、2:通常 で判断する。
plugin.table.TableFilter_INDEX#makeLineList( final int[] clmNo,final String[] data,final String clms )
plugin.table.TableFilter_INDEX_FIREBIRD#makeLineList( final int[] clmNo,final String[] data,final String clms )
[TableFilter_TABLE_XXXX]
GF05_USE_LENGTH が、nullやゼロ文字列の場合、ORACLE以外のテーブルスクリプト
作成処理で、エラーになっていたので、修正します。
plugin.table.TableFilter_TABLE_FIREBIRD#makeLineList( final String[] data,final boolean first )
plugin.table.TableFilter_TABLE_HSQLDB#makeLineList( final String[] data,final boolean first )
plugin.table.TableFilter_TABLE_MYSQL#makeLineList( final String[] data,final boolean first )
plugin.table.TableFilter_TABLE_POSGRE#makeLineList( final String[] data,final boolean first )
plugin.table.TableFilter_TABLE_SQLSERVER#makeLineList( final String[] data,final boolean first )
[GF 定義修正]
①GF77 の VALUELIST を、2000 → 4000 に変更
ALTER TABLE GF77 MODIFY ( VALUELIST VARCHAR2 ( 4000 ) );
[リソースの取込画面追加]
各リソース画面(画面、カラム、コード、ラベル)で抜き出したファイルを利用して、
キー差分、属性差分登録が可能な画面を作成します。
XMLの取込は一度削除してからの追加となること、抜き出した画面でアップロードすると
属性差分の取込(変更処理)が出来ないためです。
画面の作りとしては、取り込んでテーブルモデルを作る部分までを新規画面で、
以降の処理は各リソース登録画面を呼び出す形とし、条件はシステムIDと言語のみを利用可能とします。
(リソース登録画面側は元DBIDの検索をscope=requestで行い、取込データを元として利用します)
ge\jsp\GE0010
ge\jsp\GE0002\result.jsp
ge\jsp\GE0003\result.jsp
ge\jsp\GE0004\result.jsp
ge\jsp\GE0005\result.jsp
5.6.9.1 (2013/10/11)
[選択カレンダー修正]
月曜開始・日曜開始選択ロジックの影響で、日付と曜日が正しく
ない状態で表示されていたため修正します。
jsp\common\calendar2.js
[bulkSet機能の修正]
VIEWタグでbulkSet機能を利用する際に、カラムリソースの桁数をカンマ付きで
指定している場合に数値に変換できずにエラーが発生していました。
カンマより前の情報を利用するように変更します。
hayabusa.html.AbstractViewForm#getSortedColumnLabel( final int column )
[Shell起動用Daemon]
Shellを定期的に起動するようなデーモンを新規作成します。
パラーメータはprogram,workDir,useBatch,stdout,stderr,waitで、
これらの値を利用してfukurou.util.Shellをキックします。
起動方法や間隔は他のデーモンと同じです。
専用画面は現段階では作成しません。
plugin.daemon.Daemon_RunShell