こんにちは!青木です!

またしても”続きもの宣言”をしてみました。やる気の表れであると、捉えて頂けたら幸いです。

さて、本日のテーマは、プロシージャ(Procedure)です。UIが無いオブジェクトは何だかイメージし難いと、私は思っています。基本的には視覚的な要素があった方が簡単ですからね。プロシージャはUIが無いオブジェクトの最たるもの、そんなプロシージャの有効活用法を書いていこうと思っています。

本などでは、値の受け渡しと帳票出力の2つがメインで紹介される機能です。どちらも奥が深いので、いずれは扱っていきたいですが、本日は、ちょっと驚きの使い方をご紹介します。

『GeneXus(ジェネクサス)でアプリケーションを作ってみたけども、単にテストだけのために、入力画面(トランザクション)でキーボードを叩いて、レコードを入力するのがめんどくさい!!!』

…なんてことは、あると思います。そんな時はプロシージャを使って、ぶわぁー!っと一気にレコードを入れちゃいましょう!

Empty

 

 

 

とあるレコードのないトランザクションがあります。楽に大量のレコードを入れて、機能のテスト等をしたいとします。そんな時は、プロシージャを用意して、以下のように作業します。

ソース

 

 

 

 

 

Source(ソース)に上のようなコーディングをします。For文(繰り返し文)を回すためのカウンタ用の変数を用意するのを忘れないように注意です。

余談ですが、『&~』と変数宣言してないコードを打った上で、右クリックするとそれを自動的に変数として登録する項目(変数に追加)があります!(タイプはデフォルトでNumeric(4.0)です)

上のコードは、『new~endnew』が肝で、DBにアクセスして、レコードを入力するコマンドです。

続いてプロパティを以下のように設定します。

プロパティ

 

 

 

 

 

 

 

Main program→true、Call protocol→Command Lineに変更です。(このオブジェクトと、これに関連する全てのオブジェクトを、コマンドラインから呼び出す、といった設定になります)

☆ここまでやったら次は実行に移るのですが…ここがポイントです!!☆

上記のように起動させるには、このプロシージャを選択した上で右クリックし、『実行』を選択して、実行してください。『全て実行』でも『これだけを実行』でもないので注意です!

さてそうすると、コマンドラインからプロセスが走ります。

出力

 

 

 

 

 

 

 

 

コマンドライン上にmsg(&i)でループカウンタが表示され、実行状態が確認できます。

その後に全てを実行して、結果を確認します。

dekita

 

 

 

 

 

 

1000件の新規レコードが登録されています。成功です!!

今日はここまでにしておきます!

この活用術は、かなり汎用性が高いと思いますので、皆様も是非お試しくださいませ!!