JusticeBrain  ~jusys2-13bpowerの日記~

私の思考。感じたことを思いのままに。荒いですが効果てきな文章をどんどん出せるようがんばります。システムエンジニア SEの考え方!成長する手段を簡単に!リーダーマネージメントについての記事。また、人の言葉や、なんでも関数シリーズやおすすめドラマ 多岐にわたって私のすべてをさらけ出していければいいと思います。よかったら、アマゾンクリックして!いいものがあったら買っちゃおう! よくなかったら買うのはやめよう!

『OutSystems』Outsystemsについて 超高速開発ツール

Outsystems

2年ほど前から仕事で関わっているツール。

パートナー企業としてやっている、

事業の一貫として資格取得も行っている。

2回受験してなんとか受かりました。

1回目69点1点たらず不合格、2回目勉強して71点合格

なんだかなー私らしい人生です。

 

Outsystemsは

超高速開発ツールでいかにも胡散臭い売り文句です。

 

www.outsystems.com

 

国内導入先はここでわかります。

www.bluememe.jp

f:id:jusys2-13bpower:20200419114353p:plain

国内でも有名どころありますね。

一部の自動車事業では実験的に使われているといううわさがあります。

スマフォに必ず入っているあれの企業も・・・

その企業の業務システム開発をやっていたのですが

1年で5システムの新規システム立ち上げました。

使用者は1000人規模ですね。

掛かった工数はほぼ私のみでやったので10人月ぐらいでしょうか

2人月程度、平均画面数は10~30画面位でしょうか。

 

画面タイプ

・一覧系ページ→明細画面

・マスタメンテナンス(共通ユーザ管理、共通コードマスタ)

 

バッチ系

・非同期バッチ

・同期バッチ

など

 

ではOutSystemsの特徴を話したいのですがその前に

すこし私の話をさせて下さい。

 

 

プログラミング言語C 第2版 ANSI規格準拠
 

 

 

私、学生の時はC言語を勉強したのですが、

通常だとご存じのJAVAと流れていけばいいのですが・・・

 

スッキリわかるJava入門 第3版 (スッキリシリーズ)

スッキリわかるJava入門 第3版 (スッキリシリーズ)

 

今思えばあのまま通常通りJAVAエンジニアになっていたらどんな

エンジニアになっていたか気になるところですね。 

しかし、なんでも広く浅くも深くもやれる今の自分は嫌いじゃないです。

 

オペレータをへての、汎用機COBOLエンジニア→サーバ系COBOLエンジニアとなり

このサーバ系COBOLでは、東京システムハウスが代理店であった

AcuCobolを利用しました。いやー汎用機のこぼらーからすると画期的でしたね。

VBのようにCOBOLがデバックできるところが楽でした。

当たり前ですが、デバック中の値がみれるなど作業効率があがりましたね。

自社の汎用機をサーバに移行する仕事のなかで色んなツールを使うことになりました。

千手、SVFの有名どころから一般的ではないツールも使う機会が多かったです。

今ほどネット社会じゃなっかったため、新しいツールはマニュアルを読み込むぐらい

しか、習得する術はなかったのでよみましたね。

ましてや、汎用機の機能など古文書のようなホコリぽい本を何度も何度も

読んでは、わからない、読んではわからないと、

同じところを読んでいると、理解度があがって読めるようになるですよね。

そして、AcuCobolが買収されMFCOBOLにそれでもサードパーティのソフトは

必要です。印刷系やジョブ管理など。

MFCOBOLはプラットフォームはしっかりしてますが、堅苦しいというか

分かりずらいですね。はるかにAcucobolの方が優秀でした。

だから、こそシェア争いで危機感を感じて買収したけど、

結果ってMFCOBOLはお堅いままで使いにくいものでしかないですね。

 

今でこそ言いますが、NECの工場の案件やLIONの基盤など大手の

入札に参加できた経験も良い経験でした。

ま、LIONなど大手の案件の場合、プレゼンをえて色んな要素で判断されるわけですが、

我々は短期で動くサンプルを作成し非常に良い評価をうけていましたが、

まーメーカーの資金力には負けますわな。

 

大規模案件なんって、なんでどうやって開発するというよりは、

予算数億円の責任をどうやって分担する?ということが契約上きめられるだけなので

責任とれますっていう企業がやはり強いんですよね。

10億だったらじゃ3社ぐらいで等分に責任分担します。

3億づつでしょうか?なんで1社じゃないかってリスク分散です。

3億づつうけもったメーカーが下請けに、そして、その下の下請けにみたいな

感じですね。

昔話が過ぎましたね・・・ では話に戻りましょう。

 

なぜこのような説明をしたかというと

私個人一般的な開発くらべ、このような応用ソフトを使うことに慣れているという

長けています。

そして来ました、OutSystems

これからOutSystemsというものがどいうものかというのを簡単に説明します。

超高速開発ツールだから超高速に説明できるですね。

実践で説明する前に、

私がどいう風にOutSystemsをみているかということ、

どのようなことができるかのトピックスを少しだけ、

トピックスに関しては、時間があるときに実践してブログで出していきましょうか。

 

では、私自身OutSystemsについてどう思っているか。

『こいつうごくぞ』ではなく、『こいつ使える』

期待できると思っていますが、数か月で基本的な部分は習得可能です。

魅力的な要素が多く、2年ほどでいろいろなテクニックも身に着けることができます。

九州内でも知ってる企業が開発に乗り出しているようです。

 

必要なスキルは、一般的なプログラムがわかる人は問題ないのですが、

新人にやらせたんですが、画面もできます。動きます。

でも、変な画面ができます。

ま、すごいのは動くものができるというところがすごいですが、

新人では、一般的に組めないようなものが組めますが、

でたらめなものが出来上がります。

なんでそうなるかというと、javaでもないでしょうか?

開発してていろいろな候補がでててきて、候補を組み合わせたら

エラーがでないのでくめちゃったけど?なにこれ?みたいな・・・

ま、このあたりはおいおい。

 

〇お勧めする必要スキル

 ・データベースでテーブルと項目が追加できる

 ・テーブル間の結合条件を理解できる。

 ・SQLの結合条件と抽出条件の違いが説明できる

 ・画面の起動処理、操作処理(イベント処理)、戻り処理が理解できる。

 ・CSS記述、Javasprict記述少しわかる

いずれも概念的なレベルでも問題ないです。

  

すべてを理解した熟練したエンジニアでは、恐ろしいスピード開発がはじまります。

それはこの後、簡単にやってみましょう。

 

〇開発の進め方

Outsystemでは、ウォーターフォールでいう概要設計書程度もので十分開発が

進められます。モックを開発するより、作っても変わらないというが私の感覚。

モック用意してとよく言われるですが、もっくというてもほぼ主要機能は、

本番並みに動くものが完成します。えっこれもう動くですかっ?とよく言われます。

必要なのは、どのような画面構成でどのようなことを行いたいか、そしてどのようなデータを使うかなどで十分です。実装開始です。

 

〇OutSystemsの特徴

 ・Webアプリケーション・スマフォアプリケーションが作成できる。

 ・基本言語理解はいらない。ツールは理解する必要がある。

 ・データベース構築不要。用途によっては外部RDBも実装可能。

 ・WebAPIを簡単に登録できる。

 ・一覧のExcel出力実装・Csv出力からのダウンロード機能なれれば1分程度で実装。

 ・(べたはり味付けなしの場合)

 ・テンプレートEXCELへのデータ書き込みも充実。

 ・完成したC#JAVAプログラムもモジュール実装が可能。

 ・メール送信実装

 などなど 無限大です。

 無限大としているのは、スクラッチ開発も流用できることと、

 Forgeというコミュニティで、日々流用可能モジュールが世界中の開発者から

 共有されています。

 ・各ページの権限実装は不要で、共通の仕様があります。

  ここは100聞は1見にしかずあとでみみましょう。

 ・リソース管理は、コンパイルの度過去の状態を丸ごと保存している。

 などなど、いろいろありすぎて質問していただければできるできないはすぐ

 回答できます。

 

ま、魅力満載ということですね。

ぐだぐだ説明する前にやっちゃいましょう!

 

では、開発環境ですが、

サンプル程度であれば無料でアカウント登録すれば用意できます。

実際に、運用に使用する場合は、ライセンスなど購入が必要です。

以前はライセンス価格の問題で小さな企業にはむかったのですが、

改訂されたようなのでそのあたりも詳しくわかったら説明します。

 

当ブログ内のダウンロードよりソフトを

ダウンロードしてインストールしてください。

 

次ににアカウントを作成してください。

このあたりは、いろいろ参考サイト多いので今回は割愛します。

 

起動すると以下の画面がでて起動かいし。

f:id:jusys2-13bpower:20200419141805p:plain

 

作成したアカウントで接続。

 

f:id:jusys2-13bpower:20200419141706p:plain

接続すると以下の画面

f:id:jusys2-13bpower:20200419142138p:plain

 

いろいろ説明したところですが

とりえず『New Application』

アプリケーションのタイプを選択します。

なんとなくわかりますね。

とりあえず左上の標準的なものから行きましょ。

f:id:jusys2-13bpower:20200419142255p:plain

アプリケーション名をつけます。

DescriptionはOutsystemsでは重要な要素で、説明文です。

各部品のDescriptionに説明を適正に書くことで

開発がスムーズに進んでいきます。

あればかならず設定する癖をつけてもらうことと、

1つの開発がおわったら、Descriptionに書きもれがないようにしたいですね。

CreateAPPで作成開始です。

 

f:id:jusys2-13bpower:20200419142426p:plain

 

アプリケーション

  ↓ モジュール を作成する必要があります。

名前を決めてCREATE MODULEです。

f:id:jusys2-13bpower:20200419142800p:plain

作成するとこんな画面できます。

この時点では何も保存されていないので、①と真ん中にでているボタンを

押すと画面がパブリッシュされ保存され、画面が動作できるようにあります。

今後パブリッシュといいいますのその時には①を押してください。

f:id:jusys2-13bpower:20200419143041p:plain


画面の構成要素を説明していくとわからなくなるので

説明につかうとこだけ。

右上にあるタブですね。

4つから構成され開発では、Interface開いてーとかLogic開いてーとか言います。

主にInterface Logic Dataをつかって開発が進みます。

Processesも使うですがここは一旦はずします。

f:id:jusys2-13bpower:20200419143319p:plain

 

タブの下にあるこの画面、ここはタブが変わるたびに表示が変わります。

部品のフォルダ構成ですね。ここで部品を選んで変更します。

f:id:jusys2-13bpower:20200419143551p:plain

選ぶと真ん中の広いところに表示されます。

 

利用可能な左側のツールですね。

部品ごとに利用できるツールがでてきます。

f:id:jusys2-13bpower:20200419143715p:plain

以上これだけわかれば開発。

 

今回は、テーブルを作成して、テーブルの一覧と編集画面を作成します。

 

①テーブルを作成する。

Dataタブを選択

f:id:jusys2-13bpower:20200419143934p:plain

Databaseを選択していますね。

右クリックして下さい。

ここのメニューはほぼ使うことになるのですが

いかにもテーブルを作りそうな「Add Entity」を選んでください。

OutsystemsではテーブルをEntity(エンティティ)といいます。

f:id:jusys2-13bpower:20200419144046p:plain

 

はいテーブル作成完了!

f:id:jusys2-13bpower:20200419144255p:plain

テーブル名変更しましょう。

適当にMakeTableという名前にしてみました。

いかにもエラーがぽいですね。

エラーです項目が全くないから作ったときはエラーで表示されます。

あと気づいてほしいですが名前を変えたら〇でCreate~の名前が変わりましたね。

 

f:id:jusys2-13bpower:20200419144426p:plain

 

OutSystemsの重要なポイント

Idは、OutSystemsのテーブルの主キーで外部テーブルと参照結合するする際に

一意の番号として呼び出されます。

うわーなんか難しいこといってんなーとおもったひとは無視してあとで大丈夫。

f:id:jusys2-13bpower:20200419144934p:plain

Idとはレコードごとの番号と思ってください。

 

DBベースの世界では、通常は、複数の項目で一意となるキーを設定して

そのキーで呼び出す場合があります。複合主キー。

Outsystemsのように連番で結合する考え方もあるようです。

新しいバージョンでは複合主キーも利用できますが、

Identifireを利用することでスムーズに高速に開発が可能となります。

Identifireってなんてよむのっておもったかた、わたしも適当によんでましたが、

アイデンティファイヤーみたいですよ。

ふぁいやーーー 炎とは違うみたいですが・・・

 

次なる重要な要素Createテーブル名 Deleteテーブル名です。

EntityActionという名前があります。

テーブルを作成すると自動で作成される標準イベントですね。

名前見たら何となくわりますね。

作成、更新、作成と更新、参照、参照排他、削除

f:id:jusys2-13bpower:20200419150143p:plain

idは先ほどのIdentifireで一意となる番号、

作成されたら、作成あれたidを取れます。

参照の場合は、参照するデータのidを指定。

削除の場合は、削除するデータのidを指定。

Sourceは更新するデータをレコード単位で渡します。

Recordは取得したデータをRecordで参照できます。

 

重要な要素なので理解が必要です。

 

②項目追加

「Add Entity Attribute」を選んでください。

OutSystemsではテーブルの項目をAttribute(アトリビュート)といいます。

 

f:id:jusys2-13bpower:20200419150800p:plain

 

5つ追加しました。

これてエラーも消えますね。

f:id:jusys2-13bpower:20200419151044p:plain

一つの項目を選択すると下にその内容がでてきます。

とりあえず名前、説明文、ラベル、データ型、最大桁数、必須、デフォルト値が

設定できます。

f:id:jusys2-13bpower:20200419151224p:plain

試しに色々変えてみましょう。

 

f:id:jusys2-13bpower:20200419151757p:plain

各項目は、データ型を設定しましょう。

各データ型は、RDBと同じような感じですね。

f:id:jusys2-13bpower:20200419151912p:plain

各データ項目は、oracle sqlserverの項目に規則性を持ちます。

 

そもそもOutsystemsdではこの操作を通して、

内部的にSQLを実際に発行し、関連したRDBに保管しているからだ。

ただし、その関係性のため、一部項目を変更したからというって一度変更した

あとは変更できないものもあります。余談ですが・・・

こんな感じで入れてみました

 

f:id:jusys2-13bpower:20200419152318p:plain

 

f:id:jusys2-13bpower:20200419152528p:plain

 

f:id:jusys2-13bpower:20200419152600p:plain

f:id:jusys2-13bpower:20200419152632p:plain

こんな感じです。

 

おわったらパブリッシュ一旦保存しましょう。

f:id:jusys2-13bpower:20200419152710p:plain

f:id:jusys2-13bpower:20200419152757p:plain

 

f:id:jusys2-13bpower:20200419152851p:plain

Doneがでればok

 

はテーブル作成しました。

 

速い人だと20秒ぐらいでおわるじゃないですかね?

 

通常だとデータベースをインストールしたりとか

スクリプト書いたりとかいろいろやったら1日かかる人もいるかもしれませんね。

20秒です。

 

③一覧と明細画面作成。 マスタメンテな画面などよく使いますね。

ではやっていきましょう。

画面はInterfaceに作成します。

f:id:jusys2-13bpower:20200419153332p:plain

 

基本ではMainFlowないに作っていくとしましょう。

MainFlowを開くと以下のような図がでてきますね。

 〇 or  〇となっています。

右側の図と同じことしてみましょう。

 

f:id:jusys2-13bpower:20200419153518p:plain

これこれ

何しているかというと先ほど作成したテーブルを

ドラックアンドドロップしましょう。

f:id:jusys2-13bpower:20200419154247p:plain

こんな感じです。

youtu.be

さて出来上がったものを動かしてみましょう。

とその前に、

このままだと認証画面がでてきます。

動作がわかりにくいのでできあがった

 

f:id:jusys2-13bpower:20200419160103p:plain

[Anoymous]にチェック入れましょう。

無条件にアクセスできるようになります。

リストと明細それぞれやってください。

 

それでは

青いボタンを押してみましょう。

f:id:jusys2-13bpower:20200419155646p:plain

・実行画面

 データがまだ入っていないのでなんかできてるのって感じでしょうか。

とりえず、データ追加しましょう。

Add StudentTableを押してください。

f:id:jusys2-13bpower:20200419160335p:plain

 以下が明細画面

 

f:id:jusys2-13bpower:20200419160532p:plain

 

一覧と明細でAttributeで設定したLabelで作成されたかと思います。

作成時しか反映されません。名前、住所、年齢ですね。

f:id:jusys2-13bpower:20200419161322p:plain


なんかテストデータでセンスでてしまいますね。

保存したい場合はSAVE

はい御覧のとおりできました。

f:id:jusys2-13bpower:20200419161422p:plain

 

まだまだ、先ほど名前を必須としましたよね。

f:id:jusys2-13bpower:20200419161624p:plain

もう一件いれてみましょうか

織田信長といえば今きてますね。

明智光秀じゃ仲いい時いいので明智十兵衛で行きましょう

名前を入力せず保存 明智光秀は年齢不明のため

名前が、必須入力エラーがでて、

年齢は、数値エラーがでていますね。

何も実装していませんよ。

標準でこれです。

 

f:id:jusys2-13bpower:20200419162029p:plain

じゃちゃんと登録しましょう。

はいこんな感じ

f:id:jusys2-13bpower:20200419162256p:plain

新規登録は、先ほどの通りで、

明智光秀に変更してい見ましょう。

明智十兵衛の名前をクリック。

こんな感じでしょうか。

f:id:jusys2-13bpower:20200419162413p:plain

 

明智光秀に変更して保存

f:id:jusys2-13bpower:20200419162610p:plain

変更しました。

 

じゃ検索つかってみましょうかSearchに「織田」といれてみましょう。

検索できますね。

f:id:jusys2-13bpower:20200419162804p:plain

 

じゃ、私プロがちょっと使える感じにしましょう。5分から10分程度ください。

 

はいできました。

住所でも検索したかったので住所の条件追加。

日本語に変更。

f:id:jusys2-13bpower:20200419165030p:plain

f:id:jusys2-13bpower:20200419165308p:plain

 

こんな感じです。

開発した経験があるしたが作成したとしても20秒でできますか?

 

というのがOutSystems

 

実際の開発というと、

この手法を行うことは少ないですが、

ひつづくおこなったとしても簡単に作成できます。

 

こちらの記事が評判よければ

今後は具体的なツールの使い方をやってみましょう。