特集「ヨモヤマビルド」

カテゴリ一覧

DB上の実データによる集計結果をリアルタイムに確認しながらクエリを作成する機能

みなさんこんにちは、OutSystems Platformチームの小野寺です。
今回は、OutSystems Platform 9(以下V9)の新機能のひとつ、「DB上の実データによる集計結果をリアルタイムに確認しながらクエリを作成する機能」についてご紹介します。

条件を指定して取得したデータを集計またはグルーピングして一覧画面に表示する場合、OutSystems Platform 8ではAdvancedQueryを利用してSQL文を記述する必要がありました。
V9では、Aggregate利用して検索すると該当データがスプレッドシート形式で表示され、Aggregate内で対象のAttributeを右クリックして表示されるポップアップメニューを選択することでグルーピングや集計ができるようになりました。

 

例)Customer.Idでグルーピングしたデータで「Charge」Attributeを集計します。

ChargeSum

集計した結果が表示されます。

ChargeSumResult

 

また、Aggregateで表示されるスプレッドシートに新規Attributeを追加して簡単な計算式を記述し、その結果を一覧に表示する事ができるようになりました。

ChargeValue

 

簡単にビジュアル開発ができるようになりましたので、是非試してみてください。

V9の新機能

みなさんこんにちは、OutSystems Platformチームの鈴木です。
今回は、OutSystems Platform 9 (以下V9)の新機能について紹介します。

 
V9の新機能は大きく
・モバイル向けハイブリッドアプリ対応
・DB上の実データによる集計結果をリアルタイムに確認しながらクエリを作成する機能
・REST-API対応
・MySQL対応
等がありますが、なんといってもメインはモバイル向けハイブリッドアプリ対応です。
V8までは、ハイブリッドアプリを作成する場合は自力でCordovaを使用して頑張る必要がありました。
GPSやカメラ等のネイティブ機能にアクセスするのはちょっとハードルが高かったわけです。
でもV9はCordovaが取り込まれて簡単にハイブリッドアプリを作れるようになりました。
Cordovaは内部に隠ぺいされているので、ドラッグ&ドロップで簡単にネイティブ機能をアプリに組み込む事が出来ちゃうんです。
素敵です!
この機能を使って作成したサンプルアプリがAppStoreとGooglePlayに登録されています。
是非、AppStoreやGooglePlayで「Outsystems NOW」を検索してみて下さい。

EntityのDate型項目についてのちょっとした注意点

みなさんこんにちは、OutSystems Platformチームの鈴木です。
今回は、EntityのDate型項目についてのちょっとした注意点です。

 
どんな事かというと、初期値です。
普通の処理系だったらテーブル上のDate型の項目に対して何も設定しないで登録するとnullで登録されますよね。
なのですが、OutSystems Platformでは「1900-01-01 00:00:00」が設定されるのです。
NullDate()関数は「1900-01-01 00:00:00」の場合にtrueを返すようになっています。
それはそれで良いのですが、AdvancedQueryで大小比較する場合には注意が必要です。
「Fuga.HogeDate < @Piyo」とかって条件を指定するとFuga.HogeDateがnullだと思っていたレコードに「1900-01-01 00:00:00」が設定されていて想定していないレコードがヒットする事になります。
意外とはまる事があるので要注意です。

Entity名とテーブルの物理名

みなさんこんにちは、OutSystems Platformチームの鈴木です。
今回は、Entity名とテーブルの物理名のマッピング情報についての小ネタです。

 

ServiceStudioでEntityを作ってパブリッシュすると、当然DBMS上にテーブルが作成されます。
OutSystems Platformの世界だけでEntityにアクセスする限りはEntity名でのアクセスとなりテーブルの物理名を意識する必要はありません。
でも、場合によっては他の処理系からEntityのテーブルにアクセスしたい時もありますよね。
で、当然最初はEntity名=テーブルの物理名ってな感じでテーブルを探すのですが、なかなか見つからなかったりします。
くじけず時間をかけて探すと、HogeHogeという名のEntityが「OSUSER_xxx_HogeHog」という感じの物理名で見つかります。(xxxはeSpace毎にユニークっぽい3文字)
これだと、辛いな~ってちょっと思ったりしまよね。
そんな時は、OSADMIN.OSSYS_ENTITYテーブルを見てみてください。
OSADMIN.OSSYS_ENTITYテーブルはEntityの情報を管理するテーブルで、NAME列がEntity名でPHYSICAL_TABLE_NAME列がテーブルの物理名になってます。
ちなみに、列名についてはEntityのAttribute名のままです。
Advanced Queryに書いたSQLの中のEntitiy名は、きっと実行時にパースされてOSADMIN.OSSYS_ENTITYを使ってテーブルの物理名に変換されているのですね。
(OSADMIN.OSSYS_ENTITYテーブルは内部テーブルなのでバージョンアップ等で変わる可能性はあります。あくまで参考という事で)

テーブルの中にテーブルを表示する方法

みなさんこんにちは、OutSystems Platformチームの鈴木です。
このカテゴリーではOutSystems PlatformのちょっとしたTips等を紹介していきたいと思います。
よろしくお願いします。

 

今回は、テーブルの中にテーブルを表示する方法です。
テーブルの中のセルに更にテーブルを表示したいという事って結構ありますよね。
OutSystems PlatformではテーブルはTable Recordsというコンポーネントで表示するのですが、
Table Recordsの各セルに直接はTable Recordsをネストして配置する事が出来ません。
でもWeb Blockコンポーネントを使うと解決できます。
レイアウトのサンプルは↓こんな感じです。(画像クリックで拡大表示します)

OP_20141024_1

 

外側のテーブルのDetailという項目には、別途用意したWeb Blockが配置されています。
で、Web Blockの中にネストさせたいTable Recordsが配置されています。
Web Block側のレイアウトは↓こんな感じです。

OP_20141024_2

 

実際に動かすと↓こんな感じです。

OP_20141024_3

 

これは、更にネストする事も出来るし、List Recordsでも同じように出来ます。

 

  • Page2 of 2
  • 1
  • 2