OutSystemsエンジニアの猛勉強ブログ

初心者OutSystemsエンジニアのブログです(ぺこり)。

OutSystemsでバリデーションアルゴリズムを作る(基礎トレ3.1)

こんばんは。スーパー障害者の小林です。
今日の昼間は腹痛になるは、頭痛はするはで、最悪でした。
自分の人生経験上チャンスのときはいつも障害が発生します。
だから最近は、体調不良になったら、今がチャンス!だと考えています。

ここ1か月で13万文字タイピングしたら右手の指の皮が剥がれてしまいました。
なんで、俺だけこんな目に遭うんだろう?
と、本能的に不平不満を言いたくなる、今がチャンスなのですよ!

ここで踏ん張りが効くかどうかが運命の分かれ道なのです。いつもそう。
自業自得なんだ。だれが諦めるか馬鹿者!!って感じ。
そういうとき私は方言丸出しで俺はまっげねぇ!!まっげねぇよ!!
と叫ぶことにしています。そして踏ん張り、持ちこたえるのです。
それが今日だということ。
とりあえず今日はもう終わっちゃったけど、原稿は書いていたので、記事をアップします。

それでは、OutSystemsトレーニング基礎コース3.1
リンクスタート!

3.1

f:id:neomatsudaira:20160226003929p:plain

OutSystems基礎コース3.1のトレーニング内容は

   サーバー側の入力検証

    OutSystemsで自動作成される検証方法について学びます。

です。
このトレーニングやってるときは最初、機能の勉強ではなく、実学にしろやー!って思っていました。あまり使いもしない機能を横に沢山覚えていったって意味なくね?って思っていたのです。

でも、動画が間違っていたので直すの大変だったのですが、バリデーション(入力検証)のアルゴリズム設計はやっててそこそこおもしろかったです。

例えば、インターネット上のサイトで会員登録をするときに名前や住所は必須項目のことが多いです。その必須項目にユーザーさんが故意にではなく間違えて入力するのを忘れてしまい、会員登録ボタンを押してしまうときがままあります。

また、ECサイトで物を購入するときに、購入する数の欄に誤って数値以外のものや1.5個といった入力をしてしまったときに、それをサーバーへ送信せず、その場で入力している人に間違ってますよ?と教えてくれる機能を「バリデーション」といいます。

ここまで説明すると聡明な方はすぐに理解されると思います。
入力が誤っているのかどうか、また、必須項目欄が空白だった場合にのみ、間違ってますよ?と警告を鳴らし、 正常な入力の場合にはそれを行わないという条件分岐のアルゴリズムをITエンジニアは書かなければいけないということです。
いまからその条件分岐のアルゴリズムを書いていくというのが今回のトレーニング内容となります。

 

それをトレーニング動画の説明では

f:id:neomatsudaira:20160226005714p:plain

このレッスンでは、エンドユーザーによる入力側の検証がOutSystems Platformでどのように行われるかを学びます。

 

f:id:neomatsudaira:20160226005835p:plain

必須項目でのデータタイプの検証から行います。

 

と説明されてるんですが、デフォルトだとサーバー側(OutSystems Platform)が勝手に検証してくれるのです。それは金額の欄に名前を打ち込んだり、空白で送信ボタンを押したりと、すべての検証がデフォルトではサーバー側でやってくれる設定が既になされています。 

だから、自分で入力検証アルゴリズムを設計する場合には、一度そのデフォルトの検証を外す必要が出てきます。で、トレーニング動画は、これをやっていないのです。 

なので、自分でバリデーションアルゴリズムを作っても、それが動作せず、いままでどおりサーバー側で入力検証してくれるため、作った意味ねーだろ!
とツッコミたくなる訳です。 

 

というわけで、トレーニング動画を無視して、まずはデフォルトのバリデーションの解除からやっていきます。そうしないと、アルゴリズムを作っても動作してくれないからです。

f:id:neomatsudaira:20160226011045p:plain

はい。小林の開発画面で「Validation」欄を(none)にしました。これで、検証してくれない設定になりました。

 

なので、ここから送信ボタンを押したときのバリデーションアルゴリズムを自分で作ることになります。

f:id:neomatsudaira:20160226011501p:plain

IF文で条件分岐を行います。

 

IF文の条件分岐はこれ

f:id:neomatsudaira:20160226011711p:plain

”ProductForm.Valid” 

ProductForm(入力フォーム)に入っているValidが検証機能を備えた番地なので、ここを指定してやるとすべての検証を行ってくれます。
たぶん、Valid自体の内部設計もできると思うけど、それは上級レベルのコードになるため、基礎トレーニングでそれを行うことはないと思います。

 

f:id:neomatsudaira:20160226012140p:plain

(IF文を書き終えた小林の開発画面)

 

f:id:neomatsudaira:20160226012236p:plain

Falseの場合は入力が間違っているか、必須項目なのに空白がある場合なので、その先にEndノードを実装させ、データを受け取らないで処理を終わりにします

 

つまり、間違った入力をアプリ設計者はサーバーに保存させないコードを書く必要があるということです。

f:id:neomatsudaira:20160226012711p:plain

(Endノードでデータの受け取りを拒否する小林の開発画面)

 

ノードですべてを結んで、バリデーションアルゴリズムが完成した!!

f:id:neomatsudaira:20160226012917p:plain

コードは書き終わったので、いま作ったアルゴリズムで実際に入力検証を行ってくれるか試してみます。

 

・製品登録画面で金額欄に

f:id:neomatsudaira:20160226013743p:plain

数値以外のものを打ち込んでみる。これで「Save」ボタンを押すと

 

f:id:neomatsudaira:20160226013911p:plain

登録されずに製品一覧画面に戻ってしまう。
デフォルトのサーバー側バリデーションだとこのような動作は起きないことから、正常にアルゴリズムが動作したことが分かる。

 

<アプリを作り終えた感想>
そこそこ簡単だけど、アルゴリズムを作るのが楽しかった。動画は間違えているため、一度部分的に作り直す必要があって、大変だった。

3章は全部バリデーションのトレーニングなので、別にそれはそれでいいのだけど、 ソシャゲとか価格comとか作るトレーニングを開発すれば閲覧数やダウンロード数が爆発的に増えるんじゃないかなあって思いました。

ソシャゲの作り方をOutSystemsでレシピみたいにして100本くらいタダで公開して、若い人、特に学生さんにダウンロードしてもらって、我々老兵を搾取して欲しいです。

だって、毎年の社会保障予算が100兆円超えているのに、若い人への予算が0円なので、いくらなんでも酷過ぎると最近考えています。

だから、OutSystemsを使って(別にOutSystemsでなくてもいいですよw)ソシャゲを作って、我々年配の廃ゲーマーから搾取できるソフトを作ってみてください。

高校生とかでバンバン億万長者が生まれる「面白い国、日本」になる手助けができたら、私は嬉しいです。

 

(次のトレーニングに続きます)