Downloadliste

Projektbeschreibung

Projectの概要

JSPカスタムタグをベースとした、Webアプリケーションフレームワークです。
SQLの知識さえあれば、データのCRUD操作をメインとした業務システムが 簡単に構築することができます。

このフレームワークは、村田機械株式会社の基幹システムを構築するために 開発され、ほぼ全ての基幹システムは、これを利用して構築し、稼動しています。

(基本機能)
・ユーザー管理         ・認証・アクセス制御
・多言語対応          ・Excel入出力機能
・ガントチャート表示、編集機能 ・定型帳票作成、発行機能
・定型メール送信機能      ・データベース定義管理機能
・バッチ処理機能

各種詳細情報及びドキュメントについては、openGion@Websiteを参照して下さい。


Java を含む標章は、米国 Sun Microsystems, Inc.の商標であり、同社のJava ブランドの技術を使用した製品を指します。
Excel は、Microsoft Corporationの米国及びその他の国における登録商標です。
コンテンツ中に記載された社名および製品名は、すべて各社の商標または登録商標です。

Systemanforderungen

Die Systemvoraussetzungen sind nicht definiert

Veröffentlicht: 2013-09-06 16:08
opengion 5.6.8.0 (4 files Verstecken)

Versionsanmerkungen

5.6.8.0 (2013/09/06)
[DB定義関係]
DBConfig.xmlの内部オブジェクトの、EDbid で、title 属性が null の場合、
dbidKey を設定するように変更します。
MUST属性にしてもよいのですが、互換性の事を考えると、必須項目である dbidKey を
設定することにしておくことにしておきます。
今後、DBIDは、この title を表示ラベルとするプルダウンに統一します。
fukurou.db.EDbid#setTitle( final String value )

関連しますが、DEFAULT と、RESOURCE の DBIDキーがなければ、内部的に作成する処理で
RESOURCE を、DEFAULT からコピーで作成するので、title もDEFAULT のままコピー
されますので、再設定しておきます。
fukurou.db.DatabaseConfig#makeDbidMap( final Element element , EDbid defDdbid )

[ソースチェック関係]
GF79 リソース抜出テーブル は、うまく利用できていなかったので、
一旦削除します。
DOC19 作成区分メンテ 廃止
DOC22 テーブルカラム抜き出し 廃止
GF79 リソース抜出テーブル 廃止

DOC20 環境管理テーブル 追加

カラムに、変数{@XXXX}が登録された場合に桁あふれしていた為、増やします。
主に、{@XXXX} の変数が使われることを想定して、X(10)で少ないカラムを増やします。
GF71
画面使用 USEGAMENID X(10) ⇒ X(20)
リダイレクト使用 USEREDIRECT X(10) ⇒ X(20)
GF73
フォームタイプ FORM_TYPE X(10) ⇒ X(20)
読取専用 READONLY X(10) ⇒ X(20)
無効 DISABLED X(10) ⇒ X(20)
GF93
画面使用 USEGAMENID X(10) ⇒ X(20)
リダイレクト使用 USEREDIRECT X(10) ⇒ X(20)

[ソース自動作成]
COMMENT タグの作成で、日付はフォーマット変換します。author と text は更新しません。
plugin.develop.JspCreate_COMMENT#execute( final OGElement ele , final String nameSpace )

JspCreateTag で、処理の部分指定ができるようにします。
これを元に、COMMENT タグのみを実行する画面を作成します。
hayabusa.taglib.JspCreateTag#release2()
hayabusa.taglib.JspCreateTag#execute()
hayabusa.taglib.JspCreateTag#setTagNames( final String tags )

gf\src\META-INF\hybs-taglib.tld JspCreateTag に、tagNames 属性追加
gf\WEB-INF\hybs-taglib.tld

[タグの改善]
既存のcaseKey、caseVal、caseNN に加えて、caseNull を追加します。
これは、caseNull の引数が null/ゼロ文字列 の場合に、成立します。
何も指定しない場合は、成立していると判断します。
これらを使用して、equals タグなどの使用を削減します。
hayabusa.taglib.CommonTagSupport#release2()
hayabusa.taglib.CommonTagSupport#setCaseNull( final String cnul )
hayabusa.taglib.CommonTagSupport#useTag()

tldファイルに追加するのは、以下のタグです。
and , button , column , columnEditor , directXMLSave ,
fileUpdate , hidden , input , link , message , option ,
orderBy , popup , query , queryOption , select , submit ,
tableMerge , tbody , tfoot , thead , userInfo , value ,
view , writeTableParam

gf\src\META-INF\hybs-taglib.tld
gf\WEB-INF\hybs-taglib.tld

[Excel2010用プリンタ名取得マクロ]
Excel帳票ではマクロが利用するプリンタ名称が必要ですが、
Excel2010では従来の方法(マクロ記録)では取得できなくなりました。
Excel2010用のプリンタ名一覧取得マクロを作成しておきます。
(雛形はExcel2003でHTML出力する必要があります)
ge/def/Script/getPrinterName.xlsm

[メールモジュール画面修正]
送信履歴検索では、送信順にデータを並べていましたが、
帳票のように最新のものから見ていきたいため順序を逆にします。
又、日付のFrom,Toはそれぞれに00000000,99999999を付加して同日検索を可能にします。
ge/jsp/MAIL03/result.jsp
ge/jsp/MAIL06/result.jsp
ge/jsp/MAIL07/result.jsp

[メールモジュール送信日時機能追加]
メールモジュールのGE30登録時に14桁の送信日時指定(SNDTIME)を可能にします。
メールモジュールでは、これらの送信日時が現在日時よりも小さい場合、
もしくはNULLの場合にメール送信の対象とするようにします。(SNDTIME <= 'システム日時14桁')
同時にインデックスも追加しておきます。
画面上では、MAIL07画面で表示されるよう対応します。
GE30 SNDIME追加,GE30_SA追加
hayabusa.mail.MailManager_DB#selGE30
hayabusa.mail.MailManager_DB#sendDBMail( final String systemId )
ge/jsp/MAIL07/result.jsp

[クライアントガント修正]
ガント種別の振分けの不具合が存在していたため修正します。
jsp/common/option/adjustGanttTable.js

5.6.7.4 (2013/08/30)
[JSPチェック修正]
includeファイルの先頭のpageEncoding指定のチェック用 span タグを出力します。
これは、インクルードファイルには、
<jsp:directive.page pageEncoding="UTF-8" />
を記述しておき、ファイルそのものが、UTF-8であることを宣言します。
この記述がない場合は、
<span type="jsp:directive pageEncoding="non" file="インクルードファイル" ><!-- --></span>
を出力しておき、JSPチェックで警告するようにします。
なお、この場合、jsp に記述している xml形式のコメント <!-- --> は、そのままインクルード
されるため、例えば、query タグ内にこの形式のコメントを入れているとエラーになります。
fukurou.xml.JspIncludeReader#getString( final File file,final String encode )

[リソース修正]
SYSTEM_ID が、"**" , "GE" , "GF" のリソースに於いて、ラベル表記を半角カタカナに変更します。
単に、表示上の文字サイズを小さくするためです。
リソース用の XMLファイルを抜き出しておきます。

[jsp修正]
各種細かい修正を入れています。
JSPソースチェックで見つかった不具合分の修正です。
gf/doc/refactoring/5.6.7.4_refactoring.txt 参照

[画面作成PGのID変更]
画面自動作成関連の画面が、現在は、common/gamen/ 以下のフォルダに作成されているが
これは、GFシステムのアプリケーションとして管理します。
ID を変更し、共通のcommon/gamen/ からは削除します。
これに伴い、画面リソースも変更します。
common/gamen/13_GUILIST ⇒ GF2200
common/gamen/11_GUIMAKE ⇒ GF2201
common/gamen/12_GUIMAKEGUI ⇒ GF2202

[DatabaseProductNameの小文字化]
従来は、DatabaseProductName を小文字化して使用していましたが、
DBUtil.getProductName( final Connection conn ) を使うように変更した際
小文字化していなかったため、初期起動時エラーが発生しました。
修正対応いたします。
fukurou.db.DBUtil#getProductName( final Connection conn )

5.6.7.3 (2013/08/23)
[DB定義変更]
GF78 に、TomcatやJavaの情報を追加します。カラム追加
OS情報 OS_INFO X(100)
サーバー名 SERVER_INFO X(200)
サーブレット SERVLET_INFO X(200)
REAL_PATH REAL_PATH X(256)
TOMCAT_HOME TOMCAT_HOME X(256)
JDKバージョン JDK_INFO X(200)
JAVA_HOME JAVA_HOME X(256)
バージョンNo ENGINE_INFO X(200)

GF82:DBオブジェクト一覧テーブル に、テーブル名 のカラムを追加します。
テーブル名 TABLE_NAME X(50)

[DB定義変更]
スキーマ情報取込み時に、ORACLEのデータ件数を登録する箇所で、
USER_TABLES の NUM_ROWS が、初期値は null の為、NVLしておきます。
何か登録して、DELETE等すれば、0 がセットされますが、テーブル作成直後
等では、null のためです。
gf/jsp/GF2010/sqlGF02.jsp NVL対応

DATA_DEFAULTで、DBスキーマ上からDB定義DBへの登録時に、VALSETフィルターを
使いますが、その設定をミスっていたので修正します。
gf/jsp/GF2110/directGF05.jsp DATA_DEFAULTの設定

GE,GF のDB定義書を修正しました。
カラム名称、テーブル名称、コード名称などのカタカナは、半角にしています。
テーブル表示したときの横幅を減らすためです。
GE_DB定義書.xls
GE_DB定義書_ALL.xls
GF_DB定義書.xls
GF_DB定義書ALL.xls

[HelpTag 修正]
HelpTag で、USE_GUI_FAQ と、USE_GUI_FAQ_CTRL のキー指定で、後ろにスペースが
入っているため、キーを認識できていませんでした。修正します。
hayabusa.taglib.HelpTag#release2()

[未使用のファイル削除]
GF2170は、DB登録 メニューとして、標準化済み。
gf/jsp/GF2170/entry.jsp 削除
gf/jsp/GF2170/update.jsp 削除

[メモリリーク警告]
ObjectPool で、メモリリークの可能性がある。警告が出ていましたが、
リソースのコネクションを分ける対応で、close 時にDBIDを指定し忘れていました。
hayabusa.common.SystemParameter#loadDBResource( final Map<String,String> sysParam )

[インフォメーション関連]
Exception 時に出力するメッセージに、TOMCAT_HOME、JAVA_HOME、REAL_PATH、SYSTEM_ID を
追加します。
hayabusa.common.HybsSystemException.java

TOMCAT_HOME の値を取得し、システムパラメータマップにセットします。
hayabusa.common.SystemParameter#loadInitialParameter( final ServletContext context,final String contextName )

HybsAdmin で表示している TOMCAT_WORK を TOMCAT_HOME に変更します。
ついでに、見出し文字も変更します。
hayabusa.servlet.HybsAdmin#getInfomation()
hayabusa.servlet.HybsAdmin#tableTr1( final StringBuilder buf, final String key )
fukurou.db.EDbid#toString()
fukurou.db.EDbid#info()
OS_INFO に、CPUのアーキテクチャも追加しておきます。32bit版 OR 64bit版が判るように。
BuildNumber.master

5.6.7.2 (2013/08/16)
[ソースチェック の見直し]
jsp:directive.include ファイルは、JspIncludeReader.java 処理で
実際にインクルードされるとともに、XML上からは削除されます。
そのため、ソースチェックを行う場合、インクルード処理の書式が
存在しないため、チェックできません。
そこで、ダミー的に、インクルード処理のタグを入れて、チェックできる
ようにします。
<span type="jsp:directive" include="ファイル名"><!-- --></span>
を、<jsp:directive.include file="ファイル名" /> の代わりに挿入します。
fukurou.xml.JspIncludeReader#getString( final File file,final String encode )
ge/jsp/DOC18/xsltV6/GF70_PROG.xsl

[DB定義追加、変更]
JSPソースチェック関連のテーブルに、テーブル種別を追加します。
従来は、ファイルパスで管理していましたが、DB定義DBとの親和性の
観点から、テーブル種別で管理できるようにします。
GF70,GF71,GF72,GF73,GF74,GF75,GF76,GF77,GF79

PRE_FIXカラムは、実質的には使われていないため、削除します。
GF70,GF71,GF72,GF73,GF74,GF75,GF76,GF77

GF79は、他のテーブルとカラムが異なっていたので統一します。
SOURCE ⇒ ADDRESS の追加

GF78 の空き番号に、システムID、テーブル種別、に対応する属性を
管理するテーブルを作成します。
基準JSPパス、画面URL、DBID、DB接続URL、DBユーザー、DBパスワードなど。
将来的な管理情報を持っておきます。

これらのテーブルは、ALTER TABLE で処理しないで、DROP,CLEATE します。
カラムの並び順も考慮したいのと、現時点でソースチェックはワークなので
削除しても、再取込みすればよいだけなので。
gf\changes\5672

[DB定義変更に伴う、JSP修正]
TBLSYUカラム 追加、PRE_FIXカラム 削除、SOURCE ⇒ ADDRESS 変更などの
DB定義変更に伴う画面関係の修正を行います。
DOC10、DOC11、DOC12、DOC13、DOC15、DOC16、DOC17、DOC18、DOC19、DOC22

データセットのための xslt 修正
gf/jsp/DOC18/xsltV6 以下の GF7*_PROG.xsl ファイル

JavaDoc関係の画面IDを、DOC01 ~ DOC09 に集約する為、
DOC23 ⇒ DOC09 フォルダ名変更
gf/jsp/DOC09 変更

5.6.7.1 (2013/08/09)
[DBIDのtitle処理 の見直し]
5.6.6.0 (2013/07/05) で導入した DBConfig.xml (データベース接続先)に、
表題(title)属性を追加した処理で、titleにスペースが含まれる場合の
処理を加味するように変更します。
DB定義DBの備考カラムを、コードリソースに分解する処理と同じにします。
(TableFilter_BIKO2CODE)
「キー:ラベル キー:ラベル」で、ラベル にスペースを含ませる場合は、
ダブルクォーテーションで囲ってください。
fukurou.db.DatabaseConfig#getCodeKeyVal()
hayabusa.db.Selection_KEYVAL#Selection_KEYVAL( final String strCode )
hayabusa.taglib.ColumnTag#setCodeKeyVal( final String keyval ) コメント修正
plugin.table.TableFilter_BIKO2CODE.java コメント修正

[DBIDのプルダウン]
DBIDをDBConfig.xmlから取得したリストからプルダウンを作成する箇所で、
修正漏れのJSPを追加修正します。
ge/GE0001\query.jsp FROM_DBID , TO_DBID
ge/GE0009\query.jsp DBID
ge/GE0011\query.jsp FROM_DBID , TO_DBID

[DB定義DBからのデータ抜出]
DB定義DB情報を元に、データを XML ファイルとして抜き出す画面を作成します。
gf/GF2170
画面リソース等も追加します。
GF2150 XML出力(定義情報) 名称変更
GF2170 XML出力(DBデータ) 画面追加

[jspチェックの修正]
jspチェックで、数か所機能改善を含めた修正を行います。
2.のインクルードファイルが存在しない場合の処理は、
Tomcat7の新しい、「JSPのモジュール化」により、common,menu,image の
フォルダを、META-INF/resources 以下に、保管し、jspCommonX.X.X.X.jar
として、エンジン標準と同時に配布する機能への対応です。
本来は、classPathからこの jar ファイルを見つけて取り込む必要が
ありますが、現時点では、同じ webapps 上に gf が存在するとして処理します。
1.JSPファイルのインクルードで、<!-- --> のコメント削除処理のバグ修正
2.JSPファイルのインクルードで、インクルードファイルが存在しない場合、
gf/jsp/common , gf/jsp/menu を利用するように変更。
3.XSLT変換エラー時に、インクルードファイル名を取得できるように、
includeファイル名のリストを返すメソッドを追加
4.xsltV6 を作成しておきます。
取り合えずは、既存の xsltV5 と同じフォルダ内容にしておきます。
fukurou.xml.JspIncludeReader#getString( final File file,final String encode )
fukurou.xml.JspIncludeReader#getIncludeFileList()
fukurou.xml.XSLT#transform( final String file, final boolean isJspInclude )
fukurou.xml.XSLT#transform( final Reader xmlReader )
gf/jsp/DOC18/query.jsp
gf/jsp/DOC18/xsltV6

[HybsSystemException の修正]
HybsSystemException のエラーメッセージの先頭に、エンジンバージョン情報他を
書き出すように変更します。
なお、標準エラー出力として書くだけで、本体のエラーには書き出しません。
現状の、HybsSystemException は、RuntimeException を継承しているものの、
内容的には全く同じ働きをしています。(何も拡張していない状態です。)
hayabusa.common.HybsSystemException.java

[DBIDの見直し]
データベース接続先の見直しを行います。
従来は、WEB-INF/DBConfig.xml に、<dbidKey>DEFAULT</dbidKey> を必ず登録し、
また、リソースDBと異なる場合は、web.xml の context-param に、RESOURCE_DBID
というキーに、<dbidKey>RESOURCE</dbidKey> を登録する必要がありましたが、
内部的に、DEFAULT と RESOURCE を用意します。
これにより、web.xml への記述の必要性を無くすとともに、DBConfig.xml についても
デフォルトであれば、記載不要にします。
この修正は、基本的には、システムのDBとリソースのDBを分ける運用を行う場合、
既存の GF や common 系から GE系のテーブルをアクセスしている画面は、すべて
dbid="RESOURCE" 付に書き換えた場合の互換性対応です。
リソース、帳票、伝送、メール、新着、FAQ などのテーブル関係です。

簡単に言うと、RESOURCE_DBID の初期値を、"RESOURCE" に変更するという事です。
ただし、dbid="RESOURCE" を使うため、実質的に、RESOURCE_DBID は変更不可になります。

参考:WEB-INF/web.xml からリソースのDBIDの指定方法。 ⇒ 基本的には廃止です。
<context-param>
<param-name>RESOURCE_DBID</param-name>
<param-value>RESOURCE</param-value>
</context-param>

fukurou.db.DatabaseConfig#makeDbidMap( final Element element , EDbid defDdbid )
hayabusa.common.SystemParameter#loadInitialParameter( final ServletContext context,final String contextName )
gf/WEB-INF/web.xml サンプル修正

上記の対応の上で、

[GE系DBを利用している共通画面の修正]
既存の GF や common 系から GE系のテーブルをアクセスしている画面は、すべて
dbid="RESOURCE" 付に書き換えます。
基本的には、RESOURCE の設定が WEB-INF/DBConfig.xml になければ、DEFAULT接続を
利用します。設定があれば、リソース系(GEテーブル)DBへの接続でアクセスします。
gf/jsp/common/remoteResource.jsp
gf/jsp/common/gamen/02_TADMIN/query.jsp
gf/jsp/common/gamen/07_CONFIG/entry.jsp , result.jsp
gf/jsp/common/gamen/21_WHTSNEW/meisai.jsp , result.jsp , top_menu.jsp
gf/jsp/common/gamen/22_FAQ/query.jsp , result.jsp
gf/jsp/common/gamen/23_FAQRGST/entry.jsp , query.jsp , result1.jsp , result2.jsp , update.jsp
gf/jsp/common/gamen/24_ERRMSG/entry.jsp , result.jsp

DOC19 は修正しますが、実質的に、GE系と GF系を JOINしているため、無効です。
処理そのものを見直す必要があります。
gf/jsp/DOC19/KBSAKUentry.jsp

GF0000/index.jsp は、21_WHTSNEW の top_menu.jsp より広い画面です。
top_result.jsp に移します。
gf/jsp/GF0000/index.jsp ⇒ gf/jsp/common/gamen/21_WHTSNEW/top_result.jsp
gf/jsp/index.jsp のCONTENTS 領域を上記の top_result.jsp に変更します。
ge/jsp/index.jsp 同上

[jspチェックの修正2]
jspチェックの修正で、includeファイルを、キャッシュします。
通常、includeファイルは、大きくない & 多くない のですが、ほとんどの
画面で同じようなファイルをインクルードしているため、 I/O が多くなります。
多少キャッシュすることで、メモリは多く使いますが、jspチェック自体が本番では
行う事はない為、問題ないと判断します。
先の、includeファイル名リストの箇所で、ListからMapに変更することで対応します。
なお、キャッシュは、当然、すべての処理で共有されるため、static変数で管理します。
よって、このクラスは、マルチスレッド対応されていません。
fukurou.xml.JspIncludeReader#getIncludeFiles()
fukurou.xml.JspIncludeReader#getString( final File file,final String encode )
fukurou.xml.JspIncludeReader#cacheClear()
fukurou.xml.XSLT#transform( final String file, final boolean isJspInclude )
fukurou.xml.XSLT#transform( final Reader xmlReader )
fukurou.xml.XSLT#init()
fukurou.xml.XSLT#close()

[jquery-ui.js 関係]
common/jquery/jquery-ui.js を、custom/result_info.jsp 等で組み込んでいますが
組込み方がまずく、有効になっていません。
また、このJavaScriptは、ドラッグ&ドロップなどの高度なUI用なので、
標準的に組み込む必要はありません。
(現状では、common/gamen/14_EDIT 位でしか使われていません。)
そこで、result_info.jsp 、result_FS_info.jsp から削除します。
custom/result_info.jsp
custom/result_FS_info.jsp

[TopMenuTag の BODY]
TopMenuTag は、body:なしなのに、EVAL_BODY_BUFFERED を返していたので、
doStartTag() の継承をやめ、標準のSKIP_BODYを返すように修正します。
※ この記述は、RELEASE-NOTES.txt 側にも記載しておきます。
hayabusa.taglib.TopMenuTag#doStartTag() 削除
src\META-INF/hybs-taglib.tld
topMenu の body-content を JSP から tagdependent に変更

[NT(unknown)時のwindowsShell(cmd)の位置変更]
Windows2012Server等、新しいOSが増えるとJavaのバージョンによってはWidnowsNT(unknown)のように
OS名が取得されます。NTの場合はC:\\WINNT\\system32\\cmd.exeでcmd.exeを起動するため、
新OSでは帳票等が動作しない場合があります。
最近のOSではcmdはC:\\WINDOWS\\system32\\cmd.exeに配置されているため、unknown時は
他と同様に、この設定を利用するように変更します。
fukurou.util.Shell#CMD_COM

Änderungsprotokoll

Keine Änderungsprotokoll