概要: Webエンジン Ver 5.2.0.0 (2010/09/01) をリリースいたします。 今回のリリースのおける主な変更点は、軽微な機能追加、及びバグ修正です。 ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 5.2.0.0 (2010/09/01) [システム単位のシステム設定画面追加] 共通メニューとしてシステム単位にそのシステムで設定すべきシステム定数を設定する画面を追加します。 jsp/common/gamen/07_CONFIG [JavaScript関連・実装変更] JavaScriptのカラムに対するイベント処理の方法を見直します。具体的には、各JS毎に、イベントをバインドする のではなく、イベントを付加する要素のセレクタ、バインドするイベント、関数をマップにスタックし、後で、 一括でイベントのバインド処理を行います。 これにより、セレクタ処理の回数を減らし、レスポンスを向上させます。 また、画面遷移なし登録などで、動的に要素を追加した場合においても、予めスタックされたイベント定義情報 から、追加した要素に対してイベントをバインドすることで、追加要素でも、リアルタイムチェックや、動的プル ダウン等の処理が正常に動くように対応しています。 org.opengion.hayabusa.taglib.HeadTag.doEndTag() jsp/common/default.js jsp/common/bindEvents.js jsp/common/autoConvert.js jsp/common/eventColumn.js jsp/common/eventColumn.jsp jsp/common/focusHilight.js jsp/common/realTimeCheck.js jsp/common/scrollBar2.js jsp/common/option/noTransition.js [ファイル取り込み処理バグ修正] 共通のファイル取り込み処理が正常に動作しない問題に対応します。 jsp/common/upload.jsp [初回インストール時の管理者ユーザーの変更] 初回インストール時の管理者ユーザーを"C00000"から"admin"に変更します。 adminユーザーの初期パスワードは、ユーザー名と同じく"admin"です。 org.opengion.hayabusa.common.SystemData#CONTEXT_INITIAL_CALL_USERPASS [不正アクセス防止機能追加] 画面IDのパラメーターを付加し、URLを直接指定した際に、本来ロール制御されるべき画面にアクセス できてしまうバグを修正します。 今回の問題は、以下のようなURLでアクセスした場合に発生します。 @URLとして、本来ロール制御がかかるパスを指定 A画面ID(GAMENID)にそのユーザーで許可されている画面IDを指定 具体的には、http://localhost:8824/jsp/GF9999/index.jsp?GAMENID=GF9110 等のURLで直接アクセスした 場合、ロール制御は、GAMENIDに指定されたGF9110で行われますが、実際にアクセスされる画面は、 パスとして指定された、GF9999の画面になります。 これを利用することで、本来ロールエラーとなる画面にもアクセスすることが可能になります。 【今回の対応】 今回の対応では、既存の画面動作に影響を与えないように、以下の対応を行ってます。 @画面リソースに存在するアドレスで、ロール設定により、"許可されないアドレス"に対してのチェックを行う。 A但し、画面リソースで、アドレスに異なるパスへの参照を定義している('/'が含まれる)場合は、 チェック対象外とする。 org.opengion.hayabusa.resource.ResourceManager.makeGUIInfos(UserInfo) org.opengion.hayabusa.resource.UserInfo.setGUIMap(Map, Set) org.opengion.hayabusa.resource.UserInfo.isValidAddr(String) org.opengion.hayabusa.taglib.HeadTag.sessionInit() [リアルタイムチェックバグ修正] リアルタイムチェックで、クエリ画面で「必須入力エラー」が不正に出力されるバグを修正します。 この問題は、以下のコーディングがされている場合に、以下の操作手順で発生します。 【コーディング条件】 @query.jspで任意の項目に対して、必須属性(must="true")を付加 Aresult.jspで@で指定したカラムの必須チェックを行わない。 (columnCheckタグを記述しない、またはcolumnCheckタグでnullCheck属性を個別に指定し、@の項目を 除外する) 【操作手順】 @コーディング@で必須に指定した(但し必須チェックをしない)項目に、何も入力せずに検索 A通常通り、データ選択⇒登録を行う。 B以降は、query.jspで全ての項目について、フォーカスが離れると「必須入力エラー」が出る。 ※再現パターンは、これ以外にも存在する可能性があります。 この問題は、クエリ項目における、必須の自動チェックと、リクエストキャッシュの相互影響により 発生します。クエリ項目における必須チェックは、"h_must_must"というパラメーターキーに対して、 項目名を送信することで、必須チェック対象の項目を判別しています。 但し、この内容は、リクエストキャッシュに保存されるため、コーディング方法によっては、 realtimecheck.jspでこのパラメーターが復元され、不正なエラーチェックが発生します。 org.opengion.hayabusa.taglib.ColumnCheckTag.makeErrorMessage(ErrorMessage) [戻るボタン改善] 登録エラー時などに表示される、history.back()を利用した戻るボタン(common/history_back.jsp)について、 formボタンで囲わないようにします。 これは、戻るボタンJSP自体をformタグの中に記述すると、formタグが入れ子になら、パラメーターが正しく 送信されなくなるためです。 jsp/common/histry_back.jsp [urlConnectタグ・バグ修正] 接続時のエラー処理でNullPointerExceptionが発生し、正しくエラー処理が行われないバグを修正します。 org.opengion.hayabusa.taglib.URLConnectTag.doEndTag() [テキストファイル入力改善] テキストファイルの入力(readerClass="Default")で、ダブルクオーテーションで囲われたデータ中に改行Cが 存在する場合に、正しく取り込めないバグを修正します。 Excelでは、タブ区切りや、カンマ区切りのデータを取り込む際、そのデータが"(ダブルクオーテーション)で 囲われている場合、そのダブルクオーテーション内の、改行Cは、行の区切りではなく、データの一部と見なされる ため、正しく取り込むことができます。 今回の対応では、Excelの取り込みに合わせて、"(ダブルクオーテーション)の改行Cが正しく取り込みできる ように対応します。 org.opengion.fukurou.util.StringUtil.countChar(String, char) org.opengion.fukurou.util.CSVTokenizer.nextToken() org.opengion.plugin.io.TableReader_Default.readDBTable(BufferedReader) [動的プルダウンバグ修正] 動的プルダウン機能で、tabindexなど項目に指定した属性情報が、項目入替え後に引き継がれないバグを 修正します。 jsp/common/eventColumn.js jsp/common/eventColumnMarker.jsp org.opengion.hayabusa.taglib.ColumnTag.setEventURL(String) Javadocのみ修正 [選択行スクロールバグ修正] 2回連続で(再検索を行うことなく)登録処理を行った場合に、2回目の行編集時に、選択行に スクロールしないバグを修正します。 org.opengion.hayabusa.html.AbstractViewForm.init(DBTableModel) [リアルタイムチェック改善] ヘッダー固定が適用されているビューに、リアルタイムチェックの吹き出しが表示された場合、 ビューをスクロールすると、吹き出しがスクロールせず、吹き出しの位置と実際の入力ボックスが ずれてしまう不具合に対応します。 これは、リアルタイムチェックの吹き出しの要素をbody要素の直下に配置しているためで、bodyに対する スクロールには追随しますが、ヘッダー固定のようなbody内部の要素でのスクロールには追随しないためです。 今回の対応では、ヘッダー固定をスクロール時には、吹き出しを一旦全て非表示にするように対応しています。 jsp/common/realTimeCheck.js [マトリクスメニュー改善] マトリクスメニューで、画面の実アドレスと画面IDが異なる場合に、正しく画面が開かないバグを修正します。 jsp/result.jsp [Java業務ロジック改善] テーブルモデルに指定のカラムが存在しているかどうかを確認できるメソッドを追加します。 org.opengion.fukurou.business.AbstractBizLogic.isLine(String) [Ver4互換モード対応] openGionの旧バージョンであるVer4の環境に対して、互換モードの設定を追加することで旧環境でも openGionが起動できるように対応します。 具体的には、互換モードが設定された場合、openGion本体(Java)及びGEシステムの各画面からアクセスする際の 項目名が、旧項目名に変換されます。 これにより、Ver4環境のDB環境に変更を加えることなく、openGionを導入することができるようになります。 なお、互換モードは、リステムリソースの"VER4_COMPATIBLE_MODE"を"true"に設定することで動作します。 また、この互換モードの設定により、内部的に項目名が変化される項目一覧は以下の通りです。 テーブルID (false) ※openGion標準 (true) ※Ver4互換 ------------ ----------------------- -------------------- GEA05 ROLES ROLE GEA10 NAME_JA NAME GE50 OUT_FILE OUTFILE GE50 OUT_DIR OUTDIR GE51 TEXT_DATA TEXT GE51 CLM COLUMN_NAME GE53 OUT_FILE OUTFILE GE53 OUT_DIR OUTDIR GE55 HOST_ID HOST GE58 CLM COLUMN_NAME GE30 H_TXT HEADER GE30 F_TXT FOOTER GE31 CONTENTS CONTENT GE32 CONTENTS CONTENT GE33 ADDRESS MEMBER GE33 NAME_JA NAME GE33 KBNAME NM_KBN (以下変更ソースリスト) org.opengion.hayabusa.common.SystemData.VER4_COMPATIBLE_MODE org.opengion.hayabusa.report.GE50Access org.opengion.hayabusa.report.RFIDPrintRequest org.opengion.hayabusa.report2.QueueManager_DB org.opengion.hayabusa.report2.QueueManager_DB.DBTableModelCreator org.opengion.hayabusa.mail.MailManager_DB org.opengion.hayabusa.mail.MailPattern org.opengion.hayabusa.mail.AbstractMailManager org.opengion.plugin.daemon.Daemon_Report jsp/ge/GE0001 jsp/ge/GE0002 jsp/ge/GE0016 jsp/ge/GE0017 jsp/ge/GE0018 jsp/ge/GE0019 jsp/ge/GE0020 jsp/ge/REP01 jsp/ge/REP02 jsp/ge/REP03 jsp/ge/REP04 jsp/ge/REP06 jsp/ge/REP14 jsp/ge/MAIL01 jsp/ge/MAIL02 jsp/ge/MAIL03 jsp/ge/MAIL07 [Popupタグ、リアルタイムチェックバグ修正] Popupタグ、リアルタイムチェックの機能で、"+"など一部の文字が正しく引数として渡されないバグを修正します。 これは、JavaScriptで文字をエンコードする際に、独自関数、又はencodeURI()を利用していたためです。 今回の対応では、encodeURIComponent()を使用するように変更します。 jsp/common/ogPopup.js jsp/common/realTimeCheck.js [共通項目名の変更] 5.1.0.0 (2009/11/04) で実施された共通項目名の変更で、一部対応漏れがありましたので、これに対応します。 定義が変更されるテーブルは、GE36,GEA05,GEA06,GF95です。 alter文については、GE、GFのコンテキストフォルダのchanges/5200/以下のファイルに記述されています。 GE36 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 GEA05 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 GEA06 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 GF95 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 [Calc帳票・バグ修正] Calc帳票システムで、表紙となる雛形にボディー部分のデータ{@xxx_n}を定義していない場合に エラーとなるバグを修正します。 org.opengion.hayabusa.report2.OdsContentParser.writeParsedSheet(OdsSheet, BufferedWriter) [ユーザーリソース・LDAP対応] ユーザーリソースをLDAPから取得できるように対応します。 Tomcatを含めたLDAP認証の設定方法については、以下のURLを参照して下さい。 ( URL : http://www.opengion.com/227.html ) org.opengion.hayabusa.common.SystemData.RESOURCE_USER_SRC_TYPE org.opengion.hayabusa.common.SystemData.RESOURCE_USER_LDAP_CLM org.opengion.hayabusa.common.SystemData.RESOURCE_USER_LDAP_FILTER org.opengion.hayabusa.common.SystemData.RESOURCE_USER_ROLE_LDAP_FILTER org.opengion.hayabusa.resource.UserInfoFactory.clear() org.opengion.hayabusa.resource.UserInfoFactory.newInstance(String, String, String) org.opengion.hayabusa.resource.UserInfoFactory.getVals(String, String, ApplicationInfo) org.opengion.hayabusa.resource.UserInfoFactory.getValsByLdap(String, String)