【FileMaker開発】GOから固定長ファイルをFTPは無理みたい

FileMakerGOでハンディーターミナルアプリを作ってはみたものの実践投入するには基幹システムとの連携部分も考えなければ・・・

これが難題なんです 😕

必要なことは4つ
1:固定長ファイルでの書き出し
2:改行コードはCRLF
3:拡張子無しの指定ファイル名
4:サーバ上の指定フォルダにコピー

MS-Accessなら、tableをDo WhileでループしてFileYsytemObjectでファイルに書き出せば固定長で指定改行コードで指定ファイル名のファイルは作れる。
サーバの指定フォルダーへのコピーも、shellコマンドでFTPクライアントを動かせばUPLOAD出来る。

さて、FileMakerGOだとどうすればいいんだろう?

1:固定長ファイルでの書き出し:1個の固定長フィールド内に全部指定する
固定長ファイル用計算フィールドを1個作ってすべてを書き込めばいいみたい。
この方法しか思いつかないFileMaker。ヘッダー、フッターが必要なEDI、EOSデータってどうやってつくるんだろう?作れないのかな?
固定長は計算フィールドで指定:Filemaker13でハンディーターミナルが作れるかな・・

1:固定長ファイルでの書き出し:ファイルタイプはtab区切り
書き出し対象項目が1フィールドなので行末に何も付きません。
固定長ファイルで書く出す時はTAB区切り:Filemaker13でハンディーターミナルが作れるかな・・

【未解決】2:改行コードはCRLF:FileMaker GOでCRLFは付けれない!
「出力ファイルの文字セット」を「Windows」「ASCII(DOS)」「Sift-JIS」にしたエクスポート用ボタンを3つ作り、Windows版とFileMakerGOで実行。
Windows版だと3ファイルとも改行コードがCRLFなのにFileMakerGOではすべてCRになってる。
これはFileMakerGOの仕様、それともiOSの仕様?困った、6万円が遠ざかっていく・・・・
出力ファイルの文字セットを何を選んでもCRLFにできないぞ!:Filemaker13でハンディーターミナルが作れるかな・・

「ASCII(DOS)」ボタンで作られた2つのファイルをバイナリーエディタで確認すると改行コードが違う。
Windows版ならCRLF(0D0A)なのに、FileMakerGO版はCR(0D)!(困った)
同じ設定でもWindowsとFileMakerGOで改行コードが違う!:Filemaker13でハンディーターミナルが作れるかな・・

【未解決】「3:拡張子無しの指定ファイル名」も「4:サーバ上の指定フォルダにコピー」もやり方がわからない
FileMakerGOにFTPクライアント機能もWindows共有機能もないのでAccessの経験は活かせない。
その上で、セキュリティが厳しいiOSはアプリ同士、プロセスもフォルダも完全独立。
自分のアプリから別のアプリを実行させることを許してないそうな!?
FileMakerGOから端末内にあるFTPコマンドを実行できないようです。

立ち読みしたiOS開発本によるとアプリ連携は唯一UIDocumentInteractionController経由のみ。

これが大問題!知ってましたUIDocumentInteractionControllerって拡張子の無いファイルは無視するんですよ:-o
拡張子が無いファイルを指定しても、うんともすんとも動かない。

苦肉の策でUIDocumentInteractionControllerを利用
TXTの拡張子を付けてファイルを書き出しUIDocumentInteractionControllerを表示させ、さてどうしよう?
取りあえずはGoogleドライブでPCまで待ちこむか・・・・・
そして、どうしよう?
UIDocumentInteractionControllerを使ってサーバへコピーするには?:Filemaker13でハンディーターミナルが作れるかな・・

やれやれ、今日も本屋で情報収集(=長時間の立ち読み)へ行こう。
FTPのファイル転送設定をアイコン化してUIDocumentInteractionControllerに表示できるアプリが売られてないか探してみよう・・・

平均年齢が上がり続ける田舎の弱小企業。
老いた社員に「Goからメールを飛ばし、パソコンで受信、添付ファイルをサーバの指定フォルダに保存して改行コードをCRLFで保存し直し、ファイル名から拡張子を消して」なんて指示しても出来ないだろうな・・・

やっぱりFileMakerGOでハンディーターミナルを作るのは無理なのかも・・・・

コメントを残す

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

CAPTCHA