夜更かしで寝不足です。okita です。
今日もGeneXusTipsをかきましょー
今回は他のシステムからPOSTされたパラメータを受け取る方法です。
GeneXusだけで開発する場合はあんま使わない機能だと思いますw
まずはGeneXusでプロシージャを作成。
名前は「TestPost」←なんでもいいよw
プロパティの設定を以下に変更
Main program ⇒ True
Call protocol ⇒ HTTP
Sauce は以下
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// パラメータを受け取る &Name = &HttpRequest.getVariable('Name') // 登録 New // Transaction1_Id ⇒ オートナンバー Transaction1_Name = &Name Endnew Commit // 登録後に画面遷移 WebPanel3.Call() |
&Name = &HttpRequest.getVariable(‘Name’)
これだけで受け取るコトが可能です。
&Name ⇒ VarChar(40)型の変数です。
&HttpRequest ⇒ HttpRequest型の変数です。
あとは&Name変数を好きに使えば問題無しです!
次にPOST側ですが今回はTipsってコトなんでHTMLでサッと作成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>GeneXus POST TEST</title> </head> <body> <form method="post" action="GeneXusで作成したプログラムのアドレス"> <p> 名前:<input type="text" name="Name"/> <br/> <input type="submit" value="送信" /> <input type="reset" value="取り消し" /> </p> </form> </body> </html> |
こんなんで( `д´)b オッケー!
「form」の「action」部分にはGeneXusで作成したプロシージャのアドレスを設定します。
今回の場合はこんな↓感じだと思います(Javaでビルドしました)
http://localhost:8080/TestBlogJavaEnvironment/servlet/atestpost
「a」+ プロシージャ名(小文字)になるはず
C# だとまた少し違う気がします(´・ω・`)
そして作成したHTMLでフォームの情報を入力後
送信ボタンをクリックすれば
GeneXusで作成したプロシージャが動作して
DBに登録とかして、画面遷移して( `д´)b オッケー!な感じになったはずです!
ちなみに送信側はちゃんと文字コードを「UTF-8」で送信してあげてください。
じゃないとGeneXus側で受け取ったパラメータが文字化けると思います
(実際私は文字化けたw)
前にこんな記事も書きましたが
GeneXus Tips【HTTP通信】
組み合わせればいろいろ作成できると思います。
GeneXusだってPOSTを受け取ることぐらいできるんです!
やればできる子なんですよGeneXusは・・・たまに無理なコトもあるが・・・
ということで以上になります。