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

ヤンマーエネルギーシステム株式会社
企画部企画グループ
大坪啓二

2016/02/25

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

 本当にユーザ部門でもできるのかな？
 本当に早いのかな？
 自分たちでやってみたいことがあるので、やってみよう もっと進んで、ESD21で提唱する中小PFに使えるのかな？
この本の愛読者ですが、関係者ではありませんので、売り込みはしませんが、面白い本です。
1/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

本日の内容として

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

2/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

当社の概要説明

3/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

弊社（ヤンマーエネルギーシステム）の説明１

社名に「システム」とついています。
残念ながらが、ＩＴの会社ではありません。
ヤンマーの子会社でエンジンを使って非常用発電機、ガス空調機（ガスひーぽん）の開発・製造・販売・保守を行っている会社です。
また、ＩＴ部門はありません。
本社の企画部で対応しています。

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

YANMAR ENERGY SYSTEM Co.,Ltd.

弊社の説明２

ヤンマーホールディングス株式会社

グループコーポレートガバナンス（持株会社）

ヤンマー株式会社

産業用ｴﾝｼﾞﾝ・農業機械

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

エネルギーシステム事業

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

舶用事業

ヤンマー建機株式会社

建機事業

YANMAR MARINE INTERNATIONAL B.V.

マリンプレジャー事業

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

グループのIT開発運用

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

YANMAR ENERGY SYSTEM Co.,Ltd.

弊社の取り扱い商品■AP（Auto Pack)・・・ﾊﾟｯｹｰｼﾞ型非常用発電機
火災や災害時の停電時に発電■非常用発電システム
火災や災害時の停電時に発電■EP（Ene Power）・・・常用発電システム
ガスで発電し、廃熱も利用するコージェネ■GHP（Gas Heat Pump Air-conditioner）
ガスで空調し、省電力の空調機■CP（Co-generation Package）、ジェネライト
マイクロコージェネレーション■太陽光発電システム
再生可能エネルギーで発電

6/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

ユーザ企業の私たちが何故、自分たちでシステムを開発したいのか
基幹システムはグループ共通のため、１つの事業の要件ではなかなか変更できません。
また、本体の情報システム部門やグループのシステム会社が各事業の細部まで、事細かにシステム対応するのは現実的には難しいです。
残念ですが人員も予算もそこまで無いです。
その中で事業環境の変化に追随するためには、ある程度の部分は事業領域ごとに自前でシステムを準備するほうが現実的です。

しかし、自前で準備するとは言っても、すべてをベンダーさんにお願いできるほど予算もありません。
よって自前で開発することになりますから開発期間は短い方がいいということでアジャイル（的）開発には非常に興味があります。
それからＩＴの世界であっても、カイゼンのサイクルを回していきたいという大きな課題があります。

7/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

本当は事業環境の変化に合わせてＩＴもカイゼンしたい
当社の基幹システム（グループ共通）

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

不満足度
初期
投資

費用

次期
投資
保守費用

PDCA型（こうありたい）
初期
投資

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

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

費用

保守費用
8/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

定期
投資

不満足度

基幹システムとユーザ部門でつくるシステムの線引き イメージ
円の大きさが各事業の成長度合い。小さい円は成熟市場、大きな円は成長事業。赤い破線は基幹システムがカバーしている範囲。
本体に近いところや、成熟市場は十分にカバーできます。
成長事業や本体と遠い事業領域はなかなかカバーできません。
全てをカバーする
大きな仕組みでは無駄も多いです基幹システムC事業領域

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

D事業
領域

ヤンマー本体ﾔﾝﾏｰｴﾈﾙｷﾞｰｼｽﾃﾑ

9/ Copyright©2014

Ａ事業
領域

YANMAR ENERGY SYSTEM Co.,Ltd.

B事業
領域

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

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

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

 事業環境の変化、業務改善に合わせてＩＴもカイゼンする

高速で開発できるツールを活用して内作することでＩＴカイゼンを実現させたい。
情報システム部門に依存しないでユーザー部門でも開発・運用ができるツールが必要。

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

 集中型の仕組だけでなく、自律分散型の仕組を整えたい

大きなシステムはカイゼンのための変更も大変。何でも集中型では難しいのでは。

10/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

実はPHPでゴリゴリ書いたりもしましたが生産計画、販売予定、在庫を ころがしなら検索するシステムです。
PHPでゴリゴリと自作してみましたが、ワークフローなどの追加は難しいです。
ハンドでExcelを使って2日かかって作っていた資料を毎晩自動処理
引合数をクリックすると生産管理システム、販売管理システムのデータをもらって、バッチ処理でデータを作って検索しています。
これでもExcelで作表していた頃よりは便利になりましたが、これ以上の進化はちょっと無理そうです。
やっぱり、「超高速開発ツール」がよさそう。思い切って超高速開発ツールに乗り換えようかと。
11/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

超高速開発ツールとして

12/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

今回、何を使ってみるか？
 2013年7月に開催されたＥＳＤ２１セミナー「ソフト開発のTPS/Agileプロセスと自動化/機械化」でもユニケージ開発法、
GeneXus （ウルグアイ製）、Sapiens（イスラエル製）などが紹介されています。
 その中で、何を基準に超高速開発ツールを選ぶかですが、①無償版があって簡単に試せるもの②研修や書籍が有償でもいいので手に入ることを特に勘案して

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

YANMAR ENERGY SYSTEM Co.,Ltd.

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

関連する業務が相互に連携するためのしくみ
必要なデータを交換または伝えるためのしくみ

PSLX3プラットフォーム実証プロジェクト資料より
14/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

プラットフォームとは同じ部門内の異なる業務
違う部門同士での業務の連携で活用。

業務A
アクティビティ

もっと進めばグループ企業同士、
さらに企業間での連携も…

アクティビティ

業務B
アクティビティ情報

アクティビティ

データ

伝えるしくみつながるしくみデータ

情報

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

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

YANMAR ENERGY SYSTEM Co.,Ltd.

つながる仕組み（ＰＳＬＸ３プラットフォーム）の概念
企業

企業

グループ企業

拠点

企業
拠点
拠点

部門

業務
機器

部門
業務

業務

ＩｏＴにも対応できそう

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

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

16/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

☑ 実装のためのプログラミングが容易である。
☑ 既存の業務ソフトウェアを有効利用できる。

☑ 部分的な連携や段階的な拡張が可能である。
共有から連携（つながるしくみ）へ移行する
基幹系システム☑ 業務データの共有

分散系
システム

☑ 業務データの連携

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

本当に実現できたらかなりうれしい内容です。
PSLX3プラットフォーム実証プロジェクト資料に加筆
17/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

開発事例

18/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

今回の開発の対象は
 事業分野として、空調事業（ガスヒートポンプ）
 業務部門として、保守・修理を担当しているカスタマーサービス部門
 具体的な中身として、ガス会社さまから連絡のあった３年目点検（車検みたいなもの）の管理

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

YANMAR ENERGY SYSTEM Co.,Ltd.

何を実現したいか 効率よく点検業務の実施状況を管理したい 誰がアポイントを取って、点検日程は確定してか？
 誰が点検に行くのか？（協力会社さんに頼んだのか？）
 点検時に必要な部品や検査機器は準備できたか？
（型式ごとに準備するものが異なります）
 学校や病院など大きな建物では100台以上の機器を点検することも珍しくありません。
 これらを複数の担当でExceを使って行っています。
しかしさすがに、大変だし、効率が悪い（おはずかしい..） 何かしらの仕組みが欲しい（現場からの声）

20/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

今あるシステムとも うまく連携できないか
今あるAccessで作ったお客さま受付システムと連動すれば、電話を受けた時点で、３年目対象のお客さまと分かるのでアポイントを効率よくできるのでは？←現場からの提案（修理依頼の受付時に一緒に点検できるのでは？）点検対象の時に顧客情報に表示ここに連携したい

電話受付時の情報
対応内容

私が6年前に作りました
21/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovatorとは？

Aras Innovator は、PLMをサポートするシステム基盤で、
下記のような機能があります。
ワークフロー セキュリティ（ユーザ管理）
 プロジェクト管理 ドキュメント管理
・・・他●

Arasは先進的なテクノロジーと革新的なビジネスモデルを持つ
他にはないユニークな会社です。
社名 アラスジャパン合同会社 (Aras Japan G.K.)
設立 2012年5月 (米国本社 設立: 2000年)

モデルベース SOA
AccessComtrol

Configuration
Traceability

Phase-Gate/
Project

Workflow/
Lifecycle

Secure Social
Collaboration

Reporting &Analytics

・オープンソース ＝ 誰でも利用可能（ライセンス費用はない）
・サブスクリプション ＝ 技術支援契約により、オープンソースでありながらシステムを保証
・スモールスタート ＝ リスクの低減
・モデルベースＳＯＡ ＝ 柔軟なシステム

マイクロソフトのWindowsベースの技術を使っています。(SQL Server .Netなど）
Phase-Gate/Projec ： プロジェクトがある段階から次の段階へ移行してよいかどうかの判定
22/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

実際の画面

このようなイメージ
お客様の
情報

お客さま
機器
機器
機器
機器の情報

23/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovator Item Typeの登録
はじめにアイテムタイプ（テーブル）の定義をします。 データを入れる器です。

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

24/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

画面の修正自動生成される画面は今一つなので、ハンドで見栄えを整えます。しかし、基は自動で生成されるので楽。
自動生成画面は縦に単純にフィールドが並ぶ

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

実際に表示される画面（ハンドでの修正後）
25/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

設定した方がいい

必ず設定する

必ず設定する TOCアクセス（メニューにどうだすか） 新規登録権限
 パーミッション（アクセス権限） などをItem Typeごとに設定します。
26/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

本当はデータモデルはきちんと検討します アイテムタイプが少なかったのでどんどん作成しましたが、データモデルは最初に検討した方がいいです。（本当は自動生成できるとうれしい…）
 特にプロパティ（項目）が明確なら１時間もあれば簡単に画面までは出来上がります。（ビジネスロジックは別）
アイテムタイプ：世代管理無し
お客様所有機RXT2F7_okyakusama syoyuki

所有機点検
RXT2F7_syoyuki_tenken

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

製造Noでﾕﾆｰｸ
お客さま
RXT2F7_okyakusama1n

所有機（機器）
RXT2F7_syoyuki

ポリアイテムタイプ

11（ポリソース）nn（アイテムタイプ）

アポイント情報RXT2F7_apo

点検内容
RXT2F7_tenken

1
お客様アポ情報RXT2F7_okyakusama apon
点検対象
RXT2F7_taisyo

サブクラス
点検内容点検対象
RXT2F7_tenken_taisyo

リレーションシップアイテムタイプ
ダミー の リレーションシップアイテムタイプ（リレーションシップビュー表示用など）
リレーションシップによる参照（参照元→参照先）

1

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

代表型式
RXT2F7_daihyo

YANMAR ENERGY SYSTEM Co.,Ltd.

【凡例】

ndaihyokatasikic

27/ Copyright©2016

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

親子関係（リレーションシップ）を登録します
こうやって設定すると、画面は…

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

親子関係にしたいItem Typeを選択します。
28/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

一覧画面を表示
詳細画面を表示29/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

無償で手軽にできそうなのは③AMLの使用なのでこれでやってみましょう。
有償ですがサブスクリプション契約を結ぶと便利な機能を利用したり、OSやAras Innovatorのバージョンアップの支援を受けることができます。
実際に弊社は契約しています。（私は営業マンでないので、宣伝ではないですがね）
30/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

AML(Adaptive Markup Language)はどんなモノ
下記のようなXMLのデータです。
<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>神奈川地域営業第2Ｇ</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>

このWEB画面でAMLをサブミットします。
31/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

お客様からのデータはExcelですので、Excelの関数を使ってAMLを作ります。
=SUBSTITUTE(J$3, "{skubn}", D4)

ここにデータを入れます

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

YANMAR ENERGY SYSTEM Co.,Ltd.

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

■2013年7月のセミナーの資料を抜粋すると、特徴は以下の通りです。
 ＯＳ：Ｌｉｎｕｘ（ＵＮＩＸ系）の機能をフル活用する。
 アプリケーション：ユニケージコマンドを使用したシェルスクリプトで記述する。
 データ管理：ＲＤＢを使わず、テキストファイルを整理整頓する。
 開発順序：データを整理整頓するシステムを構築してから、アプリを開発する。
 サーバー配置：業務に特化したサーバー同士のファイルのやり取で全体のシステムを実現。
 セキュリティ：システム内部は自由度が高く、外部のやり取は強固にガードする。
 ドキュメント：開発のためのドキュメントは少なく、理解のためのドキュメントは充実。
■実際に私たちが使ってみての感想
 シェルスクリプトなので、上から下に流れます。ソースを読むのが非常に楽です。
 よく使う覚えるコマンドはそれほど多くないので楽です。
 昔、汎用機を経験した私にはJCLみたいで、非常に理解しやすいです。
 割と簡単に自分たちでシステムを作れるようになるので、業務改善が進みます。
■実際に何に使っているのか
 主に基幹システムからのデータを累積して、独自に検索するシステムを作っています。
 各拠点に設置しているサーバーの監視ログを集計して、異常値を簡単に通知できるような仕組みを作って少ない人数で全国の文書サーバーを管理しています。

33/ 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>34/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

<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 -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）
実はこれができるようになるまで、丸２日悩みました。
Arasの英語のマニュアルには記載があったMD5に気付かなかったです…
しかしこれもタダ。Linuxには標準でついているコマンドなので、得した気分。初期値はok
35/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

さらにビジネスロジックの追加を検討します
点検内容には対象となる製品の製造番号が範囲指定で登録されています。
点検内容
RXT2F7_tenken
点検内容検対象
RXT2F7_tenken_taisyo

1
n
点検対象
RXT2F7_taisyo

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

1

n
点検内容
RXT2F7_tenken

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

YDZP450K1NB
5ADL0101YDZP450K1NB
5ADL0102

点検A
点検
点検

点検A
点検
点検

YDZP450K1PB
5ADL0103

点検A
点検
点検

どうもバッチ処理で一括して作った方が簡単そうです。しかしAras Innovatorでバッチ処理を組むのは、ちょっと面倒(Java Scriptでは..)なのと処理速度が出るか気になります。ということで、このロジックはユニケージでできればと思います。
そこで両方のツールがうまく連携できれば助かります。
36/ 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を使います。
ビジネスロジックを記述するのにも使います。
37/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovator側からデータを書き込む（詳細）# 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`dodaihyo_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

送信側の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);
echo "" > $tmp-csv

xmlHTTP.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");for i in `seq 1 $count`xmlHTTP.setRequestHeader("Content-Type", "text/xml");doxmlHTTP.setRequestHeader("charset", "utf-8");echo $id $tenken_name ${daihyo_katasikic[$i]} ${kitaino_start[$i]}${kitaino_end[$i]} ${start_seq[$i]} ${end_seq[$i]} ${skubn[$i]} |xmlHTTP.send(myData);//myDataに送信したいデータを保存しておく cat >> $tmp-csv
done

ActiveXObjectを使っているのでIE専用です。
処理のキーを送信

ユニケージ
サーバー

バッチ処理結果受信
Aras Innovatorの画面
38/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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から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

39/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

検索用のAMLを記述

ユニケージでＡＭＬを読み込んで処理する２
前のページからの続き
cat $tmp-Result |sed 's/></>¥n</g'| # 適切なところで改行する
awk 'NR>2 {print}' | # 先頭の 2行を消す
sed ‘$d’ |# 最終行を消す
sed '$d' |# 最終行を消す
cat > $tmp-Result2

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

#要素を抜き出す
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>-------

使うにはもう少し加工が必要です。
40/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

Aras Innovatorの画面

感想・考察41/ Copyright©2014

YANMAR ENERGY SYSTEM Co.,Ltd.

感想■実際に作ってみていいこと
 確かに今までゴリゴリWEBの仕組みを作っていた時より
開発時間は早い。画面だけなら１時間あればOK。
 初期値作成も工夫をすれば、リレーショナルデータベースにインポートするのと同等以下の工数で可能。
 バッチ処理もツールを組み合わせたら可能。
■少し不安に思うこと
 生産管理システムをスクラッチで全て開発するのはさすがに大変そう。
 ツールの使い方を覚えるのが大変そう？
（プログラムを覚えるよりは楽そうですが…)

42/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

考察 スクラッチで作るだけではなく、既存の仕組みに連携させ、不満な機能の置き換え、無い機能の追加が簡単に行う使い方にも活用した方がいいと思います。
 ひな型が公開されていけば、それを利用して自社に必要な部分をカスタマイズできる可能性がある。
⇒プラットフォーム化の条件としては重要。
 流行のＩｏＴにも対応できるかもしれない。
 もっと手軽に活用するには使い方を説明した資料やコミニティーを拡充させる必要がありそう。
⇒ひな型を増やすためにも、仲間を増やしたい。

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

YANMAR ENERGY SYSTEM Co.,Ltd.

プラットフォームのイメージ（整理）
照会結果
処理結果

アプリ

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

ユニケージのサーバーで構築できそう
照会要求
処理依頼

プラットフォーム
中継・変換(WebAPI)
マスター照会・参照したいマスター毎にURLを変える
・参照キーも一緒に投げる（POST、GET）
https://www.hoge.com/item?xxxxx-001

44/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.

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

基幹システムリアルならデータ要求

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

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

YANMAR ENERGY SYSTEM Co.,Ltd.

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

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

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

YANMAR ENERGY SYSTEM Co.,Ltd.

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

47/ Copyright©2016

YANMAR ENERGY SYSTEM Co.,Ltd.