連携出来ない僕のFileMakerGO「なんちゃってハンディーターミナル」アプリと基幹業務システム。
FileMakerGOから受注データをメール送信。
そのメールを受信し、添付ファイルを取出、改行コードCRをCRLFに置換、そして指定フォルダへコピーするにはどうすれば・・・・・
取りあえずMS-Accessでメール受信機能を作れないか検討。
VBAから実行できそうなコマンドラインのpop3メール受信クライアントをGoogle検索。
日本語検索では見つからず、英語検索してようやくヒット1件「popclient.exe」!(意外と少なかったです)
[Command Line Pop Client (Free)–CODEODE]「c:pop3」フォルダを作りダウンロードファイルを解凍。
pop3受信サーバにハンディーターミナルアプリ専用メールアドレスを作り、そのサーバ情報を設定用XMLファイルに保存。
実行ファイル:c:pop3popclient.exe
設定ファイル:c:pop3fmGOconfig.xml
メール保存先:c:pop3mail
添付ファイル保存先:c:pop3attachFiles
VBAで処理後のファイル保存先:c:pop3importedFiles
さて、受信できるかな?
FileMakerGOからテスト受注データを送信。
設定ファイル名を引数にしてpopclient.exeをDOS窓で実行!
c:pop3popclient.exe -configfile fmGOconfig.xml
おおおーーー受信した、すげー便利!
添付ファイル保存先「c:pop3attachFiles」にファイルが2つ出来ました。
2つともファイル名がユニーク(=唯一無二)になるように意味を持たない長い文字列が末尾に付加されている。
1つはFileMakerGOで生成した受注明細の固定長ファイル。
もうひとつは「iPodから送信」と書かれただけのテキストファイル。
受注ファイル名の先頭6文字の「FMGoHT」を探し、改名しながら処理フォルダーへ移動するVBAを考えてみました。
概要
1:「c:pop3attachFiles」内をdirして先頭6文字が「FMGoHT」のファイルを探す
2:そのファイルを処理しやすいtxt拡張子付ファイル名に改名
3:処理フォルダー「C:pop3importedFiles」へ移動する
後は、nkf.exeで改行コードを変換しサーバへ移動すれば完成。
’popclient.exeを起動するバッチファイル Shell "c:pop3 eceive_fmGOmail.bat" Const PathSource As String = "C:pop3attachFiles" Const PathDistin As String = "C:pop3importedFiles" Dim i As Long Dim myDir As String Dim myFile As String Dim mySourceFiles As String Dim myDistinFiles As String myDir = Dir(PathSource & "*") Do While myDir <> "" i = i + 1 If Left(myDir, 6) = "FMGoHT" Then myFile = Left(myDir, 23) mySourceFiles = PathSource & myDir myDistinFiles = PathDistin & myFile & ".txt" Name mySourceFiles As myDistinFiles ここで改行コードをCRからCRLFに変換 サーバ上の指定フォルダーへ移動 End If myDir = Dir Loop kill PathSource & "*" MsgBox "全部で" & i & "個のファイルをインポートしました。"
このスクリプトを完成させればFileMakerGOハンディーターミナルアプリと基幹業務サーバの連携が出来るようになるよな・・・
でも、出来ればFileMakerGOが改行コードCRLFのファイルが作れ、FTPクライアント機能があれば便利なんですけどね。