FileMakerGO用「なんちゃってハンディーターミナルアプリ」開発もほぼ完成。
あと少しなのに、未完部分「受注明細を改行コードCR・LF付き固定長ファイルにしてサーバへ置く」がGOだけでは難しい・・・:-o
そこで作戦変更、パソコン側でFileMakerファイルに共有をかけiOS側から送信。
固定長ファイルはWindows版で作れば改行コード問題も指定フォルダーへのコピーも解決できるはず。
このひと手間が嫌であえて選ばなかった開発仕様だけど、まぁいいか・・
で、それってどうするの?
googleで、探して、探して、探して・・・・
半日検索し下のビデオにたどり着きました。
1時間超のFileMaker講義を見て、ようやく方法がわかりました。
FileMakerの情報ってどうしてこんなに少ないの?
その上、その方法がとても面倒・・ 🙁
まずiOS側に、共有をかけたPC上の受注テーブルのTO(テーブルオカレンス)を作る
動かすスクリプトステップはこんな感じ
動かすと、まずPC側の明細を初期化
次に、iOS内の受注データをインポート
※実際はリモートテーブルのTO経由でPC側へエクスポート
方法を探しテストスクリプトを作るのに10時間かかりました。
同じ壺にハマった人がこのページを見つけてくれると役に立つのでは・・・
ちなみに、参考にしたのは講義ビデオ内のこの1行
この1行が、Accessプログラマの僕には理解不明で、解決するのに1時間、右往左往しました。
FileMakerGOのファイル内に共有テーブルのテーブルオカレンスを作り、同一ファイル内の受注明細をインポートするって意味不明じゃない:-?
Accessでインポートと言えば外部ファイルを指定するもの。
サンプルスクリプトのソースファイルが_mobile.fmp12だったので、このスクリプトはPC側に作りリモートで実行するものだと思い込んでしまったのがド壺にハマった原因です。
超驚きです、FileMakerのインポートって自分から自分にも使うんですよ!
最後に、出来たファイルを実機(=iPod touch)へコピーして実行させると無事に動きました:-)
試しに、無線ルーターを切ると下のエラーが出て、それ以降再接続してくれませんでした。
アプリを再起動すれば、また動くんですが高齢化が進む営業マン達が使いこなせるんだろうか・・・ 😮
ちなみに、講義後半(0:55)で紹介されていたサーバの生死確認スクリプトを組み込んでみましたが、いま一つ正しく生死判別が出来ませんでした。
ついでに、FileMaker開発とMS-Access開発を比較したい方の為に、MS-AccessのVBAスクリプトも書いてみました。
同じことをするなら下記のようなVBAになります。
基本、SQL文を2行書くだけです。
自分から自分へのインポートは考えもつきません!
まず、共有テーブルにリンクを貼る
貼ったらこんな感じ
フォームを作りボタンを置き、下の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