投稿

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

2013年、今年もありがとうございました

イメージ
早いもので今年も残すところあと4日となりました。ジーマインドは本日で仕事納めとなります。本年も皆様には大変お世話になりました。

来年はジーマインドを創業して10年目となります。この節目の年にジーマインドのさらなる飛躍と、GeneXusの一層の普及を目指して今年以上に邁進するつもりです。

来年もご愛顧の程、よろしくお願い致します。皆様も良いお年をお迎え下さい。





Internet Explorer 11 (IE11)の対応

イメージ
Windows8.1がリリースされ1ヶ月以上が経過しました。Windows8.1からInternet Explorer(以下IE)も11にバージョンアップされました。又、Windows7用のIE11もリリースされています。

一方、GeneXusの最新バージョンであるEvolution2 Upgrade3で生成さたアプリケーションをIE11で動作させると、一部動作しません。


開発者ツールでこの時の動作を見てみると


恐らく、IE11になってJavaScriptの仕様が一部変更になった箇所があると思われます。

このエラーの対処ですが、Artechのサイトを探してみるとWikiの中のページ「GeneXus X Evolution 2 Hardware and Software Requirement(ハードウェアとソフトウェアの前提条件)」に以下のコメントがありました。



という事で、まもなくリリースされるアップグレード4にてIE11対応がされるそうです。
プレビュー版はこちらからダウンロードできます。


【News】株式会社システムライフ主催「GeneXus紹介セミナー in 博多」が開催されました

去る11月13日、株式会社システムライフ主催の「GeneXus紹介セミナー in 博多」が開催されました。以下、同社Facebookページより。


投稿 by 株式会社システムライフ(SystemLifeInc.).


【News】GeneXus Day 2013 in Japan が開催されます。

イメージ
今年もこの時期恒例ジェネクサス・ジャパン社主催のGeneXus Day 2013が開催されます。今回はGeneXusユーザー向けとGeneXusを検討している企業向けの2部構成になっています。以下、同社のホームページから




ジェネクサス・ジャパン、1 年に一度のビックイベント「GeneXus Day 2013」を 2013年11月22日 (金) に開催致します。
今年も GeneXus 開発元の Artech 社より 2 名のスピーカーを迎えます。
― CEO 就任後、初の GeneXus Day 登壇となる Nicolás Jodal、そして昨年に続き Aretch 社 CTO の Gastón Milano ―
2 人 のキーパーソンより GeneXus のホットな情報をお伝えします。
また、ジェネクサス・ジャパンからの新製品リリース情報や、午後の部では GeneXus の開発事例を、2 社よりご紹介致します。
ジェネクサス・ジャパンが総力を挙げてお届けする「GeneXus Day 2013」、是非ご参加ください!

申し込みはこちらの申し込みフォームからです。



【News】株式会社コアネクスト - FIT2013(金融国際情報技術展)に出展しました

イメージ
先日開催されたFIT2013(金融国際情報技術展)に株式会社コアネクストが出展されました。以下、同社のホームページ「『FIT2013』へのご来場、誠にありがとうございました」から


GeneXusミーティングレポート 2日目その4:オフライン - GX23

イメージ
Mascosのオフラインに関するプレゼンテーションの続きです。



高度なシナリオ
オフラインのユースケースの説明です。


GeneXusミーティングレポート 2日目その3:オフライン - GX23

イメージ
オフラインのセッションが続きます。

スピーカーは開発チームのMarcos Crispino です。ブログも書いていますが、技術的には結構ディープな奴です。








オフラインデータベースオブジェクト。メインオブジェクトのをOfflineに設定すると生成されます。データ同期に関する定義を行います。

【News】GeneXus紹介セミナー in 博多 : 株式会社システムライフ

イメージ
先日、GeneXus販売店になった株式会社システムライフ主催のセミナーが開催されるそうです。

以下、同社の告知ページへのリンクです。

GeneXus紹介セミナー in 博多


GeneXusミーティングレポート 2日目その2:オフライン - GX23

イメージ
引き続きオフラインのセッションです。

※当情報は製品出荷前の情報であり、製品出荷時には変更になる場合もあります。あらかじめご了承ください。

スピーカーは開発チームのLeonardo Pineyroです。






GeneXusミーティングレポート 2日目その1:オフライン - GX23

イメージ
GeneXusミーティング2日目はいよいよ次期バージョンに関するセッションが続きます。

まずは、オフライン機能の話です。これは次期バージョンであるTiloの目玉機能ですが、対象はスマートデバイスアプリケーションです。

※当情報は製品出荷前の情報であり、製品出荷時には変更になる場合もあります。あらかじめご了承ください。

現行バージョンであるEvolution2で作成されたスマートデバイスアプリは基本的にコネクションが無いと(通信回線が接続していないと)使えません。つまりローカル(デバイス上)にデータベースを持たず、常にサーバーと通信してサーバー側のデータベースにI/Oする、いわゆるクライアント/サーバー型のアプリケーションです。
これに対し業務系のアプリケーションとしては、コネクションが無い状態でも利用できるオフライン機能のニーズが非常に強くありました。

GeneXusミーティングレポート 1日目その3 - GX23

イメージ
GeneXusミーティング初日の最後のレポートは私のセッションです。

ウルグアイでのセッションスピーカーは今回で3回目になります。最初のきっかけはArtech側からスピーチしてみないか? と声を掛けてもらったのですが、その後自分自身の経験値アップと南米を中心としたGeneXusワールドでの知名度向上を狙って毎年チャレンジしています。


これまでの2回は主に日本の事情を紹介するという聞く側にとっても興味がある、話をする側にとってもプレゼンを作りやすい内容だったのですが、今回は自分達で企画したソリューションの発表というチャレンジングな内容になりました。

というのもソリューションのプレゼンはそこの至るまでのストーリー(現状認識、問題点、解決策とそこに至るロジック)を英語でスピーチしなくてはならず、技術的な話ならともかく、前半部分の解決策に至るストーリー部分は私の稚拙な英語では非常に苦労しました。

GeneXus X Evolution2 インストラクター アップグレード試験に合格しました

イメージ
TwitterやFaceBookで先に報告しましたが、GeneXus X Evolution2インストラクターのアップグレード試験に無事合格しました。


実は今回のインターナショナルミーティングではアップグレード試験を受ける予定ではありませんでした。というのも、本来試験は3日間のミーティング中に予定されているのですが、私がカンファレンススピーチを予定していて、しかも日程がぎりぎりまで決まらなかった(公開されなかった)ので、スピーチと試験が被ってしまうとまずいと思い諦めていました。ところがウルグアイに来てからRodolfoと話をした所「だったらミーティング終了後の木・金の都合のいい時間で試験をしよう」とアレンジしてくれたのでした。なんの準備もしていませんでしたが二つ返事で「やります!!」とトライする事になった次第です。

GeneXusミーティングレポート 1日目その2 - GX23

イメージ
GeneXusミーティングレポート1日目その2です。

ブラジルでの事例紹介です。

GeneXusミーティングレポート 1日目 - GX23

イメージ
9月30日から10月2日までの3日間で第23回GeneXusインターナショナルミーティングが開催されました。これから何回かに渡ってその様子をレポートします。セッション自体は170にもなりますので全て紹介はできませんが、個人的に興味を持って視聴したセッションからピックアップしていきます。

1日目(9月30日) インターナショナルミーティングのスタートはNicolas Jodal(ニコラス・ホダール)社長のオープニングスピーチからです。このオープニングスピーチ、昨年まではBoreogan Gonda(ボレオガン・ゴンダ)会長(当時社長)が行っていましたが、昨年のミーティングの最後に経営の交代発表がされ、社長がGonda氏からJodal氏になりました。という事で、毎年見慣れたスピーチがJodal氏になった事で経営の交代が象徴的なインターナショナルミーティングの始まりとなりました。

続いてのセッションはArmin Bachmann(アルミン・バッハマン)氏から今回のミーティングのイントロとしてGeneXus X Evolution2のおさらいと事例紹介がありました。

まもなくGeneXusインターナショナルミーティングが開催されます

いよいよ来週、ウルグアイでGeneXusインターナショナルミーティングが開催されます。
もちろん私も参加します。今このブログも成田空港の搭乗口で書いています。
今年の目玉は何と言っても次期バージョンであるコードネームTiloのお披露目です。 Windows8ジェネレーターやオフラインモードの追加などスマートデバイスジェネレーターの進化の詳細が明らかにされるでしょう。
カンファレンスの内容はこのブログでも追ってアップしていく予定です。
あと、かくいう私もセッションスピーカーを務めます。 そろそろ搭乗開始です。地球の反対側まで30数時間のフライトが始まります。 では行ってきます。


【News】株式会社システムライフ - GeneXus販売店契約を締結

株式会社システムライフが本日GeneXus販売店契約を締結したそうです。

以下、同社のリリースから

株式会社システムライフ(本社:福岡県福岡市 代表取締役:吉浦 勇次)は、アルテッチ社(Artech Consultores S.R.L. 本社:ウルグアイ CEO:Nicola Jodal)が開発し、ジェネクサス・ジャパン株式会社(本社:東京都品川区 代表取締役:大脇 文雄)が日本総代理店の超高速開発ツール「GeneXus(ジェネクサス)」の九州地区初販売店契約を締結し、同ソフトウエアの販売を開始しました。

<中略>

システムライフは2011年よりGeneXusの研究・適用を開始し2年間の経験をもとにエンドユーザ様に超高速開発ツールのメリット(高品質・低コスト・短納期)をご提供出来ると確信し本日、販売店契約を締結致しました。
今後は30年以上にわたる九州地区を中心としたシステム受託開発の実績に加え超高速開発ツールGeneXusを活用した高品質・高生産性なシステム開発をご提案して参ります。
株式会社システムライフのWebサイトはこちらです。

九州地区初のGeneXus販売店という事で、今後の活躍に期待したいです。



【News】株式会社コアネクスト - 10月17日~18日に開催される『FIT2013』に出展

GeneXusの販売代理店である株式会社コアネクストが「FIT2013(金融国際情報技術展)」に出展されるそうです。以下、同社の告知から

10月17日~18日に開催される『FIT2013』に出展いたします
来る10月17日~18日に東京国際フォーラムで開催される「FIT2013(金融国際情報技術展)」に、コアネクストとして「GeneXus」を出展致します。

今回はソルクシーズグループである、ソルクシーズ、インターディメンションズとの共同出展ブースとなっておりますので、弊社グループの強みである金融業界向けに特化したソリューションをご紹介いたします。
また、Salesforce.com社やAmazon.com社とのコラボレーションワークの紹介も企画しております。


列挙型ドメインとマスタ化の判断基準

イメージ
画面上での選択肢(コンボボックス等)を実装する手段としては、列挙型ドメインの定義とトランザクションでマスタテーブルを作る方法の2種類ありますが、皆さんはどういうケースで列挙型ドメインにし、どういうケースでマスタ化を選択しますか?




項目属性名の変更にはご注意を

イメージ
GeneXus教育をしていてよく見受けられるGeneXusビギナーが陥る操作ミスとして、項目属性名の変更があります。


1.項目属性名の変更方法 項目属性の登録作業はトランザクションオブジェクトでのストラクチャーエディタで項目属性を追加する事ですが、一旦登録した項目属性の名称を変更する時にストラクチャーエディタ上でダイレクトに変更してはいけません。


オプションに関するTips

イメージ
GeneXusのオプションに関するTipsです。
1.起動オプション
GeneXusの実行ファイル(GeneXus.exe)に対するオプションです。基本はショートカットのプロパティで指定します。オプションの中でも便利なものを紹介します。


プロンプトに関するあれこれ - その3

イメージ
今回はプロンプトの仕様についてです

プロンプトの目的はキー項目の入力補助です。従ってプロンプトから返されるのはキー項目の値のみです。外部キー項目に従属する参照項目はプロンプトからは返されません。
参照項目はトランザクション画面に制御が移り、キー項目からフォーカス移動したタイミングにDBからデータを取得・表示します(外部キー項目を手入力した時と同じ動作)。


プロンプトに関するあれこれ - その2

イメージ
前回の話の続きです。

3.プロンプトを使用したくない場合 トランザクションオブジェクトでの主キー項目と外部キー項目は自動でプロンプトが紐付けられます。逆にプロンプトを使いたくない場合(プロンプトアイコンを表示したくない場合)はどうしたらよいでしょうか?


プロンプトに関するあれこれ - その1

イメージ
プロンプトオブジェクトは自動生成される為、なにげなく使っている人も多いと思いますが、その実態(仕様)をちゃんと知っていますか? 今回はプロンプトにまつわる話です。

1.プロンプトとは
プロンプトとはいわゆるレコード選択用の一覧画面の事です。プロンプトオブジェクトという呼び方もしますが、実態はWebパネルオブジェクトです。
GeneXusでは、主キー項目、外部キー項目に対して自動的にプロンプトオブジェクトが作成されます。(ビルド時)


【ショーケース】GeneXusインターナショナルミーティング用アプリ #GX23

イメージ
9月にウルグアイで開催されるGeneXusインターナショナルミーティング用のスマートデバイスアプリが公開されています。






これはGeneXusインターナショナルミーティングの各セッションやスピーカーの紹介やホテルの案内など、ミーティングに参加する人のナビゲーターになるアプリです。







もちろんGeneXusで開発されており、iOS版とAndroid版が各ストアに公開されています。


まだ、セッションやスピーカーが決まっていないので内容的にはまだまだですが、開催が近づくにつれ充実していくはずです。ウルグアイに行かない人もその雰囲気を味わってみて下さい。

GeneXusでのサブクエリ(副問い合わせ)の実装方法

イメージ
前回のエントリーでGeneXusにおけるJOINの話をしましたが、今回はGeneXusでのサブクエリーの実装方法です。

以下の様なデータモデルで、Invoice一覧の画面を実装する時に、検索条件としてInvoiceDetailつまり明細の項目を含めたい場合はどう実装したらよいでしょうか?





例えばfor eachコマンドで記述してみます。

今年もGeneXusインターナショナルミーティングが開催されます。#GX23

イメージ
今年もGeneXusインターナショナルミーティングがウルグアイにて開催されます。

イベント用Webサイトもオープンしました。



今年は9月30日から10月2日の3日間です。上記Webサイトからミーティング参加の登録、ホテルの予約も行えます。私も先ほど登録しました。



GeneXusで生成されるJOINの種類

イメージ
前回までで「開発者は項目属性名のみ指定する → GeneXusがアクセスするテーブル・JOINする項目を推論する」というお話しをしました。

SQLという観点で「GeneXusってOUTER JOINはできないよね?」という質問をよく受けます。そこで今回はGeneXusでのJOINに関するお話しです。

具体的なJOINの指定方法の前に、まずはGeneXusにおける基本的なJOINの考え方についてです。

1.GeneXusにおけるJOINの考え方
一般的にJOINは以下の種類があります。

内部結合(INNER JOIN)外部結合(LEFT JOIN / RIGHT JOIN / FULL OUTER JOIN)

GeneXusにも外部結合は存在します。但し、ベーステーブル・拡張テーブルの考え方が前提になるため、リレーションの方向に依存します。どういう事でしょうか? 下記のデータモデルを見てください。



ベーステーブルと拡張テーブルの特定方法

イメージ
前回のエントリーで「ベーステーブルと拡張テーブルとは何か?」というお話しをしましたが、今回はGeneXusはどうやってベーステーブルや拡張テーブルを特定するのか?というお話しです。

推論のプロセスとしては
まずGeneXusが出力したデータモデルが前提となります。
そして、開発者が指定した項目属性群をインプットとして、データモデルから拡張テーブルの候補をピックアップします。
それら拡張テーブルの候補の中から、最小セットの拡張テーブルを選択します。


具体的な例で順を追って説明します。(以下のデータモデルを前提とした時)




【News】株式会社クリエティブキャスト主催 3社合同GeneXusセミナーが開催されました

イメージ
株式会社クリエティブキャスト主催  販売店3社合同GeneXusセミナー「GeneXusの?を!に 事例から学ぶGeneXus活用のヒント」が開催されました。



 私も参加してきましたので簡単ではありますが写真も交えてご紹介します。

ベーステーブルと拡張テーブルって何?

イメージ
今回の話はGeneXusを扱うに当たって、一番基本となる考え方です。逆に言うと「ベーステーブルと拡張テーブルって何?」という質問に答えられない人はGeneXusを使っていても理解しているとは言えません。

GeneXusにおいては開発者はアクセスするテーブルを直接指定する事はありません(できません)。指定するのは項目属性名のみで、その項目属性が「どのテーブルに属していて?」「どのテーブルとをJOINする必要があるのか?」はGeneXusが推論します。その推論の基礎となっているのがベーステーブルと拡張テーブルという考え方です。

ベーステーブルとは GeneXusがデータベースにアクセスする時に(実際には生成するSQL文としての)起点となるテーブルの事を指します。

拡張テーブルとは ベーステーブルを起点とした時にアクセス可能な範囲(実際には生成するSQL文としてJOIN可能な範囲のテーブル)を言います。
又、拡張テーブルにはベーステーブルも含まれます。

拡張テーブルかどうかの判断基準はベーステーブルから見て「n→1の関係(リレーション)」のテーブルです。逆にベーステーブルから見て「1→nの関係」は拡張テーブルではありません。


例えば、以下のデータモデルを前提とした時に



GeneXusにおけるロック・排他制御

GeneXusにおいてデータベース更新処理(INSERT/UPDATE/DELETE)が可能なオブジェクトはトランザクションとプロシージャのみです。

データベース更新処理としてはロックと排他が重要な制御になってきますが、GeneXusでの仕様は以下の通りです。

トランザクションオブジェクト1)ロック

書き込み処理の直前にSELECTを実行しますが、その時のモードがLOCKモードになります。( Oracleだとfor update no wait指定/SQLServerだと WITH (UPDLOCK)指定 )もし、ロックが失敗した場合(既に他のユーザーにロックされていた場合)はエラーが返されます。
2)排他制御

トランザクションオブジェクト内で独自の排他制御が実装されています。レコードをLoad時(SELECT時)のデータを全て保持しておき、書き込みの直前のSELECT(上記ロック時)で取得した項目と全項目付け合わせをします。一項目でも差があれば他の誰かが変更を加えたと判断し排他エラーが返ります。= 楽観的排他一般的には更新回数や更新タイムスタンプ項目を設け、その項目を用いた比較で排他制御を実装するのが一般的だと思いますが、GeneXusの場合はトランザクション=テーブルではないのでストラクチャーで定義されている全項目の比較になります。

プロシージャオブジェクト1)ロック

for eachによる更新処理にて、条件項目および更新対象項目がベーステーブルにある場合は、UPDATE/DELETE文が生成されます。for eachによる更新処理にて、条件項目および更新対象項目がベーステーブル以外にもある場合は、SELECT文(条件指定用+ロック用)とUPDATE/DELETE文が生成されます。この場合は、トランザクションと同様にロックモードでのSELECTになります。


2)排他制御

排他制御は盛り込まれていません。アプリケーションの仕様として開発者が実装する必要があります。

悲観的排他が必要な場合は、独自に設計し実装する必要があります。



GeneXus X Evolution2 Upgrade3 : エボリューション2 アップグレード3がリリースされました。

GeneXus X Evolution2 Upgrade3 (エボリューション2 アップグレード3)がリリースされました。

ダウンロードとリリースノートはこちらから。



Gene Xus X Evolution 2 upgrade #3 from GeneXus
通常、アップグレードはバグフィックスが多いのですが、今回はスマートデバイス・ジェネレーターを中心として数々の機能追加が入っています。

詳細はこちらから。

以前、私が書きました機能紹介PPTの翻訳はこちらです。




データベーステーブル作成・再編成にてよく使うオプション

イメージ
データベーステーブル作成およびデータベース再編成処理時によく使うオプション(プロパティの設定)をご紹介します。  


1.Declare referential integrity対象

言語 : .NET、Java、RubyDBMS: SQLServer,Oracle,PostgreSQL,MySQL, DB2 UDB for iSeries,iSeries native, Informix

概要
データストアプロパティにある「Declare referential integrity」プロパティはデータベースに参照整合性(DBMSの制約)を作成する/しないの指定が可能です。






設定値

Yes(既定値) :参照整合性が作成されます。(データベーステーブル作成、再編成時)No : 参照整合性は作成されません。(データベーステーブル作成、再編成時)Remove :参照整合性は作成されません。(データベーステーブル作成、再編成時) 但し、既に参照整合性がある場合は削除されます。

備考
例えば、プロパティをYes→Noに変更し、データベーステーブルの作成を行った場合、再編成プログラムはテーブルをDrop→Createしますが、参照整合性が既にあるとテーブルをDropできません。この場合は、Yes→Removeを選択する事により、既存の参照整合性も削除されます。

出典 : http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Declare+Referential+Integrity+Property,


2.Generate comment on statements対象

インターフェイス : WebDBMS: Oracle,DB2 UDB,DB2 for iSeries,PostgreSQL(エボリューション1以降)

概要
データストアプロパティにある「Generate comment on statements」プロパティはテーブル及びカラムのコメント作成を指定できます。

設定値

Yes : COMMENTステートメントを生成します。(データベーステーブル作成、再編成時)No(既定値) : COMMENTステートメントを生成しません。(データベーステーブル作成、再編成時)


CREATE TABLE TestPropGenCom (TestCo…

外部オブジェクトの使い方 : ネイティブ・オブジェクト編

イメージ
外部オブジェクトを使う事でネイティブ・オブジェクトつまり各ジェネレーター環境における外部ライブラリ(GeneXusを使用せずに作成したライブラリ)を利用する事が可能になります。

1.外部オブジェクトの作成 ネイティブ・オブジェクトに関しては、Webサービスと同様にウィザードを使って簡単に外部オブジェクトを作成する事ができます。

「ツール」メニュー→「アプリケーションの統合」→「.Netアセンブリインポート」または「Java クラスのインボート」を選択



Google Chromeを業務用Webアプリケーションプラットフォームとして使用するためのTips

イメージ
直接GeneXusのTipsではありませんが、Google ChromeをWebアプリケーションプラットフオームとして使用する場合に考慮したい事が何点かあります。

当該Webアプリケーション起動(表示)した時に必ずChromeとする。又、ブラウザのディフォルト起動設定を変更しない。アドレスバーやタブを表示させない自動アップデートを禁止にする

GeneXus X Evolution2 Upgrade3 : エボリューション2 アップグレード3

イメージ
もうまもなくリリースされるGeneXus X エボリューション2 アップグレード3のニュートピックがSlideShareに公開されました。


Gene Xus X Evolution 2 upgrade #3 from GeneXus


説明を追記しました。(5/31)

Webアプリケーションでのキーボード制御系Tips

イメージ
通常のWebアプリケーションだとあまりニーズはありませんが、業務系Webアプリケーション、特に旧来のホスト系やC/S(クライアント/サーバー)系システムからWebアプリへの移行だと(あるいはそういったシステムを使いなれた人達からのリクエストでは)レガシーなキーボード制御を要求される場合があります。GeneXusでの対応可・不可も含めて紹介します。


1.Enterキーでフォーカス移動したい HTMLの標準ではEnterキーはFormのSubmitつまりサーバーへのデータ送信です。しかし、ホスト・C/S系だと(特にテンキーを使って操作する場合は)Enterキーでフォーカス移動が主流です。
GeneXusにはジェネレーターのプロパティに「Field exit」プロパティがあり、以下が選択できます。


【GeneXusユーザー事例】日本ハウズイング株式会社 : 日経コンピュータセミナー

イメージ
昨年末のGeneXus Dayにて事例発表をされました日本ハウズイング株式会社 浅野執行役員が日経コンピューターセミナー「超高速開発・リノベーションセミナー2013」にて再び講演されました。



「GeneXusを利用した新統合基幹系システムプロジェクト推進事例のご紹介」
当社は、これまで運用していた6つの基幹系システムを統合し、2012年3月に新基幹系システム「ハウネット」をリリースしました。要件定義終了時点で開発工数が膨らんだため、当初計画していた開発工数よりも30%膨らんでしまいました。そこで、開発ベンダーであるアイ・ティ・フロンティア社からの提案により、自動生成ツールを利用した開発手法を採用し、リリースすることができました。本講演では、GeneXus採用までの経緯や開発短縮のために実践した工夫をご紹介するとともに、保守フェーズを1年経験した中で体感したメリットや今後の課題についても併せてご紹介します。


講 師
日本ハウズイング
執行役員 システム企画部長
浅野 尚 氏 マンション管理担当から支店長、人事グループ長を経て、2009年7月より情報システム担当となり、新基幹システム構築の指揮を執る。現在は勤怠管理、財務会計システム構築、インフラコストの見直しや次世代活用について統括にあたる。

セキュリティスキャナーその2 - Security Scanner part 2

イメージ
前回に引き続きSecurity Scannerの説明です。出典はこちらSecurity Scanner extension users manualです。Security ScannerのダウンロードはGeneXusマーケットプレイスから。

3.ルール定義
Parameter encryption #100

Security Scannerはナレッジベースの環境とオブジェクトをスキャンし、パラメーターが暗号化されているかどうか調べます。具合的には「Encrypt URL Parameters」プロパティが「Session Key」または「Site key」が設定されているかチェックします。(Noの場合は暗号化されない)
もし、Parameter encryption問題を発見した場合は下記のメッセージを表示します。

error: #100 in WebPanel1 >> Object parameters not encrypted

セキュリティスキャナーその1 - Security Scanner part 1

イメージ
先の投稿「GeneXusにおけるWebアプリケーションセキュリティ対策 - OWASP 2010 Top10 Security Risks in GeneXus Applications」で出てきましたSecurity Scannerですが、これは開発したナレッジベースにセキュリティリスクの有無をチェックする為のGeneXusエクステンション(拡張モジュール)で、OWASP Top10 をベースにチェック・レポートしてくれます。
※[注意]現状はEvolution1のみ動作します。

1.Security Scannerのインストール
Security ScannerエクステンションはGeneXusマーケットプレイスからダウンロードできます。(GxTechnicalアカウントの登録が必要です)




GeneXusにおけるWebアプリケーションセキュリティ対策 - OWASP 2010 Top10 Security Risks in GeneXus Applications

最近よく質問を頂きます「GeneXus Webアプリケーションにおけるセキュリティ対策」に関して、OWASP Top10をベースに説明します。


まず、OWASPとはOpen Web Application Security Projectの略で、Webアプリケーションのセキュリティ向上を目的としてプロジェクトです。その中のOWASP Top 10プロジェクトがWebアプリケーションの脆弱性トップ10を公開しています。前回公開されたのが2010年版で、現在(2013年5月)は2013年版がRC(Release Candidate:リリース候補)版となっています。日本でもOWASP Japanとして活動しています。

一方、GeneXusとしてのWebアプリケーションセキュリティ対策状況はArtechのwikiサイト「OWASP 2010 Top 10 Security Risks in GeneXus Applications」にて公開されています。そのタイトルの通り2010年版がベースになります。今回はこの情報を元に対応状況を説明します。なにぶん英語の説明が回りくどいので直訳ではなく意訳をしています。翻訳や表現的に誤りを見つけた方はご連絡下さい。


又、説明の中で(Security Scanner #番号)という記述がありますが、これはArtech社が公開しているSecurity ScannerというGeneXusの拡張モジュールで、ナレッジベース内のセキュリティチェックを行いレポートしてくれるツールです。Security Scanner自身については別の機会に説明をしたいと思います。



64bit版Windowsで.NET Webアプリケーションを実行する時の注意事項

イメージ
正確にはGeneXusのTipsではありませんが、最近も問い合わせをもらう事が多かったのでブログに書いておきます。

GeneXusでC#ジェネレーターを使用する場合は、生成されるWebアプリケーションはASP.NETとなり、実行環境はIISとなります。

この時、OSが64bit版Windowsを使用している場合、32bit用ワーカープロセスの設定を行わないとアプリケーションを実行する事ができません。これはGeneXusが生成するのが32bitアプリケーションのためです。

1.IIS6の設定 IIS6では32bit/64bitのどちらかでしか動作できません
切り替える為のコマンドは以下の通りです。
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
※1.パラメター値:1が32bit/0が64bit指定

2.IIS7の設定 IIS7はアプリケーションプール毎に32bitの有効/無効の指定が可能です。

IIS管理コンソール→アプリケーションプール→「Classic .NET AppPool」→詳細設定にて、「32ビットアプリケーションの有効化」をTrueに変更します。





【News】株式会社クリエイティブキャスト : 第二回GeneXusセミナー【GeneXusの?を!に事例から学ぶGeneXus活用のヒント】

GeneXusの販売代理店である株式会社クリエイティブキャストが第二回GeneXusセミナーを開催されるそうです。

以下、同社からのプレスリリースです。

2013年4月吉日
株式会社クリエイティブキャスト ==========================================
■■第二回GeneXusセミナー開催■■
==========================================
来る7月24日(水)、株式会社クリエイティブキャスト主催の
[第二回GeneXusセミナー]を開催いたします。

協賛企業として下記二社にもご協力頂きます。
・アプリケーションアシスト株式会社
・株式会社コアネクスト    (敬称略/順不同)  また、後援企業として、ジェネクサス・ジャパン株式会社をお招きします。 詳細はこちらから。

変数を条件に指定するローカル式に注意

前回はFor eachコマンド+ローカル式を使うシーンにて二つのベーステーブル間にリレーションが有る無しで生成結果が違ってくる事を書きました。今回はリレーションが無いデータモデルでの別な注意点についてです。

テーブル間にGeneXusが認識するリレーションが無いデータモデルで、ローカル式の条件に変数を利用する場合として以下の様な記述が考えられます。(基本は明示的に条件を指定する事です)

For each
&CountryId = CountryId
&CountryName = CountryName
&CustomerCount = Count( CustomerName,
CustomerCountryId = &CountryId)
Endfor
一見問題なさそうに見えますが、実際には国別の顧客数はカウントされず、カウントの結果は全て0件になります。(CountryテーブルにCountryId=0のレコードが無い場合)
何故でしょうか?


For eachの中のローカル式

イメージ
For eachの中にローカル式を記述する時、For eachのベーステーブルとローカル式のベーステーブル間にリレーションが無い場合は注意が必要です。

例) 国別に顧客数をカウント

1.リレーションがある場合1-1.データモデル
国マスタと顧客マスタで1対nのリレーションがあるモデルです。