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

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

コンボボックスを設計するぞ!!(基礎トレ2.3)

こんにちは。ネオ・障害者の小林です。
今日はOutSystems Platformを使って、コンボボックスの設計と検索アルゴリズムの改造を行います。

え?
コンボボックスとか難しい名前だし、作るの大変そうだって?
大丈夫です!!

ただ単にITはアメリカ優位なだけであって、コンボボックスなんてただの箱です。
難しいカタカナ言葉だから躊躇してしまうのです。
今日作るのはこれのことです。ほらね!

f:id:neomatsudaira:20160224190024p:plain

クソ簡単だぜ!!コノヤロウ!!!
 って感じになるでしょ?
HTMLでこれ作るの超簡単ですよ。
だけどですね、我々はデザイナーではないのです。

我々はITエンジニアなのです。
ITエンジニアである以上、コンボボックスを表示させるだけではなく、データをサーバー内のデータベースに格納する箱の新設と、その箱(変数と言います)からいつでもデータを取り出せる設計をしなければならないのです。

我々はITの大工さんであり、デザイナーではないのです。
内部にプログラムを書いていき、動くアプリケーションを作らなければいけないのです。
そこの難易度と、コンボボックスに商品のカテゴリを入力していくのですが、例えば商品のなかで”本だけを表示させたい”というときのために、コンボボックスのデータを検索エンジンへ渡して検索エンジンの再設計も行います。


こう書くと難しく感じられますが、 OutSystems使ってますので、そんなに難しくはないです。
それではトレーニングを開始します。

 

2.3

f:id:neomatsudaira:20160224190926p:plain

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

  ”コンボボックスを使用してリストから選択

   リストから選択するためのコンボボックスを作成します。” 

です。
説明は上で述べた通りです。

 

トレーニング動画では

f:id:neomatsudaira:20160224191138p:plain

このレッスンでは、コンポボックスを使って、

 

f:id:neomatsudaira:20160224191210p:plain

ユーザーがリストから値を選択できるようにする方法を学びます。

 

字幕の解説は当たり触りないですね。
先へ進みます。

 

まず最初にやることはStatic Entityの生成です。

f:id:neomatsudaira:20160224191414p:plain

コンボボックスの設計においてなぜStatic Entityが必要なのか?また、Static Entityとは何なのか?の説明は一切されていません。

所詮は無料のトレーニングです。

 

ただ、上で書いたようにコンボボックスでユーザーが選択したカテゴリをサーバー内のデータベースに格納する場所が必要になるのです。
それがStatic Entityです。Static Entityは直訳すると「静的な実体」ですが、OutSystemsにおいては、静的なデータベースという意味を持ちます。

「静的な」というのは要するに、設計者しか動かすことのできないデータベースのことです。
だって、ユーザーさんがカテゴリを勝手に弄ったら管理できなくなるので、設計者しか編集できないようにしています。

 

商品の登録とか注文などはユーザーさんが勝手にアプリを操作していい部分ですが、カテゴリの設計など動かしてはいけない部分をStatic Entityで賄っている、ということです。

(トレーニング動画には何も説明がないため、自分でそう解釈しています)

 

で、ブルタウンメニューの項目はこんな感じです 

f:id:neomatsudaira:20160224192415p:plain

朝7時41分に仕事してるwwwwwwwwwww

コンボボックス内に埋め込むデータベース名がStatic Entityで、その項目名がBooks、Movies、Music、Electronicsになります。

 

英語で書かないとOutSystems Platformは認識してくれないので、右上に英語でコードを書いています。で、DiagramにこのStatic Entityをドロップさせてデータベースをリレーションシップ(連結)させます。いつでもデータを受渡しできるようにです。

 

データベース間をリレーションシップさせる利点は、例えば、商品を売り場に陳列させると、売り場の商品データベースの商品数が1増加し、その分、自動的に、在庫の商品データベースが1減少します。

 

要するにデータが繋がるということです。
これをリレーショナルデータベースと言います。
また、DiagramとはOutSystems Platformにおけるデータベース一覧表のことです。

 

Diagramにカテゴリーをドロップした開発画面はこちら

f:id:neomatsudaira:20160224193204p:plain

全部英語なのでウザいですが、いま作ったStatic Entity以外はすべてのデータベースが連結されていることが分かると思います。

 

3週間もトレーニングすると、これくらい複雑なデータベースが一人で作れるようになります。Static Entity(Category)は、製品のカテゴリー欄になるため、Productデータベースに外部キー(CategoryId)を追加させてProductデータベースと連結させます。

 

で、リレーションシップ(連結)させた開発画面がこちら

f:id:neomatsudaira:20160224193821p:plain

なんか、自分視力0.08の障害者なのに神じゃね?

って感じの画像です。こう、ね。誇らしいです。
高揚感というかなんと言うか、馬鹿みたいに努力するといずれは結果が出るものなんだなあっていう画像です。

といってもGUI(グラフィカルユーザーインターフェース)でコードを書いているので、とてつもなく簡単です。
あまりの簡単さのため、立ちくらみがする程です。 

内部の設計が終わったので、次のエントリーで画面の設計に入ります。で、画面の設計が終わったら、その画面といまやった内部プログラムを紐付けます。
それが終わったら、検索エンジンを改造します(笑)。

OutSystemsを使うとこのすべての変更要求を10分で行うことができます。これが、超高速開発ツールと呼ばれる所以(ゆえん)です。

 

(トレーニングは続きます)