【ai】zip利用の新マスターインポート機能

もともとは、「App Inventor SQLite」でGoogle検索してて、たどり着いたのがAmerkashi社長のブログ。

[Hossein Amerkashi’s Blog(社長ブログ)]

最初はマニアが集まる有料サークル的集まり「Ai2LiveComplete」でしたが、去年、それっぽい名前を付け一般人向けのサービスに衣替えしました。

それが、拡張機能満載の有料App Inventorサービス「AppyBuilder」

[Appy Builder]

私はこのメンバーになって3年かな・・・・

作ったアプリは1つだけ、それがハンディーターミナルアプリ
貧社のハンディーターミナル

そして今日、念願だった新機能が完成したんです

自分で言うのも何ですが、「この機能、スゲー良い

 

まず僕のアプリには大きな欠点が2つ有ります。

その1つが、オフコンのマスターデータのbulk importが常に不安定なこと

その原因は、開発環境の2つの仕様にあります。

(1)SQLiteへのbulk importは、1ファイル最大500レコード。
(2)bulk importファイルは、WEBからのダウンロードのみ

この仕様の上で作ったインポートプログラムがこれ

このプログラム、超「not simple」!

200,000行近いレコードを500行ずつに分け、ダウンロードしながらインポート!
それを40回近くLOOPで繰返す!

途中、WEBサーバの反応が遅かったり、スマホの書き込みが遅れたら、そのファイルのインポートは失敗する。

それを避けるために必要なのが、時間稼ぎ。

そこでLOOPを3分割し、LOOPごとにダイアログボックスを表示。

わざとユーザーに数秒待ってからOKボタンを押してもらう。

ね、変な仕様でしょ!

「ハンディーターミナル」アプリにzip圧縮を使った新マスターインポート機能を作ってみました

今日完成したのがこれ!

「AppyBuilder」は約半年ごとにバージョンアップし、社長が本家MITには無い新コンポーネントを追加してくれます。

で、この夏のバージョンアップで追加された2つのコンポーネントを使ったのが新インポートプログラム。

利用したのは、「FTPコンポーネント」のFtp.Download機能。

そして「Fileコンポーネント」のFile.List機能、File.UNZIP機能、File.Read機能

40個近いbulk importファイルを1個のZIPファイルにしFTPサーバに置く。

新プログラムでは、ZIPダウンロード、UNZIP、ファイル名のLIST化、そしてそのLISTを元にLOOP。

FileRead機能でSQL文を読み取りINSERTを実行する。

bulkファイルは、スマホ上に保存済みなので処理は1瞬!

1分以上かかっているインポートが、新プログラムだと2,3秒で、しかも確実に完了します。

ありがとう社長

「ハンディーターミナル」アプリにzip圧縮を使った新マスターインポート機能を作ってみました

さてと、これだけではシステムとしては不完全。

次に、bulk importファイル生成MS-Access VBAプログラムに、ZIP機能を加えなければ・・・・・・・

ZIP圧縮のコマンドラインプログラムを探さねば

追記:
新旧インポートプログラムを実データで実行速度を比較してみました。
旧プログラムは、得意先マスタ12秒+商品マスタ1分55秒。合計で2分6秒。
新プログラムは、2マスター一括インポートで9秒でした!
すご~い改良結果でした

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA