概要: Webエンジン Ver 5.3.9.0 (2011/09/01) をリリースいたします。 今回のリリースは、PostgreSQL対応と、その他機能改善及びバグフィックスです。 ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 5.3.9.0 (2011/09/01) [URLエンコード変換対応] ①パラメーター形式の変数取得でプレフィックスとしてURL.を付加する({@URL.XXXX})ことで、URLエンコード された値を取得できるように対応します。 ②og:viewMarker,og:columnMarkerでマークする文字列のカラム名[XXXX]について、先頭に$を付加した 場合(例:[$XXXX])に、元の値をURLエンコードした値を返すように対応します。 org.opengion.hayabusa.taglib.CommonTagSupport.getRequestValue(String, boolean) org.opengion.hayabusa.taglib.ColumnMarkerTag コメントのみ修正 org.opengion.hayabusa.html.ViewMarker_MARKER.getMarkerString(int, int, String) [Java業務ロジックバグ修正] サブルーチンCall時、表形式オブジェクトに指定された値がnullの場合で、パラメーターとして nullが連続して指定された場合に、2つ目移行が"null"という文字列で渡されてしまうバグを修正します。 org.opengion.fukurou.business.AbstractBizLogic.replaceParam(String, int, ArrayTableModel) [PostgreSQL 対応] PostgreSQL の場合は、varchar の桁数は、「文字数」であり、ORACLE等の 「バイト数」では ありません。よって、DBタイプでチェックするロジックに、文字数でチェックする機能を 用意する必要があります。 ただし、他のデータベースとのデータ変換を考える場合は、何バイトのデータまで許容 するかを定義しておいたほうが、便利かもしれません。 (でないと、UTF-8の場合、文字数で入っている場合、バイト数に換算すると多い目に定義 する必要が出てきます。) ここでは、useTextLength 属性を、システムパラメータに用意し、null または false の 場合は、従来どおりの「バイト数」計算で、true の場合は、「文字数」計算するように修正します。 hayabusa.common.SystemData#DB_USE_TEXT_LENGTH hayabusa.db.DBTypeCheckUtil#USE_TEXT_LEN hayabusa.db.DBTypeCheckUtil#byteLengthCheck( final String value ,final int len ) [PostgreSQL 対応] コードリソース画面で、PostgreSQLの予約キーである 「KEY」 カラムを使用している箇所を修正します。 別名を与えるところの問題なので、予約キー以外の名称に変更します。(KEY ⇒ CKEY に変更) 【リソース】コード ge\jsp\GE0004\result.jsp(37): from ( select Z.*, Z.CLM{@DBF.CON}'.'{@DBF.CON}Z.CODE KEY from GEA04 Z [PostgreSQL 対応] エンジン標準のテーブル作成時に、UNIQ という名称のカラムには、プライマリ属性を作って いましたが、インデックス作成時にも、プライマリキーを作成するロジックを用意したことで、 テーブル作成時のプライマリ制約の付与を中止します。 plugin.table.TableFilter_TABLE_FIREBIRD#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 ) [PostgreSQL 対応] サンプルの EMP表のDATE形式のデータに、規定の文字数以上のデータが初期設定されているので、 修正します。HIREDATE は、クリアしておきます。 gf\db\common\xml\install\01_DATA\EMP.xml [画像縮小処理クラス追加] 画像の縮小処理を行うためのクラスを追加します。 org.opengion.fukurou.util.ImageResizer [ファイルクエリー改善] ファイルクエリーに機能で以下の改善を行います。 ①og:fileQueryで検索リストにfrom属性で指定した基準ファイル/ディレクトリを追加するかどうかを 指定できるように対応します。(addFrom属性) ②og:fileWhereタグでunMatches、matchesが正しく処理されないバグを修正します。 ③og:fileWhereタグで定義したフィルターをディレクトリにも適用するかどうかを指定できるように 対応します。(useDir属性) hybs-taglib.tld org.opengion.hayabusa.taglib.FileWhereTag.doEndTag() org.opengion.hayabusa.taglib.FileWhereTag.setUseDir(String) org.opengion.hayabusa.taglib.FileWhereTag.release2() org.opengion.hayabusa.taglib.FileQueryTag.execute(File, int) org.opengion.hayabusa.taglib.FileQueryTag.setAddFrom(String) org.opengion.hayabusa.taglib.FileQueryTag.release2() [ファイルダウンロードサーブレット・インライン表示対応] ファイルダウンロードでインライン表示が出来るように対応します。(引数にinline=trueを指定) org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) [画面編集機能バグ修正] ①画面編集機能でヘッダーソートを行った場合、編集対象カラムが正しく表示されないバグを 修正します。 ②集計対象の数値項目がNULLの場合にエラーとなるバグを修正します。 org.opengion.hayabusa.taglib.ViewFormTag.setViewClms() org.opengion.hayabusa.db.DBTableModelEditor.addGroupRows(ResultSet, int[], int, int, boolean[], boolean[]) [プライマリキー対応 2] プライマリキー の定義を作成するように、修正した際に、ALTER TABLE で TABLESPACE を指定する前に、USING INDEX 指定を忘れていたため、 文法エラーになりましたので、修正しました。 plugin.table.TableFilter_INDEX#makeEndLine( final int[] clmNo,final String[] data ) [ヘルプ機能拡張] ヘルプ機能を拡張し、画面メニューの各画面分類に対してもヘルプファイルの定義が できるように対応します。ヘルプファイルは、helpフォルダ(画面ヘルプと同じ)の下に "分類キー".[拡張子]の形式で保存します。(分類キーは画面リソースに登録したキーです) これにより、ヘルプファイルが存在する場合のみ分類名の横にヘルプファイルへのリンクが 表示されます。 jsp/menu/matrixMenu.jsp jsp/menu/multiMenu.jsp jsp/image/help.png jsp/image/faq.png hybs-taglib.tld org.opengion.hayabusa.taglib.HelpTag.doEndTag() org.opengion.hayabusa.taglib.HelpTag.makeTag() org.opengion.hayabusa.taglib.HelpTag.getLink(String) org.opengion.hayabusa.taglib.HelpTag.getLinkBody() org.opengion.hayabusa.taglib.TopMenuTag.doStartTag() org.opengion.hayabusa.taglib.TopMenuTag.doEndTag() org.opengion.hayabusa.taglib.TopMenuTag.release2() org.opengion.hayabusa.taglib.TopMenuTag.makeTagMenuString(String, String, String, String, int) org.opengion.hayabusa.taglib.TopMenuTag.makeHelpLink(String)