【T6】テクニカルケーススタディ「iPod Touchによる工場内のモバイル化- 鋼材品質証明と基幹システム連携 -」株式会社ミガロ.
吉原 泰介

株式会社ミガロ.
http://www.migaro.co.jp/

会社情報
所在地：本社 大阪市浪速区湊町2-1-57
難波サンケイビル13F
東京事業所 東京都港区麻布台1-4-3
エグゼクティブタワー麻布台11F

事業内容
IBM i 向けのソフトウェア・ツール販売および技術サポート【開発ツール】
・Delphi/400
・JC/400、SmartPad4i【スマートデバイス向けツール】
・Business4Mobile• Delphi/400 － DelphiをIBM i (AS/400)に完全対応させたミドルウェア －国内約700社、全世界約6,000社の導入実績

2

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

アジェンダ• 豊鋼材工業株式会社様について• iOSモバイルを使った鋼材品質証明• iOSアプリ開発Tips• Delphi による iPod Touch以外のモバイル化対応
• まとめ

3

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

「iPod Touch による工場内のモバイル化」

豊鋼材工業株式会社様について
4

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

豊鋼材工業株式会社様商号

豊鋼材工業株式会社（本社 福岡県）
設立
昭和33(1958)年6月4日
事業内容
鉄鋼および各種金属の加工および販売
資本金４億５，０００万円
代表者
清水 豊
取扱量
２５万７千トン
従業員数
１８８名
http://www.yutaka‐steel.co.jp/
5

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

豊鋼材工業株式会社様事業所所在地本社：
福岡県糟屋郡篠栗町
工場：
福岡、苅田、長崎、
宮崎、鹿児島支店・営業所：
北九州、長崎、熊本、宮崎、
中国、大分、佐世保、
鹿児島、沖縄6

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

豊鋼材工業株式会社様
事業内容
鉄鋼およびその他金属の加工、販売

総販売量≒ 年間25.7万ﾄﾝ （連結）

鉄鋼およびその他金属の二次加工、販売

7

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

豊鋼材工業株式会社様
用途、販売先
在庫販売
10%
加工販売
68%

直送販売
22%

建築
24%

定尺・他
22%
土木
6%
建機・産機
10%

8

自動車
11%
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

橋梁
11%

造船
16%

「iPod Touch による工場内のモバイル化」

iOSモバイルを使った鋼材品質証明
製造総括部長兼 製造総括課長
石井裕昭 様9

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

工場内モバイル化のねらい• 現在、食品に限らずさまざまな産業分野で偽装防止への取り組みが進んでいる

もちろん鋼材分野も例外ではない！
鋼材は見た目で品質判断が難しく、品質は構造物の安全性などに直結し、非常に重要 → 管理強化したい（お客様から品質証明書類を求められることが増えてきた）10

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

工場内モバイル化のねらい•

これまでの品質証明作業
加工工程• 指定タイミングの鋼板状況写真

加工終了後• ミルシート（鋼材メーカーの証明書）の提出→ 鋼板を加工タイミング毎にデジタルカメラで撮影し、お客様のご要望時に写真ファイルを手作業で整理して提供

これらの作業や写真管理を効率化、正確性を高めるために
モバイル端末を導入することを検討！
11

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

工場内モバイル化のねらい• 細かいニーズへ柔軟な対応ができる自社開発に決定
モバイル
機器

アプリ

12

• 低コスト実現の為、工場内Wifiに使用を限定してiPod Touch（第五世代）を導入• iPod Touchで動作するネイティブアプリはDelphi/400で開発• iOSアプリは、通常のAppStore向けではなく、Enterpriseライセンスを使って社内配信

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

開発検証機能の全体概要

開発項目一覧
分類

項 目
・工程、鋼材ｽﾃﾝｼﾙ管理ｶﾒﾗ

新規Delphi
開発機能

内容、備考
•

・作業予定ﾛｯﾄ、順番公開
・生産実績入力・稼動日報
・出荷準備（梱包）済情報

新しいDelphi開発環境にて、従来管理できていな
かった情報を取得する。

•

入力業務を簡易化するアプリを開発し、効率化と管理レベル向上を図る。

既存５２５０
業務

生産実績入力、出荷チェック
現品票作成、
ロケーション管理、棚卸し 等

ハンディーターミナル用の各種業務メニュｰをWaveLink
TEで表示し、既存業務を行う。既存機器の1/3以下のｺｽﾄで機能を実現。

ｺﾐｭﾆｹｰｼｮﾝ
機能

Skype（無料通話）によるﾕｰｻﾞｰ間通話、ﾒｯｾｰｼﾞ機能

無線LANエリア内での通話を可能化。
またはメッセージ、ビデオ通話など

目的と経緯⼯程写真・鋼材写真撮影の機能開発
分類

目的
1台/機種保有でｶﾒﾗ探しをなくす

従来の課題と経緯
限られた台数のﾃﾞｼﾞｶﾒを共有使用、無い場合は都度探す必要があった。

関連作業
効率化

撮影をｵﾍﾟﾚｰﾀ作業に完全移行、撮影待機

工場ｽﾀｯﾌ撮影時は対象材処理の都度連絡、時(ｽﾀｯﾌ、ｵﾍﾟﾚｰﾀ共)、連絡ﾛｽ時間をなくす

間確認必要。待機時間も無駄。

工場ｽﾀｯﾌのｶﾒﾗ(ﾒﾓﾘｶｰﾄﾞ)回収、ﾃﾞｰﾀ仕分

写真ﾃﾞｰﾀ回収が必要、回収ﾃﾞｰﾀの客先仕分け作業をなくすは黒板の工事名を確認必要

提出書類と写真の照合半自動化

板番、ﾛｯﾄ番号等との対応も写真画像を一枚毎に確認する手間を要する。

14

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

システム構成
アプリケーションサーバ

モバイル
インストール・更新

iOS
アプリケーション
iPod Touch(iOS7～8)

データ
登録・参照

写真
保存

社内基幹システム

IIS（配信サーバ）
Delphi/400
クライアントDataSnapサーバ
アプリケーション

工程写真
写真
活用

VCL
アプリケーション
Windows

15

Delphi/400

データ活用

クライアント本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

基幹データベース

IBM i (DB2/400)
Delphi/400
サーバ

iPod Touchを使った業務機能（一例）• 指示されたロット番号情報と共に写真を撮るだけでデータや写真を基幹システム上で管理できる
起動

起動時バージョン
チェックして、Webサーバより更新できる仕組み

16

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

工場や設備などの情報は端末に初期設定で保存iPod Touchを使った業務機能（一例）

起動

状態などを
選択設定

17

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

作業指示書のQRコードから
ロット情報を読み取る（読取音なども制御）

iPod Touchを使った業務機能（一例）

アプリ取込＆
サーバにも自動UpLoad

工程写真撮影18

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

iPod Touchを使った業務機能（一例）

起動

完了

完了（生産計上）するロットを選択

19

スライドで
残鋼板の
形状選択

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

残鋼板の寸法や山番などを入力して完成

iPod Touchを使った業務機能（一例）
特徴①残材の発生が無い場合はタッチ操作のみで完結②残材発生時は発生した形状パターンを図で選択可能③形状の位置関係どおりに寸法入力可能リストから対象
選択可能

形状ﾊﾟﾀｰﾝを選択

残材無ければ
タッチ

寸法等を入力

残材有無選択20

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

残材入力後にタッチ

iPod Touchからのデータを基幹システム活用（一例）• 営業担当者が社内システムで IBM i の管理データを読み込み、お客様毎、案件毎に写真やデータにアクセス・自動整理できる

自動整理された
写真データをお客様のご要望時にメール等ですぐに提供可能！
（正確化・迅速化を実現）

21

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

iPod Touchからのデータを基幹システム活用（一例）
左の選択行のロットの
写真一覧

写真撮影の
ﾛｯﾄ一覧

上記選択ﾛｯﾄでの写真明細

上記ﾛｯﾄの使用鋼材の
写真明細

22

上の写真一覧で選択分の拡大写真

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

iPod Touchからのデータを基幹システム活用（一例）
抽出した写真の要否選択

不要であればチェックを外す

工程写真

鋼材写真

写真ファイル名の自動整理機能

それぞれ指定
上記指定の後クリック

23

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

立上げ、稼動スケジュール
2014/6

/7

/8

/9

/10

/11

開発ﾂｰﾙ、検証機器
予算認可
開発環境設定ｻｰﾊﾞｰ等設置
手配
アプリ配布環境、
設定検証
アプリ機能開発、検証
業務画面ﾂｰﾙ、Skype検証
苅田、福岡ﾃｽﾄ機
検証開始

/12

2015/1

/2

/3

/4

/5

必要台数分
予算認可
手配
端末設定、ｱﾌﾟﾘ導入
生産計上機能追加、検証

福岡運用開始長崎運用開始保存写真の照会機能開発

鹿児島運用開始
苅田運用開始処理重複時のﾌﾘｰｽﾞ対策
撮影後ｸﾗｯｼｭ対策

24

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

「iPod Touch による工場内のモバイル化」

iOSアプリ開発Tips
25

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

①DataSnapアプリケーションの形式②写真の撮影③撮影写真の転送④写真のExif情報⑤バーコード、QRコードの読み込み⑥オフライン処理⑦更新アプリの配布
26

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

①DataSnapアプリケーションの形式• DBへの処理はDataSnapサーバ経由で実装
基本的な実装方法は第29回の「こんなに簡単！Delphi によるiOS/Android業務アプリケーション開発！」を参考にしてください。
http://edn.embarcadero.com/jp/article/images/44161/t2.pdf
開発時はフォームアプリ形式でも構いませんが、運用時はサービスアプリ形式が便利（ログアウト可）
作成したDataSnapアプリケーションは、管理者権限で Windows のコマンドプロンプトを開き,
以下のコマンドを実行してサービスを登録できます。
[インストールコマンド]
ファイル名 /INSTALL[アンインストールコマンド]
ファイル名 /UNINSTALL
コントロールパネルからサービスを確認すると、“ServerContiner1”（デフォルト）等の作成したサービスが表示されますので、右クリックから「サービスの開始」でアプリケーションを開始します。

27

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

②写真の撮影
ボタンのAction→標準ｱｸｼｮﾝの新規作成→ﾒﾃﾞｨｱﾗｲﾌﾞﾗﾘ→TTakePhotoFromCameraAction
でﾎﾞﾀﾝｸﾘｯｸでｶﾒﾗ起動・写真撮影可能になる

撮影後の取得画像の処理は
OnDidFinishTakingイベントでコード記述（HELPより）デバイスのローカル ライブラリから写真を取得する
プロセスが完了した際に発生します。
OnDidFinishTaking イベント ハンドラを記述すると、取得した写真を処理することができます。

28

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

②写真の撮影
procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
var
FileName : String;
begin//MultiIMGというTimage（画面表示用）に取得画像を表示
MultiIMG.Bitmap.Assign(Image);//ここでIMG.jpgというファイル名で表示されている画像を保存
FileName := TPath.Combine(TPath.GetDocumentsPath, 'IMG.jpg');
MultiIMG.Bitmap.SaveToFile(FileName);//IMG.jpgをサーバーに転送する場合、処理を記述
end;

アルバムに保存しておく場合は、TTakePhotoFromCameraActionのNeedSaveToAlbumプロパティをTrueで設定しておく。
※XE7以前の場合は、usesにiOS関連のユニットを追加してUIImageWriteToSavedPhotosAlbumを使用して独自に実装を行う。

29

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

②写真の撮影•

撮影実績枚数（2015年5月分）

工場
福岡
苅田
長崎
宮崎
鹿児島
合計

工程写真
全景

切断前

140
200
12
15
367

4

4

鋼材写真

切断中

ｽﾃﾝｼﾙ

164
6

89
410
11

25
195

32
542

小計
229
778
29
0
72
1,108

全景

121
270
53
3
117
564

ｽﾃﾝｼﾙ

114
223
51
3
72
463

小計
235
493
104
6
189
1,027

ファイルサイズ 平均 1.3MB/個 → 約 3GB/月 → 約40GB/年
サーバーのDドライブ容量 700GBなので 15年以上は使用可能 と推定
当然 バックアップは必要 → USBのHDDへ定期自動バックアップ

30

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

合計
464
1,271
133
6
261
2,135

③撮影写真の転送•

撮影した写真をTIdFTPコンポーネントで転送（DataSnapで転送する機能を用意しても可能）

IdFTP1.Host := ‘999.999.999.99’;//保存先ファイルサーバのIPアドレス
VCLと処理は同様
IdFTP1.Username := ‘ユーザー名'; //FTPで許可されたユーザー
IdFTP1.Password := ‘パスワード';//パスワード
IdFTP1.Port := 21; // ポート番号
・予め保存先PCでFTPｻｰﾊﾞｰの設定しておく
IdFTP1.Passive := True; // パッシブモード
IdFTP1.Connect; // サーバーに接続する・IdFTPｺﾝﾎﾟｰﾈﾝﾄは配置しておく//保存するフォルダに移動（任意で設定してください）
DestDir:=‘任意のサブフォルダ名（実在）’;//親はFTPで設定しているルートフォルダ
IdFTP1.ChangeDir(DestDir);

31//アップロードする画像のファイル名（画像のファイル名は撮影後に命名したもの、下記は例）
SourceFile := TPath.Combine(TPath.GetDocumentsPath, 'IMG.jpg');//アップロードするファイルのサーバー上のファイル名
DestFile :=‘任意の保存ファイル名(後で特定できること)’+'.JPG';//ファイルをアップロードする
IdFTP1.Put(SourceFile, DestFile);//切断
IdFTP1.Disconnect;
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

22

④写真のExif情報•

撮影した写真を確認するとjpgで保存をしているがプログラム上ではTBitmapで扱っているためExif情報が不足

Exif情報が存在しない

32

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

直接カメラで撮影した写真のExif情報④写真のExif情報•

Actionからの撮影ではなく、撮影用のフォームを作成し、AssetsLibraryを利用して写真を保存する

TCameraCompornentを使って撮影画面を独自に実装

Exif情報が保存できている（まだ不足情報もあるのでさらに精度を上げることが課題）

AssetsLibraryを組み込んだ実装は下記のソースなどが参考になります。
https://github.com/ChristenBlom/SquareCamFmx/blob/master/uFMain.pas

33

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

④写真のExif情報
procedure TFMain.Button1Click(Sender: TObject);begin
if (CameraComponent1.HasFlash and Switch1.IsChecked) thenCameraComponent1.FlashMode := FMX.Media.TFlashMode.fmFlashOn;
TakePicture; //撮影処理
end;Falsh等も必要であれば制御する（ここではTSwitchでON/OFF）//TakePictureで呼ばれるStillImageCapturedあたりで保存処理等はアプリにあわせて変更
procedure TFMain.StillImageCaptured(const ImageDataSampleBuffer: CMSampleBufferRef;
const Error: NSError);・・・・中略
if ImageDataSampleBuffer <> nil then
begin
JpegData :=TAVCaptureStillImageOutput.OCClass.jpegStillImageNSDataRepresentation(ImageDataSampleBuffer);
NSourceFile := NSSTR(保存ファイル名);
JpegData.writeToFile(NSourceFile, True);
end;

34

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑤バーコード、QRコードの読み込み•

バーコード、QRコードの読み込みはTMS社のFreeコンポーネントであるTTMSFMXZBarReaderを利用
参考：TTMSFMXZBarReader
http://www.tmssoftware.com/site/freetools.asp
Androidの場合はTKRBarCodeSannerを追加で組み込めば同様に可能（Delphiのバージョンによって多少の修正は必要）
http://www.file‐upload.net/download‐8601754/TKRBarCodeSanner.zip.html

基本的な使い方例）①TMSFMXZBarReaderコンポーネントをフォームに配置。
②バーコードリーダーの起動（Button、EditのOnclick等）
TMSFMXZBarReader1.Show; //これでカメラ起動

基本は
これだけ

読取りができたら
TMSFMXZBarReader③TMSFMXZBarReaderのGetResultイベントで値をセット
では緑の枠表示//読み取れたらこのイベントが自動的に動く
procedure TForm1.TMSFMXZBarReader1GetResult(Sender: TObject; AResult: string);
begin
Edit1.text := AResult;
end;

35

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑤バーコード、QRコードの読み込み
連続使用時に読み込みが完了しない場合もあるため、コンポーネントを動的に生成したほうが安定する
動的な使用例）
procedure TForm1. Edit1Click(Sender: TObject);
begin
try
//TMSFMXZBarReaderを生成
TMSFMXZBarReader := TTMSFMXZBarReader.Create(Self);//作成済みのイベントを設定
TMSFMXZBarReader.OnGetResult := TMSFMXZBarReaderGetResult;//TMSFMXZBarReaderを実行
TMSFMXZBarReader.Show;
finally
TMSFMXZBarReader.Free;
end;
end;

36

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑤バーコード、QRコードの読み込み
TTimerを使った繰り返し連続読み取り例）
procedure TForm1. Edit1Click(Sender: TObject);begin
読取りカメラ起動
Timer1.Enabled:=false;
TMSFMXZBarReader1.Show;
end;

キャンセルすればこのイベント自体発生しないので終了//読取り成功時の処理
procedure TForm1.TMSFMXZBarReader1GetResult(Sender: TObject; AResult: string);
begin
if Edit1.text=‘’ thenEdit1.text :=AResult;
読取りできた値を追加
else（この例はカンマ区切り）
Edit1.text :=Edit1.text +’,’+AResult;//Timerを開始
Timer1.Enabled:=true;
再読取のタイマー起動
end;//Timerは読取り操作を再度呼出し
procedure TForm2. Timer1Timer(Sender: TObject);begin
Edit1Click(Sender)；end;
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

25

⑤バーコード、QRコードの読み込み•

iＰｏｄ Touchはバイブレーション機能がないため、処理完了を音で通知

音源ファイルは配置マネージャで組み込む.¥StartUp¥Documents¥のパスに配置読み取り完了を音で通知する例）
MediaPlayer1.FileName:= TPath.Combine(TPath.GetDocumentsPath, 'alerm.mp3');
if MediaPlayer1.State=TMediaState.Playing then
begin
Mediaplayer1.Stop;
sleep(100);end;
MediaPlayer1.CurrentTime := 0;Mediaplayer1.Play;38

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑥オフライン処理•

オフライン時はデバイスローカルにデータを一時保存

オフライン時にデータをローカル保存例（ClietDataSetを前提にcdsファイルで一時的な保持）
procedure TForm1.Button1Click(Sender: TObject);var
sFolder: string;
begin//パス設定sFolder := TPath.GetDocumentsPath;

デバイス内の指定パスを使用//パスが存在しなければディレクトリを作成
if not DirectoryExists(sFolder) then
MkDir(sFolder);//保存ファイル名の指定（pFileNameはグローバル変数）
pFileName := TPath.Combine(sFolder, ‘XXXXX.cds);//デバイスのファイルを保存
ClientDataSet1.SaveToFile(pFileName, dfBinary);end;
読み込み時はClientDataSetのFileNameに設定してOpenできる。
（一時的な保持でなければcdsでは色々限界はあるので、SQLite等を使う）

39※XE5以前では永続パスでも
アプリ更新時に刷新されてしまうので注意

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑦更新アプリの配布•

アプリのバージョンをチェックして更新する仕組み
社内公開でのiOSアプリ配布（AppStoreは使用しない）
開発

ユーザー利用Webサーバで公開

ipaアップロード

インストールiOSｱﾌﾟﾘ開発（社内公開）
Webサーバ最新バージョンをiniファイル等で管理しておき、DataSnapサーバ経由でバージョンをチェックする

40

ユーザー
Verチェック
古ければインストール

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑦更新アプリの配布
実現方法
・アプリ操作の何らかのタイミングで自らのバージョンの更新有無を確認（今回はメニュー（Tab）切替え時に設定）・更新有無は使用アプリのバージョンとサーバーのOriginal版のバージョン情報比較（取得方法は次ページ）

・更新ありの場合は更新版ダウンロード（インストール）用WEBページを表示
・ダウンロード対象はコンパイルして生成されるアプリ名.ipa（関連の圧縮ファイル）・アプリ名.ipaはWEBサーバーのルートフォルダにコピーしておく

インストールWebサーバの配布・更新ページ（Safariのバージョン等でリンクが動作しない場合はhtmlで考慮）

41

⑦更新アプリの配布•

アプリでバージョンをチェックしてWebサーバの更新ページを起動

iOSアプリ側バージョンチェック例）//自分のバージョン取得
AppKey := (NSSTR('CFBundleVersion') as ILocalObject).GetObjectID;
AppBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle);
BuildStr := TNSString.Wrap(AppBundle.infoDictionary.objectForKey(AppKey));
NowVer:=StrToIntDef(StringReplace(UTF8ToString(BuildStr.UTF8String),'.','',[RFReplaceAll]),
9999999);//DataSnapサーバーアプリの関数で同ﾊﾟｽのiniファイルよりオリジナルバージョン情報取得
SQLConnection1.Open; //直接のバージョン取得出来ないのでiniファイルに記述した情報を読む
Temp:=TServerMethods1Client.Create(SQLConnection1.DBXConnection);// DataSnapService.exeのGetAppliVer関数に引数（アプリ名）を渡して取得する
OriVer:=StrToIntDef(StringReplace(Temp.GetAppliVer(アプリ名),'.','',[RFReplaceAll]),0);//判定結果で更新ページをブラウザで開く
URL:=‘http:XXXXXXXXXXXXXXXXXX’ //ｻｰﾊﾞｰのｱﾄﾞﾚｽ/更新ﾍﾟｰｼﾞのhtmﾌｧｲﾙ’;
if OriVer>NowVer then
OpenURL(URL, False); //更新ﾍﾟｰｼﾞを開く→Safari起動

42

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

⑦更新アプリの配布•

アプリでバージョンをチェックしてWebサーバの更新ページを起動

DataSnapサーバ側のバージョン取得例）
function TServerMethods1.GetAppliVer(AppName:string):string ;var
ini:TIniFile;
begin
ini:=TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI' ) );try //INIファイルから文字列を読み込む
Result:=ini.ReadString('APPLIVER',AppName,'0.0.0.0');
finallyini.Free;[プロジェクト|オプション]のバージョンend;
情報で設定している
end;

CFBundleVersionをサーバ上のIniファイルで管理しておく

43

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

「iPod Touch による工場内のモバイル化」

Delphi による
iPod Touch以外のモバイル化対応
44

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

iPod Touch以外のモバイル機器導入• WindowsCE（CUIアプリ） + バーコード機器などの老朽化したシステムをWindowsタブレット向けにビジュアル化して刷新
リニューアル- Windows8.1Proタブレット型（ThinkPad10 Lenovo）を採用- アプリケーションは他のシステム同様にDelphiで開発
工場内溶断機に配置され、NCデータを加工ラインに送信する中継機として機能する。
＋使用鋼材チェック機能を追加

45

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

iPod Touch以外のモバイル機器導入• 生産指示書を見ながら目視チェックしていた為、チェックミスが排除できなかった課題を解決！
①作業指示書+• QRコードをスキャン②鋼材• QRコードをスキャン③IBM i (DB2/400)• ①②をデータ照合 → 使用鋼材のチェック46

タブレットの機能を活かしてシステム的に信頼性アップ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Windowsタブレットを使った業務機能（一例）•

Windowsタブレットでシステム的なチェック①作業指示書②鋼板ラベル③IBM i (DB2/400)

Windowsタブレット（Delphiアプリ）
切断機（鋼板利用）
①②③の
照合で取込
人的チェックから信頼性を上げたデータ

47

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Windowsタブレットを使った業務機能（一例）•

Windowsタブレットでシステム的なチェック①作業指示書から
QRコードスキャン

鋼板切断の為切断機へＮＣデータ転送②鋼板ラベルから
QRコード、バーコード
スキャン③IBM i でデータ照合

48

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Delphiを活用したモバイル対応業務の拡大• 今後のモバイル対応予定
紙やハンディーターミナル等で行っている業務を中心にモバイル対応化を拡大していく• 鋼材準備業務• オペレータ日報業務• 出荷業務
49

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

「iPod Touch による工場内のモバイル化」

まとめ50

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

まとめ• Delphiを使ったマルチデバイス開発・モバイル化
社内基幹システム（IBM i + WindowsPC)をはじめ、新しく導入した様々なモバイル機器（iPod Touch、Windowsタブレット）の全てにDelphiのマルチデバイス開発で対応できている– 自社用の細かいニーズに対応したモバイル化をスタートできた– WindowsPC向けに開発してきたDelphiスキルを活かせた（モバイル化は実質3人月で完成）– 紙ベースやハンディ等の専用機器業務は、Delphiによるモバイルシステム化で効率アップできる可能性がある
51

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Thank you!