48
超高速開発ツールを活用した進化型プ ロトタイプ開発の実践 ~このツールは、中小生産管理システムの構築に極めて有効か!~ ヤンマーエネルギーシステム株式会社 企画部企画グループ 大坪啓二 2016/02/25

超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

超高速開発ツールを活用した進化型プロトタイプ開発の実践 ~このツールは、中小生産管理システムの構築に極めて有効か!~

ヤンマーエネルギーシステム株式会社

企画部企画グループ

大坪啓二 2016/02/25

Page 2: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

1/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

はじめに

本当にユーザ部門でもできるのかな? 本当に早いのかな? 自分たちでやってみたいことがあるので、やってみよう もっと進んで、ESD21で提唱する中小PFに使えるのかな?

必要な情報システムをスピーデイに開発し、柔軟に変えていく ことのできる手段として、超高速開発という考え方とそれを支える 超高速開発ツールが注目を浴びています。 ここでいう「超高速開発」とは、単にプログラムを自動生成する 機能だけではなく、業務のデザインから運用・保守工程をも含めた システム・ライフサイクル全般にわたる生産性向上と 継続的品質改善のやり方を意味します。 ユーザ企業はもちろん、今までプログラミングの知識がないという 理由でシステム開発を対象外と考えていた経営指導の専門家の 人達にとっても、経営や業務知識をベースに情報システム開発が 行える有力な方法になる可能性があります。

2014年5月に発売とちょっと前の書籍ですが、 このような本が出ています。

この本の愛読者ですが、関係者ではありませんので、売り込みはしませんが、面白い本です。

Page 3: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

2/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

本日の内容として

当社の概要説明(事前の予備知識として) 超高速開発ツールとして(何を選ぶか) 開発事例 感想、考察

オープンや無償で提供されているツールを賢く使って、超高速開発ツールの恩恵を受けることができそうです。 今日はそのようなツールを紹介して、どのように使っているかを 見てもらえればと思います。私たちでも使えていますので、コンピュタ部門がある企業ならもっと簡単に恩恵を受けることが可能だと思います。併せてこのようなツールを使えば中小生産管理システム用の プラットフォームとして活用できるのではと期待しています。

Page 4: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

3/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

当社の概要説明

Page 5: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

4/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

弊社(ヤンマーエネルギーシステム)の説明1

社名に「システム」とついています。 残念ながらが、ITの会社ではありません。 ヤンマーの子会社でエンジンを使って 非常用発電機、ガス空調機(ガスひーぽん)の 開発・製造・販売・保守を行っている会社です。

また、IT部門はありません。 本社の企画部で対応しています。

みなさんのイメージは農業機械、建設機械でしょうか

Page 6: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

5/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ヤンマー舶用システム株式会社

ヤンマー建機株式会社

YANMAR MARINE INTERNATIONAL B.V.

ヤンマーホールディングス株式会社 グループコーポレートガバナンス

(持株会社)

エネルギーシステム事業

舶用事業

建機事業

マリンプレジャー事業

ヤンマー株式会社

産業用エンジン・農業機械

ヤンマーエネルギーシステム株式会社

ヤンマー情報システムサービス株式会社

グループのIT開発運用

弊社の説明2

会計・人事を始め、販売物流・生産管理など主だったシステムはグループ共通です。 ここで、開発・運用を行っています。

Page 7: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

6/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

■AP(Auto Pack)・・・パッケージ型非常用発電機 火災や災害時の停電時に発電

■非常用発電システム 火災や災害時の停電時に発電

■EP(Ene Power)・・・常用発電システム ガスで発電し、廃熱も利用するコージェネ

■GHP(Gas Heat Pump Air-conditioner) ガスで空調し、省電力の空調機

■CP(Co-generation Package)、ジェネライト マイクロコージェネレーション

■太陽光発電システム 再生可能エネルギーで発電

弊社の取り扱い商品

Page 8: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

7/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ユーザ企業の私たちが何故、自分たちでシステムを開発したいのか

基幹システムはグループ共通のため、1つの事業の要件ではなかなか 変更できません。 また、本体の情報システム部門やグループのシステム会社が各事業の 細部まで、事細かにシステム対応するのは現実的には難しいです。 残念ですが人員も予算もそこまで無いです。 その中で事業環境の変化に追随するためには、ある程度の部分は 事業領域ごとに自前でシステムを準備するほうが現実的です。 しかし、自前で準備するとは言っても、すべてをベンダーさんに お願いできるほど予算もありません。 よって自前で開発することになりますから開発期間は短い方が いいということでアジャイル(的)開発には非常に興味があります。 それからITの世界であっても、カイゼンのサイクルを回していきたいという 大きな課題があります。

Page 9: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

初期 投資

8/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

次期 投資

費用

保守費用

PDCA型(こうありたい)

費用

不満足度

初期 投資

定期 投資

難しいところは 外部を利用する 技術支援

当社の基幹システム(グループ共通)

不満足度

カイゼンのサイクルも早いし回数も多い

本当は事業環境の変化に合わせてITもカイゼンしたい

巨大な仕組みで投資額も大きいため、 簡単には変えることができない

保守費用

Page 10: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

ヤンマーエネルギー システム

9/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

基幹システムとユーザ部門でつくるシステムの線引き イメージ

ヤンマー本体

A事業 領域

B事業 領域

D事業 領域

セレッソ大阪

円の大きさが各事業の成長度合い。小さい円は成熟市場、大きな円は 成長事業。赤い破線は基幹システムがカバーしている範囲。 本体に近いところや、成熟市場は十分にカバーできます。 成長事業や本体と遠い事業領域はなかなかカバーできません。

破線の外側を 独自で実施 しています

全てをカバーする 大きな仕組みでは 無駄も多いです C事業

領域

基幹システム

サッカーチームも ありますが、 さすがにカバー できないです。

Page 11: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

10/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

更に当社のITの課題と対応を整理すると

グループの基幹システムで用意されてないところは 自前で準備する必要がある。 投資できる予算は限られています。技術支援などには投資するが、 ライセンス料、保守は極力抑えたい(ノウハウは残したい)。 予算が少ないのでシステムの開発は内作主体で進めたい。

事業環境の変化、業務改善に合わせてITもカイゼンする 高速で開発できるツールを活用して内作することでITカイゼンを実現させたい。 情報システム部門に依存しないでユーザー部門でも開発・運用ができるツールが必要。

業務プロセスを管理できるシステムを実現する 業務の鍵となる情報は履歴も管理したい。 ワークフロー、ライフサイクルも管理したい。 基幹システムは会計中心なので結果の管理。プロセスは各自でExcelで 管理しています。この部分も積極的に取り込みたい。

集中型の仕組だけでなく、自律分散型の仕組を整えたい 大きなシステムはカイゼンのための変更も大変。何でも集中型では難しいのでは。

Page 12: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

11/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

実はPHPでゴリゴリ書いたりもしましたが

生産計画、販売予定、在庫を ころがしなら検索するシステムです。 PHPでゴリゴリと自作してみましたが、ワークフローなどの追加は難しいです。

生産管理システム、販売管理システムのデータをもらって、バッチ処理でデータを作って検索しています。 これでもExcelで作表していた頃よりは便利になりましたが、これ以上の進化はちょっと無理そうです。 やっぱり、「超高速開発ツール」がよさそう。思い切って超高速開発ツールに乗り換えようかと。

ハンドでExcelを使って2日かかって作っていた資料を毎晩自動処理

引合数をクリックすると

Page 13: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

12/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

超高速開発ツールとして

Page 14: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

13/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

今回、何を使ってみるか?

2013年7月に開催されたESD21セミナー 「ソフト開発のTPS/Agileプロセスと自動化/機械化」でも ユニケージ開発法、

GeneXus (ウルグアイ製)、 Sapiens(イスラエル製)などが紹介されています。

その中で、何を基準に超高速開発ツールを選ぶかですが、 ①無償版があって簡単に試せるもの ②研修や書籍が有償でもいいので手に入ること を特に勘案して

本当はPLMのソフトなんですが、 WEB画面周りは Aras Innovator バッチ処理系にユニケージ開発手法を選びました。 あえて2つのツールを選びました。 ツール同士の連携も課題です。 →中小生産管理システムのプラットフォームになるかもしれないと期待

Page 15: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

14/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ここで、プラットフォームとは?

関連する業務が相互に 連携するためのしくみ

必要なデータを交換または伝えるためのしくみ

PSLX3プラットフォーム実証プロジェクト資料より

Page 16: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

15/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

プラットフォームとは

アクティビティ

アクティビティ

情報

データ

データ

アクティビティ

アクティビティ

情報

業務A

業務B

伝えるしくみ

つながるしくみ

同じ部門内の異なる業務 違う部門同士での業務の連携で活用。 もっと進めばグループ企業同士、 さらに企業間での連携も…

こういうことが簡単にできると、 システムを追加・変更しやすいと思います。

PSLX3プラットフォーム実証プロジェクト資料に加筆

Page 17: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

16/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

グループ企業

企業

企業

企業 拠点

拠点

拠点 部門

業務 部門

機器

つながる仕組み(PSLX3プラットフォーム)の概念

業務 業務

IoTにも対応できそう

PSLX3プラットフォーム実証プロジェクト資料に加筆

1つの大きな器(統合・共有)でないやり方で実現したい。 ⇒変化に対応しやすくするため。

Page 18: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

17/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

プラットフォームを使うといいことは?

☑ 業務データの共有 ☑ 業務データの連携

基幹系システム 分散系 システム

多様性の時代、変化が予測できず、常に進化し続けなければ ならない時代では、自律分散+連携システムが適しています。

共有から連携(つながるしくみ)へ移行する

☑ 実装のためのプログラミングが容易である。

☑ 既存の業務ソフトウェアを有効利用できる。

☑ 部分的な連携や段階的な拡張が可能である。

PSLX3プラットフォーム実証プロジェクト資料に加筆

本当に実現できたらかなりうれしい内容です。

Page 19: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

18/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

開発事例

Page 20: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

19/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

今回の開発の対象は

事業分野として、空調事業(ガスヒートポンプ) 業務部門として、保守・修理を担当しているカスタマーサービス部門 具体的な中身として、ガス会社さまから連絡のあった

3年目点検(車検みたいなもの)の管理

ガス会社さまから、対象のお客さまのデータがExcelで送られてきます。 このデータを基に弊社のサービスマンが連絡を取り点検を行います。 しかし、Excelのファイル共有では色々と問題が…

Page 21: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

20/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

何を実現したいか

効率よく点検業務の実施状況を管理したい 誰がアポイントを取って、点検日程は確定してか? 誰が点検に行くのか?(協力会社さんに頼んだのか?) 点検時に必要な部品や検査機器は準備できたか?

(型式ごとに準備するものが異なります) 学校や病院など大きな建物では100台以上の機器を

点検することも珍しくありません。

これらを複数の担当でExceを使って行っています。 しかしさすがに、大変だし、効率が悪い(おはずかしい..)

何かしらの仕組みが欲しい(現場からの声)

Page 22: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

21/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

今あるシステムとも うまく連携できないか

今あるAccessで作ったお客さま受付システムと連動すれば、 電話を受けた時点で、3年目対象のお客さまと分かるので アポイントを効率よくできるのでは?←現場からの提案 (修理依頼の受付時に一緒に点検できるのでは?)

点検対象の時に 顧客情報に表示 ここに連携したい

対応内容

電話受付時の情報

私が6年前に作りました

Page 23: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

22/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovatorとは?

・オープンソース = 誰でも利用可能(ライセンス費用はない) ・サブスクリプション = 技術支援契約により、オープンソースでありながらシステムを保証

・スモールスタート = リスクの低減

・モデルベースSOA = 柔軟なシステム

マイクロソフトのWindowsベースの技術を使っています。(SQL Server .Netなど)

モデルベース SOA

Access

Comtrol

Configuration

Traceability

Phase-Gate/

Project

Workflow/

Lifecycle

Secure Social

Collaboration

Reporting &

Analytics

Phase-Gate/Projec : プロジェクトがある段階から次の段階へ移行してよいかどうかの判定

Aras Innovator は、PLMをサポートするシステム基盤で、下記のような機能があります。

● ワークフロー

セキュリティ(ユーザ管理)

プロジェクト管理

ドキュメント管理

・・・他

Arasは先進的なテクノロジーと革新的なビジネスモデルを持つ

他にはないユニークな会社です。

社名 アラスジャパン合同会社 (Aras Japan G.K.)

設立 2012年5月 (米国本社 設立: 2000年)

Page 24: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

23/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

まずは、Excelデータからお客様情報と機器のデータベースを設計

ガス会社さまからのExcelデータを眺めてみると、繰り返しの部分があります。 どうも、お客さま・機器のご使用者(ヘッダ)と機器(ディテール)に分けられそうです。

お客さま

機器 機器

機器

このようなイメージ

お客様ごと

実際の画面

お客様の 情報

機器の情報

Page 25: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

24/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovator Item Typeの登録

プロパティ(フィールド)の定義をします。 データタイプ(文字列、数値、リストなど…) 必須項目、ユニーク制限などの設定が可能です。

はじめにアイテムタイプ(テーブル)の定義をします。 データを入れる器です。

Page 26: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

25/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

画面の修正

自動生成される画面は今一つなので、ハンドで 見栄えを整えます。しかし、基は自動で生成されるので楽。

実際に表示される画面 (ハンドでの修正後)

それぞれのフィールドの詳細設定 色とかカーソルの飛び順とか…

自動生成画面は縦に 単純にフィールドが並ぶ

Page 27: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

26/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

アクセス権などの設定を少々…

TOCアクセス(メニューにどうだすか) 新規登録権限 パーミッション(アクセス権限) などをItem Typeごとに設定します。

設定した方がいい 必ず設定する 必ず設定する

Page 28: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

27/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

本当はデータモデルはきちんと検討します

アイテムタイプが少なかったのでどんどん作成しましたが、データモデルは 最初に検討した方がいいです。(本当は自動生成できるとうれしい…)

特にプロパティ(項目)が明確なら1時間もあれば簡単に画面までは 出来上がります。(ビジネスロジックは別)

お客さま RXT2F7_okyakusama

所有機(機器) RXT2F7_syoyuki

1 n

お客様所有機 RXT2F7_okyakusama syoyuki

【凡例】

アイテムタイプ:世代管理無し

リレーションシップアイテムタイプ

リレーションシップによる参照(参照元→参照先)

アイテムプロパティによる参照(参照元→参照先)

アイテムタイプ: 世代管理対象、リビジョン管理無し

アイテムタイプ: 世代管理対象、リビジョン管理対象

ポリアイテムタイプ

(ポリソース)

(アイテムタイプ)

サブクラス

ダミー の リレーションシップアイテムタイプ (リレーションシップビュー表示用など)

アポイント情報 RXT2F7_apo

1

n

お客様アポ情報 RXT2F7_okyakusama apo

点検内容 RXT2F7_tenken

製造Noでユニーク

1

n

所有機点検 RXT2F7_syoyuki_tenken

点検対象 RXT2F7_taisyo

1

n

代表型式 RXT2F7_daihyo

点検内容点検対象 RXT2F7_tenken_taisyo

1

n daihyokatasikic

Page 29: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

28/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

親子関係(リレーションシップ)を登録します

こうやって設定すると、画面は…

親子関係にしたいItem Typeを選択します。

リレーションシップはタグで表現

Page 30: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

29/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

その他のItemを増やして拡張しましょう

詳細画面を表示

一覧画面を表示

Page 31: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

30/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

さて、Excelからどうやって、初期値を入れましょう

Aras Innovatorにデータを入れるには ①画面から入力する⇒今回は件数多いので避けたい ②CSVファイルをバッチローダーを使って入れる (このツールはサブスクリプション契約必要:有償) ③AML(Adaptive Markup Language)を使って NashというWEB画面からデータを入れる

無償で手軽にできそうなのは③AMLの使用なので これでやってみましょう。

有償ですがサブスクリプション契約を結ぶと便利な機能を利用したり、 OSやAras Innovatorのバージョンアップの支援を受けることができます。 実際に弊社は契約しています。(私は営業マンでないので、宣伝ではないですがね)

Page 32: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

31/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

AML(Adaptive Markup Language)はどんなモノ

<AML> <Item type="RXT2F7_okyakusama" action="merge" where="no='10002861002'"><no>10002861002</no> <shiten>⑤神奈川</shiten> <name>園</name> <address>横浜市 1-26</address> <tel>045-XXX-XXXX</tel> <t_max>0079XXXX</t_max> <group_name>神奈川都市エネルギー部</group_name> <team_code>G42</team_code> <team_name>神奈川地域営業第2G</team_name> <tanto>中内 希望</tanto> <comment0></comment0> <apo1></apo1> <taisyo1></taisyo1> <taisyo2></taisyo2> <taisyo3></taisyo3> <sonota></sonota> <apo2>アポ可</apo2> <excel_no>20151225</excel_no> </Item> </AML>

下記のようなXMLのデータです。

このWEB画面でAMLをサブミットします。

Page 33: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

32/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

次にどうやってAMLをつくりましょうか

お客様からのデータはExcelですので、Excelの関数を使って AMLを作ります。

ここにデータを入れます

=SUBSTITUTE(J$3, "{skubn}", D4)

1回だけの処理ならいいのですが、今回のデータは随時増えて行きます。 毎回Excelを作っていくのはちょっと面倒です。もう少し工夫が必要です。 そこで、ユニケージはExcelをそのまま加工できるので、 ユニケージを使ってバッチ処理化を試みます。

Page 34: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

33/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ユニケージ開発手法とは?

■2013年7月のセミナーの資料を抜粋すると、特徴は以下の通りです。 OS:Linux(UNIX系)の機能をフル活用する。 アプリケーション:ユニケージコマンドを使用したシェルスクリプトで記述する。 データ管理:RDBを使わず、テキストファイルを整理整頓する。 開発順序:データを整理整頓するシステムを構築してから、アプリを開発する。 サーバー配置:業務に特化したサーバー同士のファイルのやり取で全体のシステムを実現。 セキュリティ:システム内部は自由度が高く、外部のやり取は強固にガードする。 ドキュメント:開発のためのドキュメントは少なく、理解のためのドキュメントは充実。

■実際に私たちが使ってみての感想 シェルスクリプトなので、上から下に流れます。ソースを読むのが非常に楽です。 よく使う覚えるコマンドはそれほど多くないので楽です。 昔、汎用機を経験した私にはJCLみたいで、非常に理解しやすいです。 割と簡単に自分たちでシステムを作れるようになるので、業務改善が進みます。

■実際に何に使っているのか 主に基幹システムからのデータを累積して、独自に検索するシステムを作っています。 各拠点に設置しているサーバーの監視ログを集計して、異常値を簡単に通知できるような

仕組みを作って少ない人数で全国の文書サーバーを管理しています。

Page 35: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

34/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

AMLをユニケージで作りましょう

ユニケージではExcelファイルからデータを抽出できる コマンドがあるので、それを利用します。

### Excelからの読み込み rexcelx 1 A2 AA950 $lv3d/20151225tokyogasu.xlsx | awk '{print $0,"25"} ' | # Excel管理Noを付与する sed 's/@/_/g' | # @を_に置き換える cat > ${tmp}-all ### お客様情報 cat ${tmp}-all | msort key=1@19 | getlast key=1 | delf 19 | ## 電話番号を半角にする han 5 15 | ## 電話番号の桁数を揃える awk '{$15 = substr($15,1,15); print $0} ' | ### 最終的に保存 sorter $lv5d/okyakusama.%18 cat << FIN > $tmp-AML <AML> ### AML ### <Item type="RXT2F7_okyakusama" action="merge" where="no='<![CDATA[%1'"><no>%1]]></no> <shiten><![CDATA[%2]]></shiten> <name><![CDATA[%3]]></name>

<address><![CDATA[%4]]></address> <tel><![CDATA[%5]]></tel> <t_max><![CDATA[%6]]></t_max> <group_name><![CDATA[%7]]></group_name> <team_code><![CDATA[%8]]></team_code> <team_name><![CDATA[%9]]></team_name> <tanto><![CDATA[%10]]></tanto> <comment0><![CDATA[%11]]></comment0> <apo1><![CDATA[%12]]></apo1> <taisyo1><![CDATA[%13]]></taisyo1> <taisyo2><![CDATA[%14]]></taisyo2> <taisyo3><![CDATA[%15]]></taisyo3> <sonota><![CDATA[%16]]></sonota> <apo2><![CDATA[%17]]></apo2> <excel_no><![CDATA[%18]]></excel_no> </Item> ### AML ### </AML> FIN cat ${tmp}-AML | #AMLのひな型にデータを差し込む mojihame -l'### AML ###' - $lv5d/okyakusama.25 | ## -utos UTF-8から Shif JIS 改行を Windows 形式で返す uconv -utos -Lw | cat -

Page 36: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

35/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

wgetコマンドでAMLを適用する

通常はAras Innovatorで用意されているAML用の ツール(Nash)を使いますが、Linux側からAMLを適用してみます。 (自動化するためには、Linuxでの処理は必須です) wget ファイルをダウンロードするコマンドを使います。

wget -S -O – --header=SOAPaction:ApplyAML --header=AUTHUSER:admin (ログインID) --header=AUTHPASSWORD:11f9ab2389e780952af0 (パスワードをMD5に変換した値) --header=DATABASE:MyDatabase (データベース名) --header=Content-type:text/xml --header=charset:utf-8 --post-file=./MyAML (AMLを保存したファイル) http://MyArasServer/InnovatorServer/Server/InnovatorServer.aspx (Aras InnovatorサーバーのURL)

実はこれができるようになるまで、丸2日悩みました。 Arasの英語のマニュアルには記載があったMD5に気付かなかったです… しかしこれもタダ。Linuxには標準でついているコマンドなので、得した気分。初期値はok

Page 37: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

点検 点検

36/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

さらにビジネスロジックの追加を検討します

点検内容 RXT2F7_tenken

点検対象 RXT2F7_taisyo

点検内容検対象 RXT2F7_tenken_taisyo

1

n

点検内容には対象となる製品の製造番号が範囲指定で登録されています。

所有機(機器) RXT2F7_syoyuki

点検内容 RXT2F7_tenken

1

n

所有機点検 RXT2F7_syoyuki_tenken

上記データから、所有機(機器)1台ごとに、どんな点検と結びついているかの データを生成したいと思います。ただ、範囲指定のデータから1台づつのデータを 作りこむロジックが必要そうです。

YDZP450K1NB 5ADL0101

点検A

範囲指定の情報からこのようなイメージに展開したい

点検 点検

YDZP450K1NB 5ADL0102

点検A

点検 点検

YDZP450K1PB 5ADL0103

点検A

どうもバッチ処理で一括して作った方が簡単そうです。しかしAras Innovatorで バッチ処理を組むのは、ちょっと面倒(Java Scriptでは..)なのと処理速度が出るか 気になります。ということで、このロジックはユニケージでできればと思います。 そこで両方のツールがうまく連携できれば助かります。

Page 38: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

37/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovator とユニケーを連携させます

初期値はLinux側からはwgetコマンドでAMLのやり取ができました。 先ほどのロジックはAras Innovatorの画面からからLinuxにデータを 渡すと複雑なバッチ処理をユニケージで実行でき、結果を Aras Innovatorに返せるかもしれません。さっそく作ってみます。

ここをクリックすると データを転送する

クリックすると実行されるメッソド

画面上のメソッドなのでJava Scriptで記述します。 この画面のHTMLを操作するのはDOMを使います。 Aras Innovatorにアクセスするときは独自の Innovator Objectを使います。 ビジネスロジックを記述するのにも使います。

ソース

Page 39: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

38/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovator側からデータを書き込む(詳細)

送信側のArasのコードの抜粋

var xmlHTTP = false; if(typeof ActiveXObject != "undefined"){ try { var xmlHTTP = new ActiveXObject ("microsoft.XMLHTTP"); } catch (e) { xmlHTTP = false; }// end of try }//end of if if(!xmlHTTP && typeof XMLHttpRequest != "undefined") { xmlHTTP = new XMLHttpRequest(); } xmlHTTP.open("POST", "http://MyUsp/cgi-bin6/aras01.cgi", false); xmlHTTP.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded"); xmlHTTP.setRequestHeader("Content-Type", "text/xml"); xmlHTTP.setRequestHeader("charset", "utf-8"); xmlHTTP.send(myData);//myDataに送信したいデータを保存しておく

# HTMLからPOST形式で受け取ったデータを変数に入れる count=$(nameread count $tmp-name) id=$(nameread id $tmp-name) tenken_name=$(nameread tenken_name $tmp-name) for i in `seq 1 $count` do daihyo_katasikic[$i]=$(nameread daihyo_katasikic$i $tmp-name) kitaino_start[$i]=$(nameread kitaino_start$i $tmp-name) kitaino_end[$i]=$(nameread kitaino_end$i $tmp-name) start_seq[$i]=$(nameread start_seq$i $tmp-name) end_seq[$i]=$(nameread end_seq$i $tmp-name) skubn[$i]=$(nameread skubn$i $tmp-name) done echo "" > $tmp-csv for i in `seq 1 $count` do echo $id $tenken_name ${daihyo_katasikic[$i]} ${kitaino_start[$i]} ${kitaino_end[$i]} ${start_seq[$i]} ${end_seq[$i]} ${skubn[$i]} | cat >> $tmp-csv done cat $tmp-csv | at > $lv5d/data.csv ## 空行を削除し、受信データを保存する。 ### 受信データを使ってバッチを走らせる $SHELL/aras01.sh ### response cat $htmd/aras01.html > $tmp-html # 画面表示 実際には何にも表示しない… でも必須 cat - $tmp-html << FIN Content-type: text/html FIN

受取側のユニケージのコードの抜粋 Aras Innovatorの画面

ユニケージ サーバー

処理のキーを送信

バッチ処理結果受信

ActiveXObjectを使っているのでIE専用です。

Page 40: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

39/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ユニケージでAMLを読み込んで処理する1

先ほどは、ユニケージサーバーに渡すデータを Aras InnovatorからPOST形式で渡しましたが、本当は ユニケージ側のスクリプトでAMLを取得したほうが Aras Innovatorのプログラムはすっきりしそうです。

cat << FIN > $tmp-AML <AML> <Item type="RXT2F7_taisaku" action="get" select="id" where="sys_no=1"> <Relationships> <Item type="RXT2F7_taisaku_taisyo" action="get" > <related_id> <Item type="RXT2F7_taisyo" action="get" select="daihyo_katasikic1"> </Item> </related_id> </Item> </Relationships> </Item> </AML> </SOAP-ENV:Body></SOAP-ENV:Envelope> FIN wget -S -O - --header=SOAPaction:ApplyAML – --header=AUTHUSER:admin --header=AUTHPASSWORD:11f9ab2389e780952af0 –-header=DATABASE:MyDB --header=Content-type:text/xml --header=charset:utf-8 --post-file=$tmp-AML http://MyUlr/InnovatorServer/Server/InnovatorServer.aspx | #nkf -e | cat > $tmp-Result

検索用のAMLを記述

Page 41: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

40/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ユニケージでAMLを読み込んで処理する2

cat $tmp-Result | sed 's/></>¥n</g'| # 適切なところで改行する awk 'NR>2 {print}' | # 先頭の 2行を消す sed ‘$d’ | # 最終行を消す sed '$d' | # 最終行を消す cat > $tmp-Result2 #要素を抜き出す echo "cat /Result/Item[1]/Relationships/Item/related_id/Item/daihyo_katasikic1" | xmllint -shell $tmp-Result2 # 終了処理 rm -f $tmp-* exit 0

実行結果

/ > ------- <daihyo_katasikic1 keyed_name="YDZP450K1" </daihyo_katasikic1> ------- <daihyo_katasikic1 keyed_name="YDZP560K1" </daihyo_katasikic1> ------- <daihyo_katasikic1 keyed_name="YDZP710K1" </daihyo_katasikic1> ------- <daihyo_katasikic1 keyed_name="YDZP850K1" </daihyo_katasikic1> ------- <daihyo_katasikic1 keyed_name="YGZP450K1" </daihyo_katasikic1> ------- <daihyo_katasikic1 keyed_name="YGZP560K1" </daihyo_katasikic1> ------- <daihyo_katasikic1 keyed_name="YGZP710K1" </daihyo_katasikic1> -------

Aras Innovatorの画面

前のページからの続き

使うにはもう少し加工が必要です。

Xpathの処理。これもLinuxについてます。

Page 42: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

41/ Copyright©2014 YANMAR ENERGY SYSTEM Co.,Ltd.

感想・考察

Page 43: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

42/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

感想

■実際に作ってみていいこと 確かに今までゴリゴリWEBの仕組みを作っていた時より

開発時間は早い。画面だけなら1時間あればOK。 初期値作成も工夫をすれば、リレーショナルデータベースに

インポートするのと同等以下の工数で可能。 バッチ処理もツールを組み合わせたら可能。

■少し不安に思うこと 生産管理システムをスクラッチで全て開発するのは

さすがに大変そう。 ツールの使い方を覚えるのが大変そう?

(プログラムを覚えるよりは楽そうですが…)

Page 44: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

43/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

スクラッチで作るだけではなく、既存の仕組みに連携させ、 不満な機能の置き換え、無い機能の追加が簡単に行う 使い方にも活用した方がいいと思います。 ひな型が公開されていけば、それを利用して自社に必要な

部分をカスタマイズできる可能性がある。 ⇒プラットフォーム化の条件としては重要。 流行のIoTにも対応できるかもしれない。 もっと手軽に活用するには使い方を説明した資料や

コミニティーを拡充させる必要がありそう。 ⇒ひな型を増やすためにも、仲間を増やしたい。

少しばかりスマートに使はないといけないようです。 しかしながら、これらのツール自体が中小生産管理システムの プラットフォームの1つとして十分に活用できると思います。

考察

Page 45: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

44/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

アプリ

プラットフォーム 中継・変換(WebAPI)

マスター照会 ・参照したいマスター毎にURLを変える ・参照キーも一緒に投げる(POST、GET) https://www.hoge.com/item?xxxxx-001

照会結果 処理結果

基幹システム

バッチでも、リアルでも データ伝送

リアルならデータ要求

処理結果等はアプリが処理できたら何でもいい? CSV,Json,XMLとか今回はAMLでした。 マスターの参照だけでなく、何かしらのデータを渡して 処理してもらいその結果を返すことができると 簡単に機能の追加ができて手軽に活用できると思います。

プラットフォームのイメージ(整理)

照会要求 処理依頼

ユニケージのサーバーで構築できそう

Page 46: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

45/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

今回使ったツールでは、本当はもっと色々使えます。Aras

この春運用を開始予定のコンフィグレーションシステム 有償の技術支援を受けて作成しました。

Page 47: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

46/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

今回使ったツールでは、本当はもっと色々使えます。ユニケージ

基幹システムの累積データ集計して検索できるシステム

空調機は分納売上、 何か月もまたぐので 物件ごとの採算を 見るための仕組み 検索は超早い

Page 48: 超高速開発ツールを活用した進化型プ ロトタイプ開 …E2%98%8516-02-25%20%E8%B3%87...超高速開発ツールを活用した進化型プ ロトタイプ開発の実践

47/ Copyright©2016 YANMAR ENERGY SYSTEM Co.,Ltd.

ご清聴ありがとうございました。