みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM19 WIN10
毎日レート情報を取り込んでいくシステムを作成しました。
ローカルでは正常にインポートできるのですが、共有設定でホストにアップロードしたらインポートが完了しているのにレコードができません。
ホストにアップロードしたファイルをローカルで開くとインポートできます。
原因分かりますでしょうか。
どこからインポートしていますか。
https://help.claris.com/ja/pro-help/con … ripts.html
を参照ください。
Offline
Shin様ありがとうございます。
デスクトップにあるレート情報.csvをインポートしています。
スクリプトが少し特殊かもしれません。
ファイルを挿入[ターゲット:レート情報::ファイル]
変数を設定[$file;GetAsText(レート情報::ファイル)]
フィールド設定[レート情報::ファイル名;$file]
フィールド設定[レート情報::ファイルパス;GetValue(レート情報::ファイル名;Get(計算式繰り返し位置番号))]
変数を設定[$pass;レート情報::ファイルパス]
レコードのインポート[$pass]
メールを送信[$pass]
ファイルを挿入で選択したものを変数にし、インポートしてそのまま閲覧者にメールを送信するスクリプトを実装しています。
> 共有設定でホストにアップロードした
> ホストにアップロードしたファイルをローカルで開く
これはそれぞれどのような手順ですか。
Offline
これ、デバッグで、$path がきちんとご自身の想像通りのパスになっているかどうか確認するといいよ。
GetAsText でファイル名を取っているのが気になるな。
ファイル名は次の関数を使うといいよ。GetAsText が広まっているけど、あれはやめた方がいいよ。
GetcontainerAttribute ( table::field ; “filename” )
Shin様
手順と言いますと
> 共有設定でホストにアップロードした
ファイル→共有設定→ホストにアップロード→サーバーにアップロード
> ホストにアップロードしたファイルをローカルで開く
そのファイルを開く際に「このファイルは以前にアップロードされています」と出るので「ローカルバージョンを使用」をクリックして開いています。
ヌル様
ありがとうございます。
しかしローカルで開くとインポートされているのでファイルを挿入で選択したcsv名になっていると思われます。
カスタムダイアログで$passを表示してみたところ、しっかり入っていました。
これの
>フィールド設定[レート情報::ファイルパス;GetValue(レート情報::ファイル名;Get(計算式繰り返し位置番号))]
Get関数が謎ですね。フィールド設定するなら計算フィールドではないから、「計算式繰り返し位置番号」も存在しないような?
特に動作とは関係ないですが、ファイルパスのパスはpassじゃなくpathです。
しかしローカルで開くとインポートされているのでファイルを挿入で選択したcsv名になっていると思われます。
カスタムダイアログで$passを表示してみたところ、しっかり入っていました。
これは、ホストにアップロードしたものでも入っていますか?
「インポートが完了しているのにレコードができません。」
ってどういう根拠で「完了している」と判断したんでしょうね。レコードがないならインポートが完了してないと思うのが普通でしょうけど。
メールはファイル付きで送られてるからそのステップを通過している、という意味?
「デバッグ」でワンステップずつ実行はやってみました?
「サーバ上でスクリプトを実行」しているわけじゃないですよね?
開くときのアカウントはローカルファイルの時と同じですよね?(違うなら、インポートする権限がないとか...)
ヌル様
ホストにアップロードした方にもカスタムダイアログでファイル名を表示できました。
今気づいたのですが、ホストにアップロードした方のメール送信されたファイルがスパムメールになっていました。
himadanee様
申し訳ございません。スクリプトが最後まで実行されていることからそのような書き方にしていました。
デバッグでワンステップずつ実行してみましたがエラー等はありませんでした。
サーバー上のスクリプト実行はしておりません。
アカウントはローカルファイルと同じです。
ファイルを挿入[ターゲット:レート情報::ファイル]
変数を設定[$file;GetAsText(レート情報::ファイル)]
フィールド設定[レート情報::ファイル名;$file]
フィールド設定[レート情報::ファイルパス;GetValue(レート情報::ファイル名;Get(計算式繰り返し位置番号))]
変数を設定[$path;レート情報::ファイルパス]
レコードのインポート[$path]
メールを送信[$path]
5行目のスクリプトで「レート情報::ファイルパス」ではなく「レート情報::ファイル」に変えてみたらインポートされてメール送信も上手くいきました。
ヌル様、himadanee様色々とありがとうございました。
それって$fileは全く使わないでオブジェクトフィールドを変数に入れるってことですね。
パスの計算式がおかしいのと、挿入するときに「参照のみ」にしてなかったとかかもしれません。
himadanee様
その通りです。
ローカルだとたまたまうまくいっていた感じですかね。。
他にもやり方ありそうなので勉強してみます。
ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 574.87 KiB (Peak: 591.77 KiB) ]