投稿

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

Tomcatで画面表示の速度改善

イメージ
GeneXusのJavaでTomcatを利用している場合に、効果があった速度改善を記載します。 GeneXusはデフォルトで表示する画面のHTMLページを圧縮する設定になっています。 [Auto Compress Http Traffic] プロパティ http://wiki.genexus.jp/hwiki.aspx?%5BAuto+Compress+Http+Traffic%5D+プロパティ, HTMLページはGeneXusがやってくれますので、 JavaScriptやCSSをサーバー側の設定で圧縮することで更に改善することができます。 JavaScriptやCSSも全部合わせればかなりのサイズになりますので、 サーバーがクラウドなどで遠隔地にあり、転送速度がボトルネックとなっているシステムだとかなりの効果がでます。 社内LAN上のシステムの場合だとさほど効果はないかもしれませんが、試してみる価値はあると思います。 設定方法 ※Tomcat8.5で記載 Tomcat/conf/server.xmlを編集 <Connector port="8080" protocol="HTTP/1.1" の箇所に以下の設定値を追記 compression="on" compressionMinSize="2048" noCompressionUserAgents="" compressableMimeType="text/html,text/css,text/plain,text/javascript,application/javascript,application/json,image/svg+xml" useSendfile="false" 例: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" compression="on" compressionMinSize="2048" noCompressionUserAge

GeneXus17リリースとGeneXusDay2020

イメージ
10月20日に本国の方でGeneXus17がリリースされるようです。 最近16を使い始めたような気がしていますが、もう17ですか。 GeneXus 17 Toc https://wiki.genexus.com/commwiki/servlet/wiki?46066,Toc%3AGeneXus+17 GeneXus 17 Release Notes https://wiki.genexus.com/commwiki/servlet/wiki?46067,Category%3AGeneXus+17+Release+Notes, また、GeneXusJapan様のGeneXusDay2020開催日が決まりました。 2020年11月12日(木)、今回はWebinarでの実施のようです。 GeneXus Day 2020 Webinar https://www.genexus.jp/archives/1005 これまで参加しづらかった方も参加しやすくなって良いですね。 事例発表の「カナディアン・ソーラー・ジャパン様」はウイング社で 私が担当させて頂いたプロジェクトですので、発表をとても楽しみにしてます。

GeneXus16 U10リリース

イメージ
  2020年8月26日(水)に 「GeneXus16 U10」 がリリースされました。 合わせて 「WorkwithPlusも13.16 for GX16U5-U10」 がリリースされています。 本国での最新もU10なので、本当の最新版の状態ですね。素晴らしい! まあ私はつい先日U4→U8のアップグレード作業をしたばかりだったので、 再度U10へのアップグレード作業しないといけませんが。。。 製品ダウンロード https://www.genexus.com/ja-JP/japan/downloads/products-jp リリースノート GeneXus 16 Upgrade 9 http://wiki.genexus.jp/hwikibypageid.aspx?45275 リリースノート GeneXus 16 Upgrade 10 http://wiki.genexus.jp/hwikibypageid.aspx?45624

WorkwithPlus13の通知機能(Notifications)

イメージ
かなり楽しみにしていた機能でして、詳細を確認してみました。 利用方法としてはWorkwithPlusのデザインシステムウィザードのステップ⑤で、 「通知を含める」にチェックを入れるだけです。 右上に通知アイコンと通知件数のバッジが表示される。 クリックするとこんな感じ。 私の想像では通知用のテーブルとAPIが用意されて、それを使って通知を登録したり、 通知から遷移したりするのだろうと思っていたのですが、もっと全然シンプルな方式でした。 結局のところは上記画像の見た目のコントロールのみが提供されます。 コントロールにはSDTで情報を受け渡す。 SDTの中に通知情報とクリックしたときのURLをセットしておく。  ①通知情報のSDTの編集は自分で行う  ②通知情報のSDTの元ネタは自分でトランザクション定義をする  ③通知情報を管理するための部品は自分で用意する という感じです。 すごくシンプルで潔く、自分で用意しないといけないものが多いですが、 自由度は高いので、この形で良いのかなと感じました。 通知を消すタイミング(見たら消す、処理完了したら消す、時間で消す 等)とか、 通知の管理(部門や権限で表示範囲の制御、共通通知や個別通知の分類 等)とか、 色んな要件が出てきたときに、通知トランザクションの構造や仕様も融通が利かせられますので。 通知のコントロールはマスターページに配置されており、 WorkWithPlusMasterPageのEventsを確認すると、以下の記述があります。 ◆「すべての通知をチェック>」のメッセージ内容とクリックしたときにどこに遷移するかを設定する &NotificationsData = new() &NotificationsDataItem = new() &NotificationsDataItem.Title = 'WWP_Notifications_CheckAllNotifications' &NotificationsDataItem.EventKey = !'SeeNotifications' &NotificationsDataItem.IsDivider = False &NotificationsData.Add(&

Excel変換ツール(GeneXusJapan社)

イメージ
2020年2月25日にGeneXusJapan社より「Excel変換ツール」がリリースされ、ようやく試してみました。 GeneXus Japan 製品ダウンロード https://www.genexus.com/ja-JP/japan/downloads/products-jp 概要 ・Excelに記述したトランザクション定義、サブタイプグループ定義、SDT定義を読み込み、  GeneXusでインポート可能なXML形式に変換して出力する ・トランザクション定義では「項目属性」と「ドメイン」も合わせて変換され、「式」も「AutoNumber」も 「ContextualTitle」も定義可能 使い方のイメージ ・「トランザクション定義」のExcelファイル、「サブタイプグループ定義」のExcelファイル、 「SDT定義」のExcelファイルを用意する ・コマンドプロンプトを使って、ExcelファイルからXMLファイルを生成する ・GeneXusのインポートでXMLファイルを指定して取込 ※詳細はツールに同梱されている「ExcelToGXご利用方法.xlsx」「コマンドプロンプトサンプル.txt」を確認ください これまでExcelなどで定義した設計情報をGeneXusに取り込むというのは、各代理店が個別に行っていたり、有償で公開されていたりという形でしたが、正式版がメーカーから公開されたのは嬉しいです。 是非、これからもバージョンアップを行って頂きたいものです。 使い方のイメージが掴みづらかったのですが、わかれば特に問題はなく、 感想としては現時点ではギリギリ最低限の機能までかな、という所です。 注意点と今後への期待 ①現在はトランザクション定義の初回取込としての機能となっており、  GeneXus側でトランザクションを修正した場合に、再度ツールからのXMLを取り込むと、  GeneXus側で行った修正が元に戻る(初期化)される形となります。    プロジェクトが進む中では取り込んだ後に定義するプロパティやRulesもありますし、  GeneXus→Excelへの逆変換機能が欲しい所ですね。 ②ドメインについてはトランザクション定義Excelから自動的に作成されるのは良いです。  ただ、定数としてのEnumValueは定義できないようですので、EnumValueが定義出来

画面の初期表示や画面遷移で妙に時間がかかる、サーバー側のイベントの実行結果が怪しい場合

重めの画面を表示するのに、想定以上に時間が掛かっていることはありませんか。 画面遷移する際に、想定以上に時間が掛かっていることはありませんか。 そして、サーバー側の処理をデバッグすると、Start/Refreshが2回以上実行されていることはありませんか。 そんな場合は、この問題が発生している可能性があります。 GeneXusの[Web User Experience]プロパティで、Smoothモードを使用している場合に WebPanelのサーバー側処理で5秒以上経過すると必要以上のオペレーションが発生してしまう https://sac.genexus.jp/viewtr_saclist.aspx?39076 ※こちらは初期画面表示や画面遷移(GETによるアクセス)の場合に発生するようでして、 1画面内のボタンイベント(POSTによる処理)の場合は発生しないようです。 記載の中の「規定の挙動」というのは何のメリットがあるのでしょうね?? リトライすることで何かメリットがあるなら納得も行くのですが、 普通のシステムであればとくにメリットが無いように感じるのですが、、、 まあ、5秒だと重めの画面で不意に発生してしまうことも有りそうですので、 config.gxに設定して、上限値を上げておいた方が良いですね。 config.gxの適用手順 ①対象のナレッジベース直下にconfig.gxという名前のファイルを作成します。 ②config.gxをテキストエディタで開いて、以下のテキストを編集して保存します  以下は10分(600秒)の設定 SPAHttpRequestTimeout = 600000 ※もし他の設定値がある場合は改行して編集してください。 SPAHttpRequestTimeout = 600000 EncryptDynCalls=SITE ③GeneXusで対象のナレッジベースを開きなおし、「すべてリビルド」を実行

プロンプト画面が滲む、ぼやける問題

イメージ
GeneXus16を利用してプロンプト画面を表示した際に文字や罫線が滲む、ぼやける現象が発生しました。 ブラウザによって発生したりしなかったり、 ブラウザのズームを変えていると発生したりしなかったり、 プロンプトのウィンドウを動かすとなおったり、 ウィンドウサイズによって発生したりしなかったりといった感じで、 どうにも現象が把握しづらかったのですが、原因としては、CSSのtransformのようです。 参考URL: https://myscreate.com/transform-bugs/ https://hail2u.net/blog/webdesign/centering-with-transform-causes-blurry-something.html GeneXusのCSSの設定がイマイチだったようですね。 対応方法ですが、ThemeのPopupクラスに対して[Cusutom Properties]プロパティに以下を適用してください outline: 1px solid transparent; これで解消されるかと思います。

Chrome 83のバージョンアップに伴うデザインの不具合

イメージ
Choromeのバージョンアップ83の影響で、GeneXusで作ったシステムの画面に影響が出ていました。 ※4週間くらい前の話題なので、既に対応している方が多いとは思いますが、、、 GeneXusの画面でHTMLデザイン(レスポンシブでない)を利用していると発生する模様で、 入力エリアの枠線が太くなったり、paddingが増えた影響で1行で収まっていたものが改行されてしまったりといった現象です。 こちらですが、開発者ツールで見て頂くと分かるのですが、 Inputタグに対して、paddingやborder-style等の設定が追加されていまして、 「user agent stylesheet」というのが原因となります。 「user agent stylesheet」とはブラウザが既定で適用するCSS となります。 83のバージョンアップによって、今までと違う設定が適用されるようになったことで、発生していました。 これは不具合なのでしょうかね。 そのうちに修正されそうな気はしますが、とりあえずは元のデザインに戻した方が良いですよね。 ちなみに私は5月最終日、保守しているシステムのバージョンアップ作業を行っているときに 急に発生してビビりました。テストをしているときには出てなかったはずなのに??? という感じで深夜に泣いてました。 1時間くらいで対応出来たので、特に問題はなかったですが、心臓に悪いので勘弁してほしいです。 修正方法は幾つかあると思いますが、 要は既定の設定に従わずに、GeneXusのCSS(Theme)で正しい設定をしてやれば解消されます。 こちらのシステムではINPUTタグとSELECTタグに対して、元々の状態を設定してあげることで解消されました。 ただ、それだとシステム内の全てのINPUTタグとSELECTタグに適用されてしまいますので、 デザインによっては他に影響が出てしまうことが有ると思いますので、注意して対応してください。

GeneXus 設計書自動作成サービス(WeING社)

イメージ
ウイング様が GeneXusナレッジベースからの設計書自動作成サービス を始めたそうです。 https://weing-genexus.com/auto-document.html GeneXusの開発プロジェクトでは設計書はなるべく簡素にすることが多いので、 (設計書を作るのを削減するわけでは無く、システムを作る上で必要な設計書だけ作成する) こういったサービスがあると、保守用ドキュメントや、設計書を重視するユーザーにはメリットがありそうですね。 自社で人員を割いて作成するより効率/コストが良いのだと思いますので。 出来ればCRUD図もあるとよいですね。 CRUD図があると更に別のメリットが生まれると思います。 業務が複雑なシステムや、サブシステムごとに開発担当者/会社が分かれているような場合に システム間結合の確認をサクッと行えます。 各機能ごとのテーブルの追加修正削除が記載されたCRUD図 であれば、 製造がある程度進んで結合テスト前あたりで作成すれば 設計者が要件定義/基本設計での想定を踏まえてチェックすることで、 「あれ?この機能でこのデータを追加しないといけないんだけど・・・」 「この機能でこのデータを更新しておかないと・・・」 といったバグを拾うことができます。 または、 各機能ごとのテーブル項目レベルの追加修正削除のCRUD図 があると最強です。 「この項目をどの機能でも更新してないんだけど・・・」 「この機能でこのデータのステータスを更新しないといけないんだけど・・・」 といったところまで拾うことができます。 以前に手作りでCRUD図を作ったことがありますが、 チェックにも業務の把握にも、保守にも非常に役に立ちました。 ただ、手作りだと作るのが大変で、保守メンテも少々面倒にはなりましたが。 ちなみにGeneXusの参照機能で、惜しいところまで情報を取得することは出来ます。 プロシージャを右クリックして「参照」をします。 こんな感じでテーブルに対してのCRUDが出力されます。 凄く良い感じですよね。 ただ、残念なのがビジネスコンポーネントを使っての追加更新削除には対応されていなく、 For each/Newでのアクセスしか拾えていないんですよね・・・残念。

IPAがアジャイル開発版「情報システム・モデル取引・契約書」を公開

イメージ
2020年3月31日にIPA(独立行政法人情報処理推進機構)が アジャイル開発版「情報システム・モデル取引・契約書」 を公開しました。 https://www.ipa.go.jp/ikc/reports/20200331_1.html デジタルトランスフォーメーション(DX)の時代に向けて 「ユーザ企業」「ベンダ企業」双方がアジャイル開発の特徴を理解した上で、 価値の高いプロダクトの開発を目指して協働しながら開発を進めるためのモデル契約 とのこと。 私の方がちょうど「アジャイル開発の進め方」、「見積方法」などを纏める作業をしてまして、 タイムリーな情報でした。 IPAからこういった指針がでると、アジャイル開発も大分浸透してきたと感じます。 ユーザーへアジャイル開発をお勧めするにも、説得力が増してきます。 契約はやはり「準委任契約」が基本なのですね。 アジャイル開発の場合はユーザーとベンダ双方に「信頼」と「システムを運用させるための強い意志」 が必要と考えているので、準委任契約でも請負でも難しい所があるんですよね。 ・準委任にするとどうしてもユーザー側の責任が大きく、  もしベンダ側にスキルが欠けていたらユーザーが納得する期間内での完成が難しい ・請負だと全体の見積が難しい 双方が納得いく形での契約形態を考えてみたいと思います。

GeneXusX Evolution2とTomcat7の環境設定

X Evolution2とは今更な情報ですが、先日Ev2とTomcat7の環境をセットアップする必要があり、 この組み合わせの場合に幾つか注意点がありました。 もしかしたら誰かの役に立つかもしれないので、掲載しておきます。 環境 GeneXusX Ev2U7 Tomcat7 Java7 SQLServer 前提 Tomcat7からInvokerが使用不可となった影響で、 TomcatにServletをロードさせるための対応が必要となりました。 もう少しバージョンが上がるとGXScanner.jarが用意されるのですが、 上記バージョンの組み合わせでは動作しないようでした。 現象 ・Tomcatが起動時にエラーとなる。Tomcat\logs\配下のログを確認 ・Tomcatにはログが出ていないが、404エラーが出て画面が呼び出せない 対応 ビルド実行後、Tomcatのアプリケーションディレクトリの\WEB-INF\web.xmlを修正 ①GXOAuthAccessTokenの記述を削除 http://sac.genexus.jp/viewtr_sac.aspx?33789, <servlet> <servlet-name>GXOAuthAccessToken</servlet-name> <servlet-class>com.genexus.webpanels.GXOAuthAccessTokenDummy</servlet-class> </servlet> <servlet-mapping> <servlet-name>GXOAuthAccessToken</servlet-name> <url-pattern>/oauth/access_token</url-pattern> </servlet-mapping> ②Invokerの記述を削除(記述が無ければそのままで良い) https://www.genexus.com/en/developers/websac?data=29603;; <servlet>

GeneXus16 U6リリース

イメージ
2020年1月22日(水)にGeneXus16 U6がリリースされました。 ビルド性能が向上しているということなので期待ですね。 製品ダウンロード https://www.genexus.com/ja-JP/japan/downloads/products-jp GeneXus16リリースノート http://wiki.genexus.jp/hwiki.aspx?GeneXus+16+リリースノート, WorkwihtPlusは13が出るかと期待しましたが、残念ながら12.26でした。 WorkwihtPlus13は2020年春が目途らしいです。 WorkwihtPlus12リリースノート http://docs.dvelopsoftware.com:8081/WikiPlus/servlet/com.wiki.wiki?2283,Toc%3AWorkWithPlus+12,

WorkwithPlus 機能紹介おまけ

イメージ
2019年10月末のGeneXusJapan様主催のパートナー向けセミナーでの情報です。 WorkwithPlusの機能紹介ではないですが、 セミナー内で出てきた有益な情報を記載します。 WWP生成時(保存時)のエラーについて詳細を出せる WWPのパターン設定を変更して保存した際にエラーが発生すると、GeneXusとしてオブジェクトが 保存できない状態になるので、実際の該当のエラー箇所が分かりづらい場合があります。 大体は小まめに保存することで、対応するのが基本的な対応となりますが。 GeneXusのオプションで、こちらのエラー内容をもう少しだけ分かりやすくすることができます GeneXusのツールバーから[ツール][オプション]を選択して、 [パターン]の「生成エラーを表示」プロパティをTrueにします。 こうすると、エラーが発生した際に「詳細を表示しますか?」とプロンプトがでて、 表示すると、エラーを含んだ状態のオブジェクトが表示される形となります。 ただ、それでも分かりづらいですので、やはり小まめに保存しましょう。 Gridのカラムを固定して、横スクロールさせる GeneXus Marketplaceに公開されている「Web Extension Toolkit」を使用することで 簡単に一覧の左側の幾つかのカラムを固定して、それ以降を横スクロールさせることが出来ます。 ※標準Grid限定です GeneXus Marketplace「Web Extension Toolkit」 https://marketplace.genexus.com/product.aspx?webextensionlibrary,en 説明欄の[Installation instructions]に従ってインストールした上で、 Eventsに以下の記述を行います。 Web.GridExtension.FreezeColumns("Grid", 2, 600) 引数1:Gridコントロール名 引数2:左から何カラム目までを固定するか 引数3:Gridの全体のWidth ↓↓↓見づらいですが、[イベントSEQ]が固定された状態で横スクロールしています。

新年のご挨拶

イメージ
謹んで新春をお祝い申し上げます。 昨年は28件の記事を投稿できました。 本年も同じようなペースで投稿していくと思います。 製品開発を始めているのですが、週に数時間のペースで進めているので、なんとも進捗があがりません。 1年たっても想定の4分の1位かな。 本年はもう少し気合を入れて本年中に形にすべく、頑張ります! 2020年もどうぞ宜しくお願いいたします。