MAGIC-RIA 事例紹介 基幹システム (PC RIA) から WEB 受注 (WEB マージ ) 倉庫管理 ( モバイル RIA) まで ALL MAGIC 開発事例 株式会社マイクロリンク 阿知波
1:MAGIC 開発の過去 2000 年 クラウド という言葉がなかった時代 ~ DBMAGIC バージョン 8 の 3 階層開発はこうだった ~ S 社 (1) 様にて MAGIC V4 製基幹システムのリプレースを MAGIC V8+MAGIC エンタープライズサーバーで構築 目的はバッチ処理の負荷分散だった 東京 名古屋 大阪の支店単位でサーバーを保持 テ ータヘ ースサーハ ー 2 階層ロジック アフ リケーションサーハ ー dbmagic8 Enterprise Server MRB 3 階層ロジック dbmagic8 Client 時間がかかる処理はリクエストを投げてサーハ ー上で処理させる 遠隔地営業所 企業内専用線 MetaFrame dbmagic8 Client
2:MAGIC 開発の過去 2005 年 PC インフラの処理能力は次第に向上した ~ 遠隔地で非 WEB 業務システムを動かすにはコストがかかる ~ サーバーの処理能力向上により 分散されたサーバーを集約 ネットワークインフラも速度向上したが 遠隔地ではレスポンスよくシステムを使うために METAFRAME は残された 全社サーバー統合 3 階層ロジック 支店 テ ータヘ ースサーハ ー アフ リケーションサーハ ー dbmagic v9plus Enterprise Server MRB 遠隔地営業所 2 階層ロジック 企業内専用線 IP-VPN インターネット VPN MetaFrame dbmagic v9plus Client 遠隔地営業所
3: 現代はクラウドベースのシステム提案 & 開発 ~ サーバーメンテ不要 どこでも使える業務システム ~ ユーザーインターフェースはそのままに RIA お金はかけたくない 脱 METAFRAME/ 脱ターミナルサービス X INTERNET
4:VISUAL STUDIO での RIA 開発 ~WINDOWS COMMUNICATION FOUNDATION(WCF)~ 総合相談支援システム ( 社会福祉協議会 社会福祉法人様向け ) WELFARE365 ユーザーインターフェースはいつものWINDOWS フォーム 裏ではクラウド上のIISでホストされるWCFサービスと通信を行っている.NET FRAMEWORK 上で動くためWINDOWS OSは必須 クライアント側へのアプリの配布は CLICKONCEを使用する
5:VISUAL STUDIO の RIA 開発 ~WINDOWS COMMUNICATION FOUNDATION(WCF)~ プログラムは大きく 2 つに分かれる サービス側 (DB 処理 ) とクライアント側 ( ユーザー画面 ) Magic Xpa3.1 では WCF サービスにアクセス可能! 設定ファイル ( サービス ( サーバー ) 側 :WEB.CONFIG クライアント側 :APP.CONFIG) データベースとの接続文字列など サービスの指定 プロキシーの有無 ClickOnce の.netFramework のバージョン指定など
6:VISUAL STUDIO の RIA 開発 ~WINDOWS COMMUNICATION FOUNDATION(WCF)~ サーバー クライアント共に.NETFRAMEWORK が入っていれば動く ラインタイムソフトウエアが不要 & ブラウザのバーションに依存しない クライアント側は通常の WINDOWS フォームアプリケーションなので開発は特に困ることない 情報が多い デバッグはコール先のサービス側プログラムもステップインできる 設定類 (SSL 通信 プロキシー設定など ) が難解 (APP.CONFIG で設定 ) アプリのリリース時 バージョン設定やサービス参照先の変更は手動で行ってビルド & リリースするのでちょっと神経を使う サービス側 クライアント側それぞれ開発するので 2 階層アプリケーションより開発工数がかかる
7:MAGIC XPA2.5 の RIA 開発 ~MAGIC RIA(WIT 販売 )~ ソース公開型パッケージ WIT 販売をベースに開発
8: システム業務フロー (1) 得意先 DL 発注入力 DL 注文状況照会 DL 注文状況照会 本社事務所 受注一覧画面 DL 発注入力された一覧を抽出 在庫の有無を確認 仮納期の入力 ( 在庫があれば正式納期の入力 ) 在庫が無ければ 発注する 発注チェックボックスに ON する ( 発注入力画面に抽出される ) 発注伝票生成画面 受注伝票の発注チェックボックス ON 明細を抽出 メーカーを指定して抽出 明細は受注 No 単位にはせずにまとめる 外貨で入力 発注一覧画面 発注伝票の未輸送中状態の明細を抽出 INVOICE 番号と日付を入力する 外貨で入力 受注一覧画面 正式納期を入力する 輸送中処理画面は受注とは紐づいていないので 正式納期の入力は受注一覧画面で行う 受注伝票入力 詳細情報の編集 ( 商品コート の変更等 ) または DL を通さない受注の入力 発注伝票入力 生成された伝票の修正など または在庫品の発注 invoice 発注伝票入力 分割処理など伝票の修正 メーカー WEB 画面や FAX で発注 検品対象リスト発行 在庫の増 発注残の消込 倉庫 在庫がある場合 発注せずにピッキングリストが発行対象となる 優先順位は納期の早い順だが 最終ジャッジは高橋さん? ( 営業担当との連絡方法は?) ハンテ ィチェック仕入計上 スキャンできなかった商品はラベルを発行させてスキャンする 検品対象リストの全品がスキャン完了したら仕入計上可能 仕入伝票入力 生成された伝票の修正など 発注を通さない仕入 仕入先 注文出荷開始到着
9: システム業務フロー (2) 得意先 納品 納品書請求書送金 本社事務所 請求締め処理請求書発行 請求書 入金入力 支払入力 外貨と現時点レートの入力 送金 ピッキングリスト発行選択画面 ハンテ ィチェック売上計上 HDT で登録された明細を抽出チェックボックス ON で売上伝票生成する 倉庫 ヒ ッキンク リスト 納品書 売上伝票入力 生成された伝票の修正など ピッキングを通さない売上 棚番表示 送り状 CSV 在庫の減 受注残の消込 仕入先
DEMO は後ほど 10:MAGIC XPA2.5 の RIA 開発
11:MAGIC XPA2.5 の RIA 開発 ~MAGIC RIA(WIT 販売 )~ プログラムの作り方はいままで同様 ただし VB.NET の開発と同じくサービス ( サーバー ) 側とクライアント側の考えは同じなので その辺りを意識して開発する必要あり 基本は同じ DB 処理するのはサービス側!
12:MAGIC XPA2.5 の RIA 開発 ~MAGIC RIA(WIT 販売 )~ MAGIC の特徴ではあるが 改めて VB と比べると 開発工数は少くなくて済むと実感 ( 特にデータベース ( バッチ ) 処理 ファイル転送 ) SSL の設定がラクすぎる チェックボックス ON にするだけ アプリのリリースはキャビネットファイルをつくりサーバー上にコピーするだけで OK( ただし MRB 再起動必要 ) IOS ANDROID のランタイムがある ランタイム (RIA SERVER) は有料です デバッガーが使いずらい ( 私が無知なだけ?) など
安い ゼロから作るより工数減 RIA 環境構築手順もわかりやすいマニュアルがあり 悩むことなくリリースできる 帳票類のほとんどは REPORTS MAGIC で作られている 13:WIT 販売 ~MAGIC RIA(WIT 販売 )~ 標準メニューは大きくて 画面上裏で残っているので邪魔 ( ユーザー意見 ) -------------------------------------------------------------- 細かいことを言えばキリがないですが この値段でこのソースが手に入れば十分な価値はあると思います
14: クラウドシステムにかかるライセンス ~ データベース SQLSERVER が高い!~
15: クラウドシステムにかかるライセンス ~ 今後は MS-AZURE が独占状態になる?~ 基本的に 月額使用料 ( 下りの従量課金制 ) を支払っていれば MS ライセンス (SPLA) の縛りが ない なので OFFICE365(EXCEL 等 ) も AZURE サーバー上であればインストール利用 OK 今後気になる AZURE の SQL データベース MAGIC からの接続 DEMO
16: 稼働中システム構成 ~ 上限料金があるクラウドエヌ + データベースは商用フリーの POSTGRESQL~ 仮想サーバー Windows2012R2 ODBC ゲートウエイ データベース RIAServer 20user EnterpriseServer 2 スレット SSL 暗号化通信 INTERNET X17 台 X3 台 数百社の得意先店舗
17:POSTGRESQL ってどうなの? ~ 全然使えます ~ 本体 : バージョンは 9.4.4-3(WINDOWS-X64 版 ) を使用 ODBC ドライバー : バージョンは 09_03_0400 を使用 (32BIT 版を使用 ) 管理ツール (SSMS のような GUI ツール ):PGADMIN ー Ⅲ を使用
18:POSTGRESQL ってどうなの? ~SQLSERVER との比較 ~ X 日付 0000/00/00 は受け付けない (1950/01/01 等にしないといけない ) SQL 文 : カラム名は ダブルクォーテーションでくくる (SQLSERVERは [ ]) SQLSERVERでいう照合順序がない バイナリ形式と同じ 大文字小文字がはっきり区別される LIKE 文ではなく ILIKE 文を使う言語設定 POSTGRESQL はインストールしただけでは 自ホストからしか接続できない (RIA の環境では問題ないのだが ) HTTP://WWW.PROJECTGROUP.INFO/DOCUMENTS/POSTGRESQL/POS_000007.HTML
19:POSTGRESQL ってどうなの? ~POSTGRESSQL.CONF~ メモリ パフォーマンスチューニング:SQLSERVERはある程度自動でやってくれるが POSTGRESQLは設定ファイル (POSTGRESQL.CONF) で設定しないといけない 参考までに今回の環境のPOSTGRESQL.CONFの設定は下記のとおり ---------------------------------------------------------------- MAX_CONNECTIONS = 200 DEADLOCK_TIMEOUT = 30S = 仮想サーバーのメモリ :16GBの設定 = SHARED_BUFFERS = 3GB WORK_MEM = 32MB WAL_BUFFERS = 32MB CHECKPOINT_SEGMENTS = 16 RANDOM_PAGE_COST = 3.0 EFFECTIVE_CACHE_SIZE = 3GB ----------------------------------------------------------------
20:POSTGRESQL ってどうなの? ~MAGIC の ODBC ゲートウエイで使う場合 ~ X DB SQL の書き方
21:IPOD TOUCH を使ったハンディターミナルの開発 ~ お手軽ハンディターミナル ~ バーコードスキャナ : イメージャー KDC420I BLUETOOTH 接続 ( 専用キーホ ート ソフトウエア不要 ) USB 充電可能だが IPOD-TOUCH からは 充電されない マニュアルがすごくわかりにくい
22:KDC420 BLUETOOTH 接続 ~ 読み取り ~ 動画 DEMO
23:IPOD TOUCH を使ったハンディターミナルの開発 ~ ここに注意 ハまります ~ キーボードは英語以外は消しておいたが IOS をバージョンアップすると 勝手に日本語キーボードが増える ピリオドの簡易入力 は OFF にしておく
24: 動画 DEMO ~ 集荷指示 ピッキングリスト発行 ~
24: 動画 DEMO ~HDT ピッキング入力画面 ~
24: 動画 DEMO ~ 売上計上 納品書発行 ~
25: ラベル発行は BROTHER ラベルプリンター添付ソフトで ~CSV を定義したフォルダにダウンロードさせるだけ ~ INTERNET P-touch Editor 5.1 ClientFileCopy()
26:MAGIC ENTERPRISE SERVER を使った B TO C WEB 受注画面 ~ デザイン面 ~ 開発 : マージ形式 テンプレートは BOOTSTRAP を使用 レスポンシブ WEB デザインに対応 スマートフォンやタブレットなど個別に対応するスタイルを作っていると大変手間がかかります BOOTSTRAP は CSS3 のメディアクエリを使用しているので ブラウザの横幅サイズを判断基準として レイアウトデザインを柔軟に調整することが可能です
27:MAGIC ENTERPRISE SERVER を使った B TO C WEB 受注画面 DEMO( 時間があれば ) ~ 画面 ~
28:: クラウドを使ったベストなシステム提案とは ~ なにが一番喜ばれる?~ WEB システム ( ブラウザベース ) のシステムを使っていたお客様に RIA 提案するときは注意! RIA: 操作面は素晴らしいのだが 1 画面しか開けないことが難点 ( 例 : 過去の商品売上情報画面を参照しながら 伝票入力したい など ) ブラウザのようにタブで複数画面を開いて切り替えて開けない ブラウザのように 画面内検索ができない (CTRL+F) ブラウザのように 画面まとめてコピーができない WIT 販売のデモサイトでお客様にて RIA の動きを検証いただく必要あり
29: 最後 : クラウドを使ったベストなシステム提案とは ~ なにが一番喜ばれる?~ 入力系 RIA(MAGIC RIA SERVER / WCF) 照会系 ブラウザ (MAGIC ENTERPRISE SERVER / ASP.NET MVC) 両方の技術を使う提案がベストかと思います END