RmenuとはRmenuとはどんなものなのかどうやって作るのかを説明しますRmenuとはもくじ

RmenuとはRmenuの特徴



業務用WEBアプリとは

仕様書は不要とは



MVCモデルとは

クライアント側とサーバー側とは



JSONとは

Rmenuファイル構成のツリー



必要な知識

Rmenuとはソフトウェアフレームワークの一つとしエンジン基礎となる使用言語をRubyで作成されたものであり、日本製のプログラミング言語Rubyを使用したぶん日本初の日本製フレームワークがRmenuである。
Webベースの業務アプリケーション開発エンジン「Rmenu」では、Web系開発時に懸念される点が改善されており、Rmenuは業務用Webアプリケーションをノンプログラミングで自社開発することを目指した無料のフレームワークです。
MVCアーキテクチャを取り入れ、並列分散バッチ処理、帳票作成処理も兼ね備えており、開発費用の削減ができるフレームワークです。
メインフレームを意識した、フレームワークのため、サーバーの規模によりますが、世界中からの同時アクセスにも耐えうる設計となっています。
他に類を見ない、下記の機能をかねそなえています。
新規プロジェクトはもちろんのこと、プロジェクトごとの業務追加に際しても、サブシステムの追加構築が容易に行えるよう、一つのインスタンスで複数プロジェクトに対応可能です。
プロジェクトごとのデータベース割り当てはもちろん、一つのプロジェクトで複数のデータベースアクセスも可能です。
ジョブ管理画面による並列分散バッチの進捗状況の管理が可能です。

ジョブ管理画面のリスタート機能により、異常終了した分割ジョブの再起動が可能です。
Rubyで悩む帳票作成工数の軽減・解消のために、同じプログラムで、オンライン帳票・バッチ帳票の二種類に対応が可能です。
バッチ帳票は、帳票管理画面（スプーラ機能）から出力・再出力・削除等がコントロール可能です。
Ａｊａｘによる実装で、画面再描画を最小に抑えレスポンスが早いのも特徴
日本語によるプログラム開発が可能なため、生産性、保守性、システムの引継ぎ等が飛躍的に向上します。
『国際規格ISO/IEC 30170承認された、日本製のプログラミング言語Rubyを日本製フレームワークRmenuを使って開発できる』
まさに、Rmenuは日本向け業務用Webアプリケーション開発の基本となりえるでしょう。
プロトタイプ利用２０１２年より実装
開発発明者：下地忠史

Rmenuの特徴
業務用WEBアプリのフレームワークです

Webアプリの為webサイトに接続できる様々なデバイスで業務を実行できます

仕様書は不要

画面とER図だけで作成します（帳票ありの場合もある）

MVCモデルプログラムを役割ごとにモデル・ビュー・コントローラに分けて動いています

クライアント側とサーバー側に分けて作成します

クライアント側はブラウザ関係・サーバー側はDB関係

JSONでデータを流す
日本語でネーミングができ、項目名を揃えて作成することでJSONファイルがデータを流してくれます

RmenuのプログラミングとはJSONファイルを作成することですRmenuの特徴


業務用 webアプリとはインターネット環境にある様々なデバイスで会社の業務システムを使用することができます
インターネット

PC

タブレット

スマホ

WEBサーバー

データベース※WEBアプリとはWEBサーバーを使用したアプリケーションプログラムのこと

Rmenuの特徴


仕様書不要とは作成手順

必要があれば画面を確認

ER図を確認プログラムをコピー

項目名を作成プログラムを追加

Rmenuの作成は『画面』と『ER図』で作成するため仕様書はありません
ER図と画面を確認すると、どのプログラムをコピーすれば良いか解り、ボタンの接続先や動かすプログラムなどは［Appspec.js］に書かれており、仕様書の役割をしています
作成時に受け取るものは「Rmenuプログラム」「ER図」「作成プログラム一覧表」の3つです
3つを用意し、雛型になるプログラムをコピーし、項目名を作成しながら、Rmenuを作成します。※上記図Rmenuの特徴
MVCモデルとは1つのプログラムを役割ごとに［model］［view］［controller］ の3つに分けて作成します※図1

これらの役割は［controller］は受け取った指示をモデルとビューへ指示を出し回答を返します※図2［model］はデータ処理をコントローラから指示され実行します［view］はデザイン処理をコントローラから指示され実行します
図2

図1

SCMVCMV

追記：RmenuはSMVCモデルとも言います（SMVCは海外ではあるが日本にないタイプ）
これは「MVC」+「S」のことです［S］は［Appspec］のことを指します［Appspec］はボタンのイベント設定や使用するJSONが書かれていますが実行する訳ではなく、他のシステムにある仕様書の役割をしています（APPはアプリケーション・SPECKは仕様書の意味）

Rmenuの特徴
クライアント側・サーバー側とはRmenuのプログラムはwebサーバーを挟んで2つに分れます
左側がクライアント側、右側がサーバー側です

ブラウザ

クライアント側

WEBサーバ

サーバー側

データベースクライアント側のプログラム

サーバー側のプログラム

Html

dataset.json

CSS

validation.json

Appspectran.json

main.jssql.jsoncontroller.js

controller.rb

model.jsmodel.rb

view.js

view.rb

Rmenuの特徴
JSONとはJSONとはJavaScript Object Notationの略で、XMLなどと同様のテキストベースのデータフォーマットです。
その名前の由来の通りJSONはJavaScriptのオブジェクト表記構文のサブセットとなっており、XMLと比べると簡潔に構造化されたデータを記述することができるため、記述が容易で人間が理解しやすいデータフォーマットと言えます。

Rmenuはサーバー側の様々なJSONを作成し、データを流します※項目名が日本語で作成できる為初心者でもわかりやすくなっています※Rmenuのプログラミングとは、このJSONを作成することですRmenuの全体像を次の「Rmenuファイル構成」で確認し、✓ RmenuがSMVCモデルである事✓ クライアント側とサーバー側の分かれている事✓ 拡張子を確認し何が使われているのかなどを確認してくださいIndex.html

Rmenuファイル構成
Rmenuのファイルの構造です。

プログラム名は各画面ごとにあります↓
Appsプログラム名Css

Controller.mixin.js

Js

Model.mixin.js

template

View.mixin.js

Appspec.js
Controller.js

Download

主に初心者がよく使うファイルをピックアップしたツリーです。

Main.js

Html

クライアント側の作成はここを作成します

Model.js
View.jsRmenu

プロジェクト名Appliction

A

dataset.json

共通のjsパターンがいる場所↑

プロジェクト名B

プロジェクト名C

Validation.json
JSON

各Rmenuが並ぶ↑

プログラム名Apps

Toran.json
PdfTemplate

プログラム名Apps

Sql.jsonController.rb
プログラム名

Apps
ServerModules
Workshop

Mixin.rb

Js←共通のRuby

Model.rb
View.rb

Html・JSON・server・プログラムコンバート.rb
Bootstrap

Html↑プログラムのコピーを作る場所

rm_vc.2.11js←各ライブラリとフレームワークの基本命令が入っている場所

Main

RmenuConfig.rb

JqueryLibraries
Modules

SystemConfig.rb

ServerRmenudocs.rb

no0_batRmenuhtml.rb

no1_batRmenulogin.rb←ファイルパスmixin.rbが入っている場所

Controller.log
Model.log
Logs↑Rmenu立ち上げ時に起動させる所

サーバー側の作成はここを作成します

Modeldb.log
Rack.log
View.log

操作の履歴が確認できる為、作成時によく使います

サーバー側のRubyの作成はここを作成します必要な知識Rmenuの作成時に必要になる知識です

初心者向けレベルからで十分なので自習しましょう

Ruby



JavaScriptPostgres SQLHtml・css

jQuery

BootstrapER図Rmenuとは完了
次に、Rmenuがどうやってデータを流しているのかデータの流れ方の詳細を学びます。

画面で入力

サーバー通過DB更新

Rmenuとはデータの流れ方

データの流れ方
もくじ

データフロー（主なJSONの流れ）



データの流れ方（全体図）



データの流れ方（詳細図）



WEBサーバーとはデータフロー（主なJSONの流れ）➀～⑨の順にプログラムが動きデータを処理して画面が更新されます
各処理はJSONでデータを流しています※白文字が主なJSONの流れです
リクエスト.JSONリクエスト.JSON➀
Rmenuを操作します②
ｸﾗｲｱﾝﾄ側で処理③
Webｻｰﾊﾞｰを通過④
ｻｰﾊﾞｰ側で処理⑤
ﾃﾞｰﾀﾍﾞｰｽ
更新

データセット.JSONSQL .SON
WEB
サーバー

画面

⑨
Rmenuの画面が更新⑧
ｸﾗｲｱﾝﾄ側で処理⑦
Webｻｰﾊﾞｰを通過

レスポンス.JSON

DB⑥
ｻｰﾊﾞｰ側で処理レスポンス.JSON※データセットJSONは項目を定義している（データを移送する時の入れ物・Htmlはここのデータをもとに表示する）※リクエストJSON・レスポンスJSONはtran.jsonの中に書かれていますデータの流れ（全体図）
左下の➀画面操作から⑯画面に表示されるまでのデータの流れ
サーバー側

クライアント側
WEBサーバーアプリケーションサーバー

DB☆JSONファイルの設定

Appspec ☆イベントの設定②イベント発生

ブラウザ

Html
CSS
jQueryBootstrap

ｺﾝﾄﾛｰﾗ③関数コール

データセットJSON（空）⑭関数コール➀画面操作⑥リクエストJSON■validation.json
⑦SQL

Model

⑯データ表示viewｺﾝﾄﾛｰﾗ④リクエストJSON

⑮結果
⑬結果

⑤リクエストJSON⑫レスポンスJSON
データセット
JSON
（結果）

WEB
サーバー
（RACK）⑨SQLJSON⑩リクエストJSONSQLJSON

View■tran.json⑪レスポンスJSON

Model■sql.json
⑧SQL
（結果）

DB

データの流れ（詳細図）
クラ
イアン
ト側

サーバー側

クラ
イアン
ト側

処理場所

発生処理

流れ

➀画面操作

画面

「このデータが欲しい」クリックする②イベント発生

画面
ｺﾝﾄﾛｰﾗ「ボタンがクリックされた」＝（イベント発生）
Appspec☆イベントの設定を実行できるように動く③関数コールｺﾝﾄﾛｰﾗﾓﾃﾞﾙ「ﾓﾃﾞﾙへデータを持ってきて」と指示する「ﾓﾃﾞﾙはデータを貰う為のリクエストを作る」Appspec☆JSONの設定を確認④リクエストJSON

ﾓﾃﾞﾙWebｻｰﾊﾞｰ「webｻｰﾊﾞｰへリクエストを送る」このときデータセットJSONはデータが空の状態「webｻｰﾊﾞｰではリクエストを受け取りRACKで仕分ける」⑤リクエストJSON

Webｻｰﾊﾞｰｺﾝﾄﾛｰﾗ「サーバー側のｺﾝﾄﾛｰﾗへリクエストを送る」「ｺﾝﾄﾛｰﾗはリクエストを受け取りモデルへ指示をおくる」⑥リクエストJSON

ｺﾝﾄﾛｰﾗﾓﾃﾞﾙ「ﾓﾃﾞﾙはレスポンスを受け取りSQLを作成する」「ﾓﾃﾞﾙはDBからデータを貰うためにSQLを作成する」

⑦SQL

ﾓﾃﾞﾙ
DB

「DBへSQLを送る」「DBはSQLを読みテーブルからデータを用意する」⑧SQL（結果）

DB
ﾓﾃﾞﾙ「ﾓﾃﾞﾙへデータを入れたSQLを返す」「ﾓﾃﾞﾙはもらった結果でsql.jsonを作成する」⑨SQLJSON

ﾓﾃﾞﾙ
ｺﾝﾄﾛｰﾗ「ｺﾝﾄﾛｰﾗへデータ入りのsql.jsonを送る」「ｺﾝﾄﾛｰﾗはデータ入りのsql.jsonを受け取りビューへ送る」⑩リクエストJSONとSQLJSON

ｺﾝﾄﾛｰﾗﾋﾞｭｰ「ビューへリクエストとsql.json（結果入り）を送る」「ビューはリクエストとsql.json（結果入り）を受け取り、レスポンスを作成する」⑪レスポンスJSONﾋﾞｭｰ
Webｻｰﾊﾞｰ「Webｻｰﾊﾞｰへレスポンスを送る」「webｻｰﾊﾞｰはレスポンスを受け取る」⑫レスポンスJSON

Webｻｰﾊﾞｰﾓﾃﾞﾙ「クライアント側のﾓﾃﾞﾙへレスポンスを送る」「ﾓﾃﾞﾙはレスポンスから結果を作成する」データセットJSONはデータが入った状態に

⑬結果

ﾓﾃﾞﾙ
ｺﾝﾄﾛｰﾗ「ｺﾝﾄﾛｰﾗへ結果を送る」「ｺﾝﾄﾛｰﾗは結果を貰いﾋﾞｭｰへ表示する為の指示を作成」⑭関数コールｺﾝﾄﾛｰﾗﾋﾞｭｰ「ﾋﾞｭｰへ色を変えてAを表示して」と指示する「ﾋﾞｭｰは画面に表示するものをセットしてブラウザへ送る」

⑮結果

ﾋﾞｭｰ

「ｺﾝﾄﾛｰﾗへセットした結果を送る」⑯データ表示画面「画面が切り替わりデータが表示される」

データの流れ方Webサーバーとは

Rmenuで利用するのは『WEBサーバー』＝『RACK』です『RACK』とはrubyをインストールしたときに一緒に入っているwebサーバーの事です『RACK』の役割：受け取ったJSONを指示されたところへパスするだけ※下記図※Webサーバーの事を『Webリック』ともいう（webサーバー＝webリック＝RACK）
サーバー側
クライアント側Webサーバー

更新時

RACK

リクエストJSON

メイン

レスポンスJSON

ログイン

アプリケーションサーバー

DB

コントローラビュー

モデル

ダウンロード

画面切替のみリクエストJSON
レスポンスJSON

HTML
ドキュメント
テキスト

RACK内に様々なRubyがあり貰ったリクエストJSONを使用するところへパスします

アップロード※RACKのメインはJSONへファイルをパスしてプログラムを動かす役割
HtmlはHtmlファイルを持ってきて画面を切り替える役割 7箇所それぞれに役割が分かれていますデータの流れ完了
データの流れを一度、『ビジュアルツール』を使い追ってみるとわかりやすいです（数値を入力した時のパターン・ログイン時のパターンなど

動くプログラムによって違うので様々なパターンで入力したデータが移送される様子を追いかけます）

RmenuとはRmenuを動かすRmenuを動かすもくじ

必要なツール

環境設定（ツールのインストール）プログラムを用意（SVN）



データベースを用意（postgres）



立ち上げ方



URLを開く

ログイン画面

メニュー画面必要なツール
Rmenuはローカル環境で作成します
作成後に『RmenuSVN』を更新することで作成したプログラムを開発メンバーに共有します

まずは自身のPCに必要なツールを用意しますツール

名称

DB（データベース）『postgres』プロジェクトごとにデータを保管

プロブラムファイル『RmenuSVN』プログラムの保存先

テキストエディター『ﾉｰﾄﾊﾟｯﾄ++』『秀丸』プログラムを書く

ブラウザ『クローム』Rmenuを開く環境設定（ツールのインストール）
環境設定（インストール）

プログラムを用意

DBを用意•「Ruby」（事前学習時に済）•SVNとは•データベースをローカルへ作成する•データベース「Postgres」•SVNの設定•コンフィグ設定•プログラム共有「SVN」•SVN使い方•テキストエディタ「ノートパット++」•ブラウザ「クローム」

Rmenu作成に必要なツールを各自PCに用意します
必要なツールをWEB検索を行い、手順にそってインストールします※「Ruby」と「postgres」はバージョンがあるので対応バージョンの確認が必要です

全てのインストールが終わったら、次の設定へ進みますプログラムを用意（SVN）
SVNとはプロジェクト作成メンバーで最新のプログラムを共有する為に使用します［コミット］と［更新］をするだけで簡単に作成したRmenuのプログラムが 共有できます
SVNサーバー
コミット
更新

更新
更新

同じファイルを共有できる

更新

基本の使い方1.プログラムを作成中は赤いマークが付きます
2.共有しても良い状態になったらコミットを切ります
3.コミットを切り緑マークになったファイルはメンバー全員に共有できます

マーク状態

緑

共有ファイル（作業前に毎朝更新すること）

赤

自身で作成中、コミットすると緑になりますなし

共有していないファイル（自分だけが見れる）

プログラムを用意（SVN）
SVNの設定

1.新規フォルダーを作成します（C:直下にタイトルは［RmenuSVN］）

3.認証画面にユーザー名・PWを入力する
ID:「svn_itiuser 」
PW:「vwg5E92T」

2.右クリック［SVNチェックアウト］を押下「リポジトリURL」へ接続先URL「http://153.126.176.78/svn/sandbox」を入力し［OK］

プログラムを用意（SVN）
使い方

1.毎朝必ず［更新］を実行します（最新の状態で始めるため）（Rmenuフォルダーの上で右クリック）

2.作成できたら［コミット］を実行すること（誤ったプログラムや共有不要のものはコミットしない事）（作成できたファイルの上で右クリック）

3. 新規作成したときは［追加］を実行し、コミットを実行する

4.作成を取り消したいときはコミットを切る前に［変更の取り消し］を実行する（朝更新したときの状態に戻り、初めからやり直せます）

データベースを用意（postgres）


データベースをローカルへ作成する

1.ポスグレを開き、新しいデータベースを作成します➀データベースの上で右クリック→［新しいデータベース］を開く②［名前］を作成する（例：DB名［aaa］を作成します）［オーナー］を選択→［postgres］③［OK］をクリック→ローカルに新しいDBができますデータベースを用意（postgres）


データベースをローカルへ作成する

2.リストアーを実行する（データを入れること）➀データベース［aaa］の上で右クリック→［リストアー］を開く②ファイル名を［･･･］から選択する（SVN内にバックアップ済の物を貰う）［リストアー］を実行する（データが多いと時間がかかります）③［aaa］を開きテーブルの件数を確認し件数が入っていれば成功ですデータベースを用意（postgres）
コンフィグ設定

DBを用意できたらRmenuのプログラムとDBをつなぐ作業が必要になります
コンフィグとは［RmenuConfig.rb］というファイルです
構成図で見ると下のほうにあります
これは各自参加するプロジェクトによって内容が違う為SVNで共有しません
ファイルを貰い、中身を自分の参加するプロジェクトのDBにつながるように書き換えますデータベースを用意（postgres）
コンフィグ設定
1. ［RmenuConfig.rb］を貰い、RmenuSVNの中へ置きます［ C:¥RmenuSVN¥Rmenu¥System¥Server¥
Libraries¥Main ］の中へ貼り付け

2. ［RmenuConfig.rb］を開き、［DB設定］が並んでいる事を確認し今回追加分を作成します 1塊をコピペし下部に追加する

コピペ

3. ➀コピぺできたら黄色部分の［数字］を変更します②青字部分に［DB名］と［プロジェクト名］を作成③赤枠のデータベースをDB名の［aaa］で作成
4.3箇所変更できたら上書保存して完成
注意：➀データベース以外の項目
ユーザーネームやPWなど人によって違う場合もあります②SVNに追加しない事
各自設定が違う為SVNに追加しない③DB名は半角小文字ですRmenuの立ち上げ方
1.データベースを起動する（PCの設定でほとんど自動で起動していますので何もしなくてOKです）

2.WEBサーバーとアプリケーションサーバーを起動する
Rmenuのファイルの中のsystemを開き、➀［no0_Rackup.bat］をクリックし起動させます（これは「webサーバー」を起動させるプログラムです）②［no1_Maincontroller.bat］をクリック（これはアプリケーションサーバーを起動させるプログラムです）③

2つのコマンドプロントが開く、閉じずに［最小化］してください※閉じてしまうとRmenuは起動できません

3.ブラウザを開きRmenuのURLを開き、ログインできたらRmenuが使用できますRmenuを動かす完了
次は、Rmenuを作成します☆