【FileMaker開発】FileMakerGOで集めたデータを共有ファイルへエクスポート

FileMakerGO用「なんちゃってハンディーターミナルアプリ」開発もほぼ完成。

あと少しなのに、未完部分「受注明細を改行コードCR・LF付き固定長ファイルにしてサーバへ置く」がGOだけでは難しい・・・:-o

そこで作戦変更、パソコン側でFileMakerファイルに共有をかけiOS側から送信。
固定長ファイルはWindows版で作れば改行コード問題も指定フォルダーへのコピーも解決できるはず。

このひと手間が嫌であえて選ばなかった開発仕様だけど、まぁいいか・・
で、それってどうするの?

FileMakerGOでハンディーターミナルアプリ

googleで、探して、探して、探して・・・・
半日検索し下のビデオにたどり着きました。

1時間超のFileMaker講義を見て、ようやく方法がわかりました。
FileMakerの情報ってどうしてこんなに少ないの?
その上、その方法がとても面倒・・ 🙁

まずiOS側に、共有をかけたPC上の受注テーブルのTO(テーブルオカレンス)を作る
FileMakerGOでハンディーターミナルアプリ:テーブルオカレンス

動かすスクリプトステップはこんな感じ
FileMakerGOでハンディーターミナルアプリ:スクリプトステップ

動かすと、まずPC側の明細を初期化
FileMakerGOでハンディーターミナルアプリ:受注明細送信開始

次に、iOS内の受注データをインポート
※実際はリモートテーブルのTO経由でPC側へエクスポート
FileMakerGOでハンディーターミナルアプリ:受注明細送信完了

方法を探しテストスクリプトを作るのに10時間かかりました。
同じ壺にハマった人がこのページを見つけてくれると役に立つのでは・・・

ちなみに、参考にしたのは講義ビデオ内のこの1行
この1行が、Accessプログラマの僕には理解不明で、解決するのに1時間、右往左往しました。
FileMakerGOでハンディーターミナルアプリ:参考にしてYouTubeの1行

FileMakerGOのファイル内に共有テーブルのテーブルオカレンスを作り、同一ファイル内の受注明細をインポートするって意味不明じゃない:-?

Accessでインポートと言えば外部ファイルを指定するもの。
サンプルスクリプトのソースファイルが_mobile.fmp12だったので、このスクリプトはPC側に作りリモートで実行するものだと思い込んでしまったのがド壺にハマった原因です。

超驚きです、FileMakerのインポートって自分から自分にも使うんですよ!

最後に、出来たファイルを実機(=iPod touch)へコピーして実行させると無事に動きました:-)

試しに、無線ルーターを切ると下のエラーが出て、それ以降再接続してくれませんでした。

アプリを再起動すれば、また動くんですが高齢化が進む営業マン達が使いこなせるんだろうか・・・ 😮

ちなみに、講義後半(0:55)で紹介されていたサーバの生死確認スクリプトを組み込んでみましたが、いま一つ正しく生死判別が出来ませんでした。

FileMakerGOでハンディーターミナルアプリ:iOSでワザとネットワークダウンさせると

ついでに、FileMaker開発とMS-Access開発を比較したい方の為に、MS-AccessのVBAスクリプトも書いてみました。

同じことをするなら下記のようなVBAになります。
基本、SQL文を2行書くだけです。
自分から自分へのインポートは考えもつきません!

まず、共有テーブルにリンクを貼る
FileMakerGOでハンディーターミナルアプリ

貼ったらこんな感じ
FileMakerGOでハンディーターミナルアプリ

フォームを作りボタンを置き、下のVBAスクリプトを埋め込み、実行 🙂

Private Sub btn受注データ送信_Click()

’SQL文を2つ実行
’INSERT文は長いので変数mySQLに代入してます

Dim mySQL As String
mySQL = "INSERT into server受注明細"
mySQL = mySQL & " (端末ID, 得意先CD, 日付, 特売区分, 商品CD, JAN, 数量, 単価 )"
mySQL = mySQL & " SELECT 端末ID, 得意先CD, 日付, 特売区分, 商品CD, JAN, 数量, 単価"
mySQL = mySQL & " frome local受注明細"

’プログラム自体は下の4行です

DoCmd.SetWarnings False ’警告メッセージを一時的に止める
DoCmd.RunSQL "DELETE * From server受注明細 where 端末ID=’008’"
DoCmd.RunSQL mySQL
DoCmd.SetWarnings True ’警告メッセージを再開

End Sub

コメントを残す

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

CAPTCHA