みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。
Win7 FM11adv (server)
年齢を出して誕生日のメールを通知したいです。
現状あるのはデータタイプが日付の生年月日フィールドです。
①満....歳の年齢を求める計算式を教えて下さい。
②FMサーバーでスクリプトスケジュールをたてて
誕生日の日に管理者(僕)にメールで通知したいです。
今日は....株式会社さまの代表........さま......歳になるお誕生日です。
というメールにしたいです。
よろしくお願い致します。
Offline
>誕生日の日に
"*/” & Month(Get(日付)) & "/" & Day(Get(日付))
で検索。
休日とか2/29生まれとかの場合は?
>誕生日の日に
"*/” & Month(Get(日付)) & "/" & Day(Get(日付))
で検索。
休日とか2/29生まれとかの場合は?
休日は問題ありません。
毎日スケジュールされたサーバーが休日でもメールをくれたら大丈夫です。
2/29は2/28としたいです。
めんどくさいので毎回2/28でいいです。
メールがきたら2/29があれば、「あ、前日にメールきた」でわかりますし。
よろしくお願い致します。
Offline
おおよその流れ
エラー処理[オン]
検索モード[]
フィールド設定[生年月日;Let(f="*/” & Month(Get(日付)) & "/" & Day(Get(日付)); f & Case(f="*/2/28";"..29")]
検索実行[]
If[Get(対象レコード数)]
Loop
変数を設定[$msg;$msg & ¶ & 氏名 & "さん誕生日です~~~" & Let(N=Get ( ホストのタイムスタンプ );
Int(Year(N)+Month(N)/100+Day(N)/10000 - Year(生年月日)-Month(生年月日)/100-Day(生年月日)/10000 )
)]
レコードへ移動[次の]
ExitLoopIf[Get(レコード番号)=Get(対象レコード数)]
EndLoop
メールを送信
EndIf
おおよその流れ
エラー処理[オン]
検索モード[]
フィールド設定[生年月日;Let(f="*/” & Month(Get(日付)) & "/" & Day(Get(日付)); f & Case(f="*/2/28";"..29")]
検索実行[]
If[Get(対象レコード数)]
Loop
変数を設定[$msg;$msg & ¶ & 氏名 & "さん誕生日です~~~" & Let(N=Get ( ホストのタイムスタンプ );
Int(Year(N)+Month(N)/100+Day(N)/10000 - Year(生年月日)-Month(生年月日)/100-Day(生年月日)/10000 )
)]
レコードへ移動[次の]
ExitLoopIf[Get(レコード番号)=Get(対象レコード数)]
EndLoop
メールを送信
EndIf
ご回答ありがとうございます。
初歩的な質問なのですがサーバーからメール配信は
やはりサーバーにメーラーが必要になるんでしょうか。
win2008R2 なのですがお勧めのメーラー等ございますか?
Offline
送信元を自分にして、自分のメールアドレスのSMTPサーバを使えばいいのでは。
無駄な引用は不要です。
できました!
ありがとうございます。。
Offline
timさんのスクリプトでするとサーバーは毎日
perform find エラー401
というエラーになります。
調べると検索結果がなかったようなエラーっぽいんですが、
クライアントで僕が11pro advで実行するとうまく検索結果もでます。
なぜだかわかりますでしょうか。。。
Offline
エラー処理オンにするとエラー時にダイアログを出さずにエラーコードだけ設定してスクリプトが続行しますが
サーバスクリプトはこのエラーコードを全部ログに吐きます。
無視すればいいですけど、邪魔くさいですね。
この場合は、検索をやめてリレーションで件数を数えれば出なくできますけど
エラー処理オンにするとエラー時にダイアログを出さずにエラーコードだけ設定してスクリプトが続行しますが
サーバスクリプトはこのエラーコードを全部ログに吐きます。
無視すればいいですけど、邪魔くさいですね。この場合は、検索をやめてリレーションで件数を数えれば出なくできますけど
説明不足ですいません。
エラーは出てもいんですがエラーが起こるのがおかしいです。
例えば今日1/14の誕生日の人がいます。
クライアントで僕がスクリプトを実行すると
3人ヒットして3人分のメールが1通きます。
サーバーでスケジュールされたスクリプトは検索結果は該当がなかったというエラーです。
検索結果は該当がホントはあるんです。
という内容です。
Offline
テーブルが複数あるなら、スクリプトの最初に「レイアウト切り替え」でそのテーブルを指定するとか。
テーブルが複数あるなら、スクリプトの最初に「レイアウト切り替え」でそのテーブルを指定するとか。
ありがとうございます。
確かに最初に開くレイアウトテーブルとは違うとこなので
指定してやってみます。
スケジュールが毎朝5時なんですがこれって明日の5時の結果を待つしかないですか?
サーバーでテストする方法などあるんでしょうか・・・
Offline
FM12だと「スケジュールを今実行」てありますけど
なければ一旦数分後に設定を変えて実行後に直しておけばいいでしょう。
Pages: 1
[ Generated in 0.013 seconds, 7 queries executed - Memory usage: 524.81 KiB (Peak: 545.35 KiB) ]