投稿

2019の投稿を表示しています

WorkWithPlus13

イメージ
WorkwithPlus13がリリースされるようです。 日本ではいつだろう、非常に楽しみです。 http://docs.dvelopsoftware.com:8081/WikiPlus/servlet/com.wiki.wiki?2768,Toc%3AWorkWithPlus+13, ※本当はパートナー向けセミナーでWorkwithPlus13のロードマップの説明があったので、 それを載せるつもりだったのですが、もっと詳しい情報が公開されたので、 載せる必要が無くなってしまいました。。。 Expanded info in Grid グリッドの1行を選択するとアコーディオンのように行の間が開き、 選択行の配下の位置にWebコンポーネントを表示できる。 使い方としては、こんなイメージ ・選択行の下に一覧画面(選択行の孫データ)を表示する   ※Grid In Gridの進化 ・選択行の下に詳細画面(選択行の更に詳細情報)を表示する   ※詳細画面はWebコンポーネントなので、更新画面にしても良い Grid In Gridだと制御が複雑になるのとレスポンスが重くなるので困りものでしたが、 これであれば、そんな悩みは不要になりそうです。 また、Webコンポーネント部分を登録画面にしても良いということは、もう詳細画面へ遷移する必要もなく、 一覧画面上で全て行うことが出来ますので、ユーザービリティも向上しそうです。 Bookmarks WWPシステムウィザードを実行するとログインやメニュー、ホーム画面等の標準機能が実装されますが、 その中にブックマーク機能が追加されます。 機能が豊富でメニューが沢山あるシステムでは非常に有効ですね。 私の経験では、たまにユーザーからリクエストされる機能ですが、優先順位が低いことが多く、 たまにしか実装してませんでした。 これからは「自動でついてるのでよかったら使ってください。」と言えるのが嬉しいです。 Notifications これもブックマークと同様、「よかったら使えますよ。」と言えるのは嬉しい。 Grouped Columns 帳票の集計表がいらなくなりそう。 Automatic BC Behaviour in Web Pan

WorkwithPlus12 機能紹介その2

イメージ
2019年10月末のGeneXusJapan様主催のパートナー向けセミナーでの情報です。 WorkwithPlus12の機能紹介がありまして、リリースノートやHelpにも書いてありますが、 私が「いいね!」と感じた機能をピックアップして紹介します。 条件付き書式(Conditional Formatting) http://wwp.genexus.jp/help/scr/ConditionalFormatting.htm Gridの行や列に対して条件を設定し、該当した場合の背景色を設定することが出来ます。 デフォルトで用意されている色がきれいな感じになっており、そのまま使えますが、 けっこう目立ちますので、いろんな色を使うのではなく、特定の行だけに使用するのが良さそうです。 ※書式を増やしたり変更することもできます。 [書式の種類] を [列にバッジを追加] にした場合は、行の先頭にバッジマークがつきます。 こちらは程々の目立ち具合で、良い感じです。 ポイントとしては、標準Gridであること。 どんな一覧画面(FreeStyleGrid 等)でも自由に使えるわけではありませんので、画面設計時に注意が必要です。 Culumn Tags http://wwp.genexus.jp/help/scr/Column_Tag.htm 条件付き書式(Conditional Formatting)に似ていますが、 こちらは列に対してタグやアイコンを付与できる機能となります。 デフォルトでも色々なアイコンが用意されているので、そのままでも使えそうです。 ステータスなど目立たせたい情報や、視覚的に分かりやすくしたい場合に有効と思います。 ここまで来ると画面や画像のデザインセンスが必要になってきますね。 DVelop Combo http://docs.dvelopsoftware.com:8081/WikiPlus/servlet/com.wiki.wiki?2291,Extended+Combo, 超高機能なComboコントロールです。 ビックリするぐらい機能が多いの

WorkwithPlus12 機能紹介その1

イメージ
2019年10月末のGeneXusJapan様主催のパートナー向けセミナーでの情報です。 WorkwithPlus12の機能紹介がありまして、リリースノートやHelpにも書いてありますが、 私が「いいね!」と感じた機能をピックアップして紹介します。 Split Screen http://docs.dvelopsoftware.com:8081/WikiPlus/servlet/com.wiki.wiki?2297,Split+Screen, 左側に一覧/検索機能、右側に選択したデータの照会/登録機能を1画面で表現するテンプレートです。 画面遷移の必要が無いので、マスタメンテのように簡易に検索/修正をしたい場合には非常に有効と思います。 作るのもとても簡単 ポイントとしては検索部分の表示領域が狭くなるので、検索条件が幾つか必要だったり、 明細の項目が沢山表示したい場合は使わないほうが良いです。 その場合は通常のSelection+Transacritonの方が良いでしょう。 グリッド内での編集(InLine) http://wwp.genexus.jp/help/scr/Editing_Grid.htm Split Screenと同じく、マスタメンテに向いた機能です。 一覧の明細から、編集ボタンを押下すると、直接編集することが可能で、 そのまま登録/修正ができるという機能です。 該当トランザクションのビジネスコンポーネントを用意して、 更新/削除/追加ボタンアクションの[In Line]プロパティをTrueにするだけで、後はWWPがやってくれます。 生成された方のWebPanelをみると、「色々やっているなぁ」という感想ですが、 それをプロパティ一つで実現してくれるのは、流石です。 ポイントとしては標準Gridなので、一覧の項目が多い場合には横スクロールが発生して操作しづらくなりますので、 表示/編集したい項目が少ない場合に有効と思います。 ちなみにエラーチェックはビジネスコンポーネントのRulesに定義するか、生成されたWebPanelのEventsに記述するかです。 集計値(Tootalizer) http://wwp.genexus.jp/hel

GeneXus Meeting ナレッジベースが公開

イメージ
2019年10月末のGeneXusJapan様主催のパートナー向けセミナーでの情報です。 GeneXus社からGeneXus Meetingのナレッジベースが公開されました。 これは年に1回のGeneXus Dayのイベントで使用された、Webシステムとモバイルアプリのナレッジベースです。 GeneXus Meeting Open Source Project https://wiki.genexus.com/commwiki/servlet/wiki?41746,KB%3AGeneXus+Meeting+Open+Source+Project GeneXus社の方のコメント イベントの為のサイトやアプリは簡素なものが多いです。 何故ならイベントの特定期間のみの利用となるために多くのお金をかけて作られていないためです。 このナレッジベースには、イベント用のWebサイトとアプリとしての機能が 搭載されてますので、是非活用してください。 実際のGeneXus Meetingのアプリは以下からダウンロードできます。 https://apps.apple.com/jp/app/genexus-meeting-gx29/id673278950#?platform=iphone https://play.google.com/store/apps/details?id=com.genexus.genexusmeeting&hl=ja ざっと見た感じではイベントの告知や、スケジュール、各会場でのセミナー案内、動画投稿、検索機能 等々 イベント関係のアプリとして必要な機能は大体揃ってそうな印象です。 これであれば、文言の日本語化とデータのセットアップなどを行えば使えそうかな。 イベントなんて、それこそ毎日どこかしらでやってますので、 「イベント用のアプリがすぐに作れますよ」といったビジネス展開が出来るのかも!?

PWA(Progressive Web Applications)

イメージ
2019年10月末のGeneXusJapan様主催のパートナー向けセミナーでの情報です。 GeneXus16U5からPWAに対応させることが出来るようになりました。 GeneXus 16 upgrade 5 リリースノート https://wiki.genexus.com/commwiki/servlet/wiki?43446,GeneXus+16+upgrade+5, PWA(Progressive Web Applications)とは 「モバイル端末でウェブサイトを表示するときに、 ネイティブアプリと同じような動作を可能にする仕組み」 となります。 GeneXusはWebシステムもネイティブアプリも両方構築することが出来ますが、 Webシステムだけ作れば、それがネイティブアプリ風にも動かせるなら、非常に効率的で嬉しいことです。 Progressive Web Applications in GeneXus https://wiki.genexus.com/commwiki/servlet/wiki?42600,Toc%3AProgressive+Web+Applications+in+GeneXus 聞いた話として、やり方はPWAのプロパティをTrueにするだけで対応可能となります。 (まだ日本ではGeneXus16U5がリリースされていないので、実際に試してはいないです) 代表となるWebPanel(KBで一つ)をMainProgram=Trueにして、PWAプロパティをTrueにします ※代表とはログイン画面やトップページ等のように、一番最初にアクセスさせる画面 <動作> 1)スマホのブラウザで表示すると「インストールしませんか?」というダイアログが表示される   2)インストールすると、スマホにそのKB(WEBシステム)のアイコンが作成される   3)アイコンをクリックするとブラウザが起動するが、そのブラウザはPWAとして動作するので  URLバーなどは非表示となる(ネイティブアプリ風)  ※この辺りはそのブラウザがPWAにどれだけ対応しているかの挙動によると思われる   4)アイコンをクリックしてサーバーに接続できなかった場合には、指定したエラー画面が表示される  ※通

ローコード開発ツールの比較評価レポート

ローコード開発ツールについての評価がまとめられているレポートを見つけました。 Fitinという、TIS株式会社様のサイトで公開されてました。 ローコード開発基盤の評価レポート https://fintan.jp/?p=1749 OutSystems Mendix 楽々Framework3 GeneXus 4つのツールを実際に使ってのレポートで、非常に良く纏まってましたので、 興味のある方は見てみてください。

1時間で業務システムを作る

少し前の話ですが、 超高速開発コミュニティ(現ローコード開発コミュニティ)協力で、 官公庁主催で実施されたのを切っ掛けに、何回かコミュニティや他団体主催でも実施されている企画で、 「1時間で業務システムを構築する」 というものがありました。 ローコード開発コミュニティ https://www.x-rad.jp/ その場でお題を頂き、全員でモデリングを行い、その内容を各ツール/企業で その場でシステムを作成するという、かなり凄い内容です。 私も株式会社ウイングとして2回ほど参加しました。 今更ですが、その内容が動画に纏められて公開されていることに気が付きました https://www.palsys.co.jp/2018/04/02/livemodeling-xrad-wagby/ 私はGeneXus(ウイング)で参加しています。 興味がある方は見てみてください。 この企画、見ている人はすごく面白いと思うんですよね。 その場で話した内容が1時間後に、それぞれのツールでそれなりに動くものが、 システムをイメージできる状態で出てくるのは圧巻だと思います。 ただ、参加者はものすごく疲れます。 1時間だと、何かミスれば動かないこともありますし、 聞き洩らしがあってもいけませんし、じっくり考える時間も無いですしね。 今でも時々開催されているようなので、参加/体験してみたい人がいれば コミュニティなどに問い合わせてみて頂ければと思います。

GeneXus社が考えるGeneXusの優位性

2019年10月末にGeneXusJapan様主催のパートナー向けセミナーに参加させて頂きました。 ウルグアイのGeneXus社、Develop社(WorkwithPlusの会社)を招いてのセミナーで、 非常に貴重な時間が過ごせまして、とても良かったです。 本来は個人の私が参加するものではないのですが、株式会社ウイング様の枠で参加させて頂き、感謝です。 株式会社ウイング(GeneXusサイト) https://weing-genexus.com/ 今後、私が興味を惹かれた内容について紹介していきたいと思います。 GeneXusのマーケティング担当の方から、 GeneXus社が考えるGeneXusの優位性 の話がありました。 GeneXusは今では ローコード開発ツール のカテゴリに入っており、 GeneXus社はローコード開発ツールのトップになることを目標としているとのことでした。 約束する?だったかな。。 1) 未来に強いフレームワークである 30年の歴史があり、その時代時代(Caseツール→RADツール→RowCode)で競合となる製品はあったが、 GeneXus以外は全て無くなっていった。 GeneXusは30年間IT技術を追随出来ているもので、未来に強いフレームワークである 2) マルチエクスペリエンスである Java/.Net C#/.Net CoreによるWebシステム Swift/AndroidによるスマートデバイスアプリやApple Watch AIを利用したサービスや、Chatbotなどが対応されており、 一つの側面のシステムではなく多角的に利用できるシステムを構築することが出来る。   これらをGeneXusだけで構築できる 3) ランタイム費用が発生しない GeneXusは開発ライセンスであり、1名の開発者がどれだけの規模のシステムを作っても そのシステムをどれだけの人数が使っても、1名の開発者ライセンスで良いということ。 競合ツールは全てサーバーライセンスで、システムの規模や利用人数による課金となるそうで、 システムを作れば作っただけ、使えば使うだけ費用が発生するということ。 4) 生産性、保守性が高い ともすれば、初回開発については同じ位になる

セミナー情報とローコード開発ツール

イメージ
10月29日(火)にジェネクサス・ジャパン株式会社のGeneXusDay2019が開催されます。 以下のURLから申し込みが出来ますので、興味のある方はどうぞ。 https://www.genexus.com/ja-JP/japan/gxday-2019 残念ながら私は不参加となりますが、 翌日にパートナー向けのセミナーがありまして、そちらへ参加させて頂けることになっております。 最近は 「ローコード開発」 という言葉を聞くようになってきましたね。 GeneXusも「ローコード開発」ツールであるのは間違いないのですが、 キャッチコピーとして、少しインパクトが弱いな~と感じてしまいます。 ただ、意図としては正しく定義されているなとは思います。 「ノンコーディング(ノーコード)」ツール はデザインと設定で業務を実現するために 基本的な機能や用意された機能から選んでいく形となります。 規定のビジネスや、標準的なビジネスのようなシンプルなものを構築するのに適しており ITスキルの無いエンドユーザーでも使える形が一般的です。 「ローコード」ツール の場合は、より広範囲の機能をサポートし、 必要に応じて拡張をさせることができる。というのがポイントになると思います。 特にGeneXusだと、拡張させようと思えばどこまでも拡張できるのが面白いですね。 柔軟な対応が行える反面、エンドユーザーに使ってもらうには少し難しい形となります。 ただ、どちらを使ってビジネスを実現するにしても、 現実のビジネスに対してどのようなシステムや機能を用意すれば、効率的な業務遂行が行えるかを考えるスキルが必要となります。 ユーザーのビジネスや状況に合わせて、ベストな選択をして頂けると良いですね。

GeneXusから作成したPDFの片面・両面印刷設定

GeneXusのレポート機能から作成されたPDFは、実は両面印刷が出来ない状態になっています。 「PDFリーダーでPDFを開いて、印刷設定で「両面印刷」にしても、両面にならない。」 という状態です。 これはPDFファイル作成時の設定でこのような形になっているのですが、 GeneXus上で分かりやすいプロパティ等がある訳では無いのが厄介な所です。 対応方法 Javaでも.NETでも、実行環境の配下に GXPRN.INI というファイルが作られています。 ※最初は無いかもしれませんが、1度でもPDFを出力すれば作成されます Javaの場合はTomcatのアプリケーションディレクトリ\WEB-INFの配下 .NETの場合はアプリケーションディレクトリの直下 ※開発環境であればナレッジベースのターゲットパスのwebフォルダの配下 GXPRN.INI https://wiki.genexus.com/commwiki/servlet/wiki?17091,GXPRN.INI+Format この中の「Duplex」が片面・両面印刷の設定となります。 1:片面印刷のみ 2:両面印刷のみ 3(1,2以外):デフォルトは片面、PDFリーダーの印刷設定に従って両面印刷も可能 GXPRN.INIに以下の記述を追記すれば両面印刷となります。 [] Duplex= 2

GeneXusのメール送信機能で文字化け

GeneXus15からか、GeneXusのメール機能を普通に使って送信をすると メーラーによっては本文が文字化けするようになってしまいました。 GeneXusのメール送信機能 http://wiki.genexus.jp/hwiki.aspx?SMTPSession+データタイプ, 環境と現象 GeneXus16U2 Java1.8 Tomcat8.5 文字化けするのはOutlookが代表です。 Notesのメーラーも一部文字化けしました。 WEBブラウザでのGmailは文字化けしませんでした。 ちなみに添付ファイルに日本語のファイル名を設定すると、 「無題のファイル00046.dat」といった名前に変換されてしまいました。 メーラーによって名前の部分は変わるようです。 ※GeneXusでの記述がテキストメールの場合に発生します &PI_MAIL_MESSAGE.Text = 'テストメールです。テキスト' 原因 メールヘッダーを見ると分かります。 Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?= Content-Type: text/plain; charset=MS932 件名はUTF-8ですが、本文がMS932となっており、 メーラーによっては文字コードが複数設定されていると、文字化けさせてしまうようです。 ※GeneXusでの記述をHTMLメールにすると &PI_MAIL_MESSAGE.HTMLText = 'テストメールです。HTML' Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?= Content-Type: text/html; charset=utf-8 このような形となり、文字化けはしませんが、 添付ファイルは「無題のファイル000XX.dat」という形のままです。 対応方法 残念ながらGeneXus側で件名や本文、添付ファイルの文字コードを調整することは出来ず、 Tomcat側の設定で調整することで、対応できます。 Tomcatの起動オプションで、下記設定を行う。 CATALINA_OPTS= -Dmail.mim

GeneXus16U4は8月中旬かな

GeneXus16U4が2019年8月にリリースされると聞いてましたが、まだのようですね。 8月中旬が目途だと小耳にはさみましたので、もう少し待ちましょう。 WorkwithPlusも併せてマイナーバージョンアップされるそうです。 細かい不具合などチラチラありましたので、改善されてるのを期待してます。

ナレッジベースを名前を変えてコピーする方法

イメージ
ナレッジベースのコピーは、基本的な機能としては無く、少々面倒な手順が必要です。 新しいプロジェクトのために新規ナレッジベースを用意する際に、過去のナレッジベースから開発をスタートさせたい場合は良くあります。 それ以外でも、他者にナレッジベースを渡したい場合にも使えますので、覚えておいて頂くと何かと役に立ちます。 ちなみにGeneXusServerがあると簡単に実施できますが、今回は、GeneXusServerが無い場合の手順を掲載します。 ※以下の手順はGeneXus16U2ですが、GeneXus15 Ev1から同じ手順で行えます。 1.GeneXusを終了する GeneXusが起動していると行えない処理があるため、必ず終了しましょう。 2.SQLServerから元のKBをデタッチ 1)SQLServerのManagement Studioを起動して、  ナレッジベースが格納されているデータベースをデタッチします。 2)システムDBも併せてコピーする場合はそれもデタッチします。  ※システムDBがSQLServer以外の場合は、ダンプ/バックアップ 等 3.KBフォルダをコピー 1)KBフォルダをコピーします。 2)フォルダ名を新しいKB名に変更します。 4.KBフォルダ内の不要ファイルを削除、ファイル名を変更 1)以下のファイルを残して、削除します。  ・GX_KB_TestKB_WWP_16U2.mdf (ナレッジベース格納DB)  ・GX_KB_TestKB_WWP_16U2_log.ldf (ナレッジベース格納DBのログ)  ・knowledgebase.connection (ナレッジベース格納DBがどこにあるかを示すファイル)  ・TestKB_WWP_16U2.gxw (GeneXus起動用のショートカット)  ・TestKB_WWP_16U2_DB.mdf (システムDB)  ・TestKB_WWP_16U2_DB_log.ldf (システムDBのログ) 2)ファイル名を新しいKB名に合わせて変更します。  TestKB_WWP_16U2 → TestKB_WWP_16U2_COPY  ・GX_KB_TestKB_WWP_16U

セミナー情報

イメージ
https://www.genexus.com/ja-JP/japan/gx-solution-seminar-2019 7月25日(木)にジェネクサスジャパン社主催のセミナーが行われます。 GeneXusを取り扱うSier各社が事例や取り組みを発表する内容になっています。 興味があれば是非ご参加ください。

Tomcatの設定6:例外エラー発生時の独自エラー画面の方法

Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 GeneXusが予期しない例外エラーについてはJavaのエラーがそのまま表示されます。 ※予期しない例外とは、プログラムエラーやミドルウェアのエラーなどです。 GeneXusの画面やプロシージャでError_Handlerが設定してあれば、「DBからの例外エラー」はある程度対処することが出来ますが、プログラムミスによる例外エラーや、TomcatからのメモリオーバーフローなどはそのままJavaのエラー画面が出ることになります。 error_handler コマンド http://wiki.genexus.jp/hwiki.aspx?error_handler+コマンド, Javaのエラー画面をそのまま表示することはセキュリティ的にも避けたほうが良く、その対処は、TomcatのErrorPage設定で行います。 ※詳細のサーバー情報をユーザーに見せないように防止することが望ましい Tomcat\webapps\<アプリケーションディレクトリ>\WEB-INF\web.xml 記述場所は<web-app> ~ </web-app>の間 <error-page> <error-code>505</error-code> <location>/error_page.html</location> </error-page> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/error_page.html</location> </error-page> この設定で、例外エラーが発生した場合にはerror_page.htmlに遷移します。 遷移先をGeneXusの画面にするのはやめておいた方が良いです。 DB接続でエラーになったのに、GeneXusの画面を実行したら、さらにDB接続でエラーになってしまいますので。

Tomcatの設定5:メモリ調整と起動モード

イメージ
Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 Tomcatのデフォルトでは初期メモリが128MB、最大が256MBとなっています。 市販のパソコンでもメモリは4GBや8GBは有りますので、初期値は非常に小さいです。 Linuxの場合は、Tomcatの起動オプションで、設定してください。 WindowsのTomcatの場合は設定コンソールから設定します。 サーバーのスペックや構成に合わせて必ず調整した方が良いものは以下の内容になります。 1.メモリ(ヒープ領域) -Xms :Initial memory pool -Xmx :Maximum memory pool Tomcat起動時に初期メモリが確保され、不足したら拡張を繰り返す形となります。(最大値まで) 個人的にはどうせ拡張するのであれば、初期メモリの時点である程度確保しておいた方が良いと考えてます。 その方が拡張の際の処理動作コストも軽減されますので。 どの位の設定が良いのかは一概には言えず、 私の経験則からの例ですが、総メモリが8GBで、TomcatとPostgreSQLが同居したサーバーの場合であれば、初期2GB、最大3GB位の設定にしますね。 2.起動モード Tomcatには起動モードが2種類あり、「クライアントモード」と「サーバモード」があります。 <クライアントモード> 起動時間を短縮し、メモリサイズを縮小するように調整されている。 起動時に「-client」オプションを付けて実行する。 <サーバーモード> プログラム実行速度が最大になるように設計されている。 起動時に「-server」オプションを付けて実行する。 運用時にはサーバーモードで動作させるようにしましょう。 3.メモリ(Permanent領域) -XX:PermSize ・・・ Permanent 領域の初期値 こちらは運用中の影響ではなく、Tomcatが起動できるかどうかという設定です。 プログラムが大量にある場合、Tomcat起動時にロードしきれずにエラーになったり、 起動が遅かったりしますので、その際には拡張した方が良いです。 サーバーモードの初期値は64MBです。 システムの規模がそこそ

Tomcatの設定4:セキュリティ関連の調整

イメージ
Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 セキュリティ関連は常々追加されていますので、これだけ実施すれば大丈夫。ということはありません。 定期的に脆弱性情報をチェックして、バージョンアップや設定追加を行っていくことを踏まえた 運用計画と運用体制を考えていくのが現実的な方法でしょう。 JVN iPedia https://jvndb.jvn.jp/ IPA(独立行政法人 情報処理推進機構) 重要なセキュリティ情報一覧 https://www.ipa.go.jp/security/announce/alert.html 1.不要なアプリケーションディレクトリの削除 TomcatをそのままインストールするとTomcat\webappsにdocsやexamplesなどが入ります。 運用には不要ですので削除しましょう。 managerはTomcatの管理コンソールです。 運用には便利ですが、使わないのであれば削除しましょう。 もし使う場合はIDとパスワードを変更することを忘れずに。 2.HTTPヘッダー情報から不要な情報を削除 HTTPレスポンスには色々な情報が載っており、こちらを対策することがセキュリティ確保に有益ということです。 セキュリティ診断などを行うと必ずチェックされる部分です。 ◆サーバーの製品情報、バージョン情報が含まれないようにする 何も対応をしていないと、HTTPレスポンスヘッダーに  Server: Apache-Coyote/1.1 というサーバー製品とバージョン情報が出てきます。 これを削除するにはTomcat\conf\server.xmlを修正します。 <Connector port="8080" protocol="HTTP/1.1"     server="hoge-hoge"     connectionTimeout="20000"     redirectPort="8443" /> こちらの対応を行うと、server=""に設定した内容が表示される形となります。

Tomcatの設定3:8080ポート以外で動作させる

Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 Tomcatのデフォルトではポート8080で動作します。 URLがhttp://localhost:8080/xxxxx/servlet/xxxxxという形になりますね。 こちらをポート80(http)で動作するようにすると、 URLからポートの記述を省略することができます。 http://localhost:8080/xxxxx/servlet/xxxxx ↓↓↓ http://localhost/xxxxx/servlet/xxxxx http://localhost:80/xxxxx/servlet/xxxxx と同じ 同じように、SSLを使ってhttpsにする場合はTomcatのデフォルトは8443ですが、 443(https)ポートで動作するようにすると、こちらも省略できます。 https://localhost:8443/xxxxx/servlet/xxxxx ↓↓↓ https://localhost/xxxxx/servlet/xxxxx https://localhost:443/xxxxx/servlet/xxxxx と同じ <設定方法> ※Apacheと連携する場合はApacheが80ポートで動作しますので、 以下の設定方法は、”Tomcatのみ”で動作させる場合の設定方法となります。 Tomcat\conf\server.xmlを修正します。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ↓↓↓ <Connector port=" 80 " protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 以上です。 SSL(https)を設定済みの場合は8443と記載の個所を443に変

Tomcatの設定2:アクセスログの活用

Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 Tomcatはデフォルトでアクセスログが出力されます。 インストールフォルダのTomcat\logs\localhost_access_log.YYYY-MM-DD.txtです。 こちらの設定がTomcat\conf\server.xmlで調整できます。 <!-- Access log processes all example.      Documentation at: /docs/config/valve.html      Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"      prefix="localhost_access_log" suffix=".txt"      pattern="%h %l %u %t &quot;%r&quot; %s %b %D" /> 少々バージョンが古いですが、設定内容は以下のURLが参考になります。 Tomcatのアクセスログを出力する http://www.m-bsys.com/code/tomcat-accesslog デフォルトが日付毎のローテートですし、出力内容としても特に問題はないと思いますが、 追加で「処理時間(sec)」を出力するようにしておくと、 リクエストに時間が掛かったアクセスを分析することが出来て良いかと思います。 分析方法は「アクセスログ分析ソフトやサービス」といったものが色々とありますので、 そちらを使っていくのだと思いますが、そこまでは私も実施したことが無いです。

Tomcatの設定1:データソースを使用する方法とメリット

イメージ
GeneXusに限った話ではないのですが、 ジェネレータにJavaを選んだ場合はTomcatを利用することが多いかと思いますので、 Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 GeneXusのデフォルト設定だと、DBへの接続方法はJDBCで、 コネクションプーリングもアプリケーション側で実施する形となります。 [Enable Connection Pooling] プロパティ http://wiki.genexus.jp/hwiki.aspx?%5BEnable+Connection+Pooling%5D+プロパティ, このままでも特に問題は無いのですが、 私の経験上、Tomcatのデータソースを利用する方が安定性が少し上がります。 数年前の事例ですが、サーバーを起動したまま運用を続けていくと、 徐々にTomcatのメモリが蓄積されていき、数週間すると動きが悪くなってくる。という現象がありました。 サーバースペックや、利用人数、アプリ側の作り方など、色々と影響は考えられますが、 何か特定の処理や操作をした場合ではなく、少しづつゴミデータが蓄積されているような状況でした。 このシステムでTomcatのデータソースを利用するようにしたところ、 問題が解消され、メモリが綺麗に開放されるようになった。 という経験があります。 このことから、Tomcatのデータソースを利用した方が、安定性が良いのかと思う次第です。 やはり世界中の技術者に10年も20年も使い込まれたTomcatは性能や品質が良いのでしょうね。 ただ、まあ、運用計画的に1週間に1回位は再起動をした方が 何かと良いのではないかとも思いますけどね。 <設定方法> 1.TomcatのcontextにDB情報を定義する Tomcat\conf\context.xmlか、 Tomcat\conf\catalina\localhost\<アプリケーション名>.xmlのどちらかに記述する 記述場所は<Context> ~ </Context>の間 <Resource name="jdbc/ 【任意のデータソース名】 " auth=&

セミナー情報

イメージ
超高速開発&エンタープライズアジャイル2019 https://www.nikkeibp.co.jp/seminar/event/ssd190523/ 5月23日(木)に「日経 xTECH」主催でセミナーが行われます。 基調講演の「会計検査院で初めて挑んだアジャイル開発」が、 私が携わったプロジェクトとなっています。 興味があれば是非ご参加ください。 ウイングGeneXusセミナー2019 http://weing-genexus.com/News/gx_seminar2019.html 5月24日(金)に株式会社WeING様のセミナーが行われます。 カナディアン・ソーラー・ジャパン株式会社様の事例は GeneXusを活用したアジャイル開発、短納期を実現した事例でして、 私が携わったプロジェクトです。 株式会社大成情報システム様の事例は フリーアドレスの座席表を管理するシステムで、画面上でイスや机を動的に配置したり、 タッチパネルで自分が今日座る席を選択したりといった面白いUIをもっており、 GeneXusとHTML&Javascriptを組み合わせたハイブリッド構成です。 こちらは私は少し技術支援という所でした。 興味があれば是非ご参加ください。

GeneXusデフォルトのJDBCドライバー(SQLServer)で問題

他では聞いたことの無い事例ですが、 同じ現象が起きる人がいるかもしれないので、掲載します。 GeneXusでJava/SQLServerのシステムを構築し運用していた所、 「データ登録時に、まれにエラーが発生することがある」という現象が出ました。 エラーの内容 HTTPステータス 500 - java.sql.SQLException: I/O Error: Connection reset HTTPステータス 500 - java.sql.SQLException: Invalid state, the Connection object is closed. 必ず起きるわけではないので、調査がかなり難しかったのですが、 結果としては、DBにBLOBのデータがあり、 画面からデータを登録する際に、ファイルもアップロードするのですが、 ファイルサイズが大きい場合に起こりやすいという状態でした。 GeneXusでJava/SQLServerのシステムを構築した場合、 JDBCドライバーはデフォルトでは、jTDS Draiver(Type4)が設定されます。 こちらはオープンソースのJDBCドライバーとなります。 普段は特に問題ないのですが、BLOBのファイルについて、 サイズが大きい場合やアップロードの頻度が高い場合に 予期しないエラーが発生する(ことがある) 解決方法として、SQLServerには、Microsoftが提供するJDBCドライバーがありますので、 そちらのドライバーを使用することです。 例: https://docs.microsoft.com/ja-jp/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server?view=sql-server-2017 具体的な原因が不明なので、スッキリはしないですが、 JDBCドライバーを入れ替えて以降はエラーが発生せず、 1年以上問題なく稼働しているので、解決方法としては正しいのかと思われます。

サーバー構成(Java)

Javaの場合であれば最近はTomcatを利用することが大半です。 一昔前は有償のWebLogicやWebSphereなどを使うこともありましたが、 Tomcatで十分運用できるので、あまり使わなくなってきました。 良く聞かれるのが 「 Apache&Tomcatの構成にするんですか? 」という話 15年前では当たり前の構成でした。 そのころはAPサーバー(Javaコンテナ)と言われるミドルウェアとWEBサーバーは別で製品化されており、 APサーバー(Javaコンテナ)側についてるオマケのWEBサーバー機能が貧弱だったためです。 また、静的コンテンツ(画像やHTML 等)が多い場合は、 Apache(WEBサーバー機能)だけでリクエストを処理することが出来て、 Tomcat(APサーバー機能)は処理する必要がなく、負荷分散が出来るという点ですね。 今のTomcatではWEBサーバー機能は問題ありませんし、 そもそもGeneXusで生成されるのはプログラムなので、 Apacheだけでリクエストが処理されることは殆どないので、 負荷分散としてもほぼ効果がないと考えてます。 なので、私は 「 Tomcatだけで良いですよ 」と答えています。 ただ、Apacheはリクエストを処理する機能が多く便利なので、 それらを使いたい場合には、導入しても良いと思っています。 また、シングルサインオンなどでActive Directory(アクティブディレクトリ)と 連携したい場合は、IIS&Tomcatというのも有りですね。 2プロジェクトで運用した経験があります。 いずれ時間があるときに以下の内容を整理したいと思います。 ・Tomcatのアクセスログの調整 ・Tomcatのデータソースを利用するメリットと設定方法 ・Tomcatのセキュリティ関連の調整(サーバーバージョンやヘッダーの設定) ・TomcatのErrorPage設定(GeneXusのErrorHandlerルールの範囲)

アジャイル開発とGeneXus

GeneXusといえばアジャイル開発! と言わんばかりにGeneXus代理店の各社が公表してますね。 私はアジャイル風な開発方法を10プロジェクトほど経験しました。 アジャイル、スパイラル、イテレーション、インクリメンタルといったように 似たような言葉が世の中にありまして、どのスタイルを言っているのか、 分からなくなることがありますので以下に記載します。 ※一緒に仕事をしている方が整理してくれたのですが、 非常に分かりやすかったので、載せさせて頂きました。感謝です。 1)アジャイル  ・繰り返し開発だが、開発を完了したものは一定の品質が常に保証される  ・期間内で品質を保証した機能を提供する  ・「要件定義~設計~開発~テスト~リリース」のフローを繰り返すイメージ  ・2巡目には要件定義(1巡目の機能の改修要件&追加機能要件)を行い、   開発(改修又は作り直し&新規開発)を行い、テストしてリリースという形 2)スパイラル  ・アジャイルとの違いはプロトタイプを使う事  ・期間内で作り上げた機能の品質を次の期間で向上させていく 2―1)インクリメンタル  ・繰り返しの中で新しい機能を追加していく  ・要件定義~基本設計までを完了し、その後の詳細設計~開発~テストを   機能ごとに繰り返していくイメージ  ・木の幹をしっかりと決め、枝葉を順番に作っていく感じか 2―2)イテレーション  ・繰り返しの中で機能の品質を高めていく  ・要件定義~設計~開発を繰り返しながら品質を高めていき、最後にテスト~リリースを行う  ・木を全体の輪郭から作っていき、徐々に中身を濃くしていく感じか こうして整理すると、私が行ったPJはスパイラルが基本で、1)アジャイルは殆どありませんでした。 ただ、多くの人は分かりやすさ・伝わりやすさ優先で、 ・ウォーターフォールじゃなくて繰り返して開発するのは大体「アジャイル」 と言っているような気もします。実は私がそうです。 実際のところ、上記の 1)アジャイルは本当にメリットがあるのかどうか疑問 です。 開発者であれば、テストを行って品質を保証することの大変さはわかるかと思いますが、 1巡のたびに、単体テスト・結合テスト・システムテスト・受入テストまで

コラボDBのピックアップ

イメージ
GeneXusの最新情報をチェックしていたところ、 GeneXusJapan様のコラボDBに非常に良い情報がアップされてました。 テクニカル・ワークショップ関連の情報のようですので知っている人も多いのかとは思いますが。 GeneXusのFAQサイト「コラボDB」 https://www.gxsupport.jp/gxfaq/gamexamplelogin.aspx 3113 GeneXus Report Editorとは GeneXusにもエンドユーザーがカスタマイズできる帳票の作り方があるんですよね。 知ってはいるのですが、どうも記憶に残りずらいのか いまだ顧客へ提案したことが無かった機能です。 エンドユーザー側で帳票レイアウトを調整したいという要件があった時には これを思い出さないといけません。 普通に実現しようとした場合は、かなり高額な帳票ツールやサービスになってしまう所が GeneXusの機能として対応できる可能性がありますので。 3114 ノンプログラミングアプローチとダイナミックトランザクションによる参照系一覧画面の高速化 相当な力作の資料でした。 GeneXusの難しい部分なので、わかりずらいかとは思いますが、 この内容が分かっているかどうかで、作った画面や帳票の品質・レスポンス・開発効率が かなり違いますので皆さんにも是非読んでいただきたい内容です。 かという私も、「ダイナミックトランザクション」は まだそれほど利用頻度が高くありませんが、今後は使っていくことになるだろうと予想しています。 3119 IsValid問題について 私も昔から利用しないことを推奨してましたが、 メーカーの資料としては、、、どうなんでしょう。 これからデジタルトランスフォーメーションや高速開発が浸透して、 GeneXusの出番もどんどん増えてきますので、 もっと品質を上げていっていただきたいと思います。 3120 KB分割論 少々懐かしい響きでした。 第1回のGeneXusユーザー会で、私が行った内容も「KB分割」でした。 その時はGeneXusX Ev1で、ビルド時間が非常に長く(マルチコアCPUに対応してなかった) KB分割するための指針を取りまとめて発表した思い出

GeneXus関連のブログ情報

GeneXus関連のブログやら、最新情報などを見て回りました。 技術情報などをアップしてくれている会社が幾つかありまして、非常にうれしいです。 GeneXusはまだまだ日本の情報が少なく、Googleで検索してもあまりHITしないですので、 少しずつでも情報が増えてくることはありがたいです。 また、最新機能などを自分で調査するのも時間がかかりますので、 情報を試して、公開して頂いているのも助かりますね。 以下に、幾つか気になった情報を掲載します。 株式会社カサレアル様 https://bsblog.casareal.co.jp/category/genexus 最新機能などの情報を精力的に上げて頂いており、勉強になります。 「WorkWithPlusでのPDF帳票の作成」 は良いですね。 試さないとと思いつつ、なかなか出来なかった機能でした。 GeneXusの帳票を作るには、レイアウトが地味に時間が掛かって面倒なのですが、 これであればレイアウト調整作業が簡単にすみそうです。 これからは画面と同様に帳票もWWPでレイアウトできる範囲で設計すれば、 非常に効率的に開発ができますね。 日本の帳票は見た目を気にする傾向にありますが、 社内資料であれば、開発効率・保守性を高めた形のレイアウトにした方が、 必要な資料をすぐに出せるので、会社としてのメリットが高いですからね。 「GeneXus 15の新機能 その5 ~Log4jとの連携~」 も GX16からと思ってましたが、15U12で入ってきましたね。 何年も前から、ずーっと待ってましたが、ようやく実装されたか。という感じです。 ただ、オンラインとバッチとでログを分けたりだとか、 出来ると良いんですけど、そこまでの対応は出来なそうな気配。 要調査ですね。 株式会社コアネクスト様 http://www.corenext-genexus.com/category/gxtips/ 少し前から定期的に情報を公開して頂いているようで、勉強になります。 「【GXTips】トランザクションの明細行画面テクニック」 の中の 明細行の「×」削除ボタンの無効化が良かったです。 私がユーザーから要望された場合には、CSSで無理やり触れなくしたりとい

GeneXusのリリースノート

GeneXus15になってからリリースノートが見づらくなったなと思ってました。 Ev3まではGXTecnicalサイトでPDFが公開されてまして、暫くするとジェネクサスジャパンのHPで翻訳したものが公開されていました。 GeneXus15になってからはジェネクサスジャパンのHPで公開されなくなったのと、GXTecnicalサイトも以下のような形で、自分で検索しないと出てこなくなってました。 https://www.genexus.com/en/developers/rn?data=0;4;v16;3;v16;3;; しかもこれが非常に見づらい。。。 そんな風に思っていたのですが、最近ようやくWikiでリリースノートがまとめられていることに気付きました。 GeneXus15関連のリリースノートまとめ http://wiki.genexus.jp/hwiki.aspx?GeneXus+15+%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88, GeneXus15U10のリリースノート http://wiki.genexus.jp/hwiki.aspx?Genexus+15+Upgrade+10 GeneXus15U12のリリースノート http://wiki.genexus.jp/hwiki.aspx?GeneXus+15+Upgrade+12, GeneXus16はまだ日本語版は出てないようですので、英語版 https://wiki.genexus.com/commwiki/servlet/wiki?40640,Category%3AGeneXus+16+Release+Notes これがあれば纏めて見れるし、詳細にもリンクできるので良かったです。 GeneXus15も終わろうかというタイミングでようやく見つけるという体たらく。 頑張ってGXTecnicalサイトを見ていた自分が残念すぎました。

とあるシステム開発のGeneXus話

1月は丸々記事を書く時間が取れませんでした。 昨年末からヘビーなプロジェクトが始まり、それに加えて支援案件を数件持っていたので大変でした。 今もまだ大変な状態ではあるのですが、支援をしていたプロジェクトが一つ終わりまして、非常に良い経験でしたので、少し記事にしてみます。 そのプロジェクトはお客様が中心でGeneXusを進めて、それに対して週に数時間という形で支援をさせて頂いたのですが、お客様のコンセプトが 「利用ユーザーを満足させつつ、GeneXus&WorkWithPlusの  最大メリット(コスト・スピード)を出すこと」 でした。 それを実現するために最新バージョンのGeneXusとWWPとGAMを使って、 アジャイルの形で業務システムを構築していきました。 業務画面:25本 帳票:6本 マスタメンテ:10本 選択プロンプト:7本 計48本 要件定義含めて、約5人月で完了(支援も含む) 開発期間は3.5ヶ月 WWPの利用率は約8割! 帳票や業務画面の一部はWebPanelとプロシージャでしたが、 殆どの画面をWWPで実現し、しかも デザインも綺麗。 GAMを使って 権限制御やメニュー制御 もあり WWPの Audit機能を使ってデータ更新履歴 もあり 利用ユーザーも、綺麗なデザインや要望がほぼすべて実現されたことで満足していましたし、 GeneXusを進めていた担当者様も理想的な形のシステムが出来たとのことで満足されていました。 私自身、GeneXusでシステムを多く作ってきましたが、WWPの利用率をここまで高められたのは初めてでした。 最新のGeneXusとWWPはやっぱり良いですね。本当に色々できます。 ただ、やっぱり要望を実現するために、プログラムで作りこんでしまうか、 標準機能を工夫して要望を満たすかの取捨選択は幾つも出てきました。 その時にコンセプトを曲げずに、良い形を選択して頂けたのが大きかったです。 非常に良い経験をさせて頂きまして、感謝しています。 この規模のシステムであれば、GeneXusではない通常のシステム開発だと15人月位は掛かると思います。 期間は5・6ヶ月かな。 やはりシステム開発は、 ユーザーと一緒に軽く・早く作っていくのが一番 だ