2013年4月30日火曜日

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

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

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

For each
&CountryId = CountryId
&CountryName = CountryName
&CustomerCount = Count( CustomerName,
             CustomerCountryId = &CountryId )
Endfor

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


2013年4月25日木曜日

For eachの中のローカル式


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

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

1.リレーションがある場合

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

Country(国)トランザクションの定義

Customer(顧客)トランザクションの定義
項目属性名の先頭にあるアイコンが上矢印になっています。
これは外部キー項目である事を表しています。

ダイアグラムに二つのテーブルを配置してみました。
GeneXusは項目属性の名称が同じものは同じ意味合い=同一視し正規化処理を行います。
この例ではCountryId(国ID)がCountry(国)テーブルの主キー、Customer(顧客)テーブルの外部キーとして
存在するので、リレーションが自動的に張られます。
Customerテーブル(物理テーブル)にはCountryName(国名)は存在しません。

2013年4月24日水曜日

【News】株式会社コアネクストがGeneXusの取扱いを開始

株式会社コアネクストがGeneXusの取扱いを開始したそうです。以下、親会社である株式会社ソルクシーズからのプレスリリースです。

当グループ会社の株式会社コアネクスト(本社:東京都港区 代表取締役会長:長尾 章)は、アルテッチ社(Artech Consultores S.R.L. 本社:ウルグアイ CEO:Nicola Jodal)が開発し、ジェネクサス・ジャパン株式会社(本社:東京都品川区 代表取締役:大脇 文雄)が日本総代理店のシステム開発ツール「GeneXus(ジェネクサス)」の販売店契約を締結し、同ソフトウエアの販売を開始しました。 

コアネクスト社は金融系(投資信託・投資顧問会社向け)のシステム開発・コンサルティング会社だそうです。今までのGeneXusベンダーにはいなかったジャンルですので、今後の活躍に期待します。



2013年4月22日月曜日

【GeneXusユーザー事例】三菱重工 - COMPUTERWORLD MEXICO

以前、ブラジルのサイトでGeneXusの事例として三菱重工社が取り上げられていましたが、今度はメキシコのコンピュータワールドで同様に三菱重工社の事例が掲載されました。


Mitsubishi Heavy Industries uses GeneXus to integrate mainframe and SAP


The Japanese company engaged in shipbuilding, heavy industry, power systems, aircraft and railways GeneXus used the tool to integrate SAP with its mainframe system, achieving increasing productivity and reducing costs of development, maintenance and staff training.

The deputy Kyoji Noda, responsible for the development of applications in the system mainframe Engineering Center in Yokohama, and the team that began working with GeneXus in 2003, said his company chose GeneXus for three reasons: a shortage of engineers with knowledge, high costs to upgrade the technology and the difficulties in developing new technologies.
※メキシコのサイトはスペイン語ですがこの引用はGoogle翻訳で英語に翻訳しています。


やはりSAPとの連携は注目度が高いのでしょうか。



2013年4月18日木曜日

GeneXusミーティング in ブラジルが開催されました

去る4月10日、ブラジルのサンパウロでGeneXusミーティングinブラジルが開催されました。ミーティングの様子が公開されていましたので当ブログでもご紹介します。

Nicolas Jodal氏(Artech CEO)のスピーチ

Juliano Tubino氏(AWS Latin America)のスピーチ
最近はAmazonやGoogleからゲストスピーカーを呼ぶことが多いです

会場の様子です。手前右にいるのはArtechのArmin Bachmanです

ブラジルのおねーさんたち

右から二人目がDash社のルイス・宮下氏。
ブラジルは日系人が多いですがGeneXusコミュニティでもよく見かけます。
(日本語喋れない人が多いですが・・)

各セッションで使われたプレゼンテーションもSlideShareで公開され始めていますが、その中から最新情報を紹介します。


2013年4月15日月曜日

記述量を減らし変化に対応しやすくする

プロシージャで記述する時、GeneXusの特性を知っているとコード量も減り、変化にも対応し易くなる事があります。

例えば、あるテーブルから特定のレコードを抽出し、その値を元に新たなレコードを追加したい場合、SQLではSELECTとINSERTを組み合わせます。

INSERT INTO TABLE_A (COLMUN1,COLMUN2,COLMUN3,COLMUN4....)
    SELECT 'KeyValue',COLMUN2,COLMUN3,’NewValue'....
    FROM TABLE_A WHERE COLMUNn = 'xxxxx';

2013年4月12日金曜日

テーブルの項目の並び順を変更するには?


物理テーブル上の項目属性の並び順は、GeneXus IDE上では変更する事が出来ません。GeneXusは物理的な項目の並びを意識しない思想なので、項目を追加した場合は物理テーブルの最後尾カラムとして追加されます。

とはいえ、データ移行やテーブルの直接メンテナンスなど、人が目で見てデータを操作する場合は、論理的な並び順に準拠して欲しいものです。

トランザクションとテーブルオブジェクトの比較。
後から追加した「CustomerPhoto(顧客写真)」がトランザクションでは顧客TELの前に位置しているが
テーブルオブジェクトではカラムの最後尾に追加されている。

項目の並び順をトランザクションと揃えたい場合(論理的な並び順に変更したい場合)は以下の方法を使います。

2013年4月8日月曜日

テーブルオブジェクトに対して設定できる事、できない事

GeneXusではテーブルオブジェクト(物理的なテーブル設計)はGeneXus自身が正規化処理の結果として生成します。この為開発者は直接テーブルオブジェクトに対して項目の追加・削除、項目の名称やプロパティの編集、並び順などの変更等は一切できません。
テーブルオブジェクトに対して直接設定できるのは以下のものです。


・テーブル名、デスクリプション

正規化処理の結果として自動生成されるためテーブル名・デスクリプションは開発者の想定しない名前になる可能性があります。データモデルが安定したらテーブル名をレビューして正しい名前に変更しましょう。

・テーブルオブジェクトのプロパティ

Strage areaやExtent sizeなど、DBMS上でのテーブルの設定を行えます。

テーブルオブジェクトのプロパティ
テーブル名の変更もここで行います


2013年4月3日水曜日

【News】株式会社クリエイティブキャスト GeneXusショールーム リニューアルオープン

GeneXusの販売代理店である株式会社クリエイティブキャストがGeneXusショールームをリニューアルオープンしたそうです。

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


==========================================
 ■■GeneXus体験ROOM OPEN■■
==========================================
 今春、クリエイティブキャスト併設の
 [GeneXusショールーム]がリニューアルオープンしました。
 すでに解放中の動画視聴コーナーに加え、
 GeneXusを使ったシステム構築体験コーナーを新設しております。
 『GeneXusを体験してみたい。』
 そんなお客様のお声にお応えし、弊社入口左手のGeneXusショールームにて、
 GeneXusを気軽に体験いただける、環境作りをおこなっております。
 本ショールームでは、気軽に"次世代開発ツールGeneXus"を
 体験していただくことを目的としております。
 ご希望に応じて弊社スタッフからの簡単なGeneXusレクチャーや
 構築実演を実施できますので、是非お気軽にお問い合わせください。
以下、詳細です。

2013年4月1日月曜日

サーバー上のファイルをダウンロードさせる方法

これは以前書きました「PDFをダウンロードさせる方法」の応用編です。

PDFをブラウザ表示ではなくファイルダウンロードさせたい場合、PDFを作成する機能=PDFプロシージャを実装し、ダウンロードさせるための記述を追加する事により実現しました。ダウンロードさせたいファイルがサーバー上に既にある場合はどうしたらよいでしょうか?