初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-01-10 12:05:50

見習い
Member

誕生日のスケジュール

お世話になっております。
Win7 FM11adv (server)

年齢を出して誕生日のメールを通知したいです。

現状あるのはデータタイプが日付の生年月日フィールドです。

①満....歳の年齢を求める計算式を教えて下さい。


②FMサーバーでスクリプトスケジュールをたてて
誕生日の日に管理者(僕)にメールで通知したいです。

今日は....株式会社さまの代表........さま......歳になるお誕生日です。

というメールにしたいです。


よろしくお願い致します。

Offline

#2 2014-01-10 12:35:07

tim
Guest

Re: 誕生日のスケジュール

>誕生日の日に
"*/” & Month(Get(日付)) & "/" & Day(Get(日付))
で検索。
休日とか2/29生まれとかの場合は?

#3 2014-01-10 12:55:04

見習い
Member

Re: 誕生日のスケジュール

tim wrote:

>誕生日の日に
"*/” & Month(Get(日付)) & "/" & Day(Get(日付))
で検索。
休日とか2/29生まれとかの場合は?


休日は問題ありません。
毎日スケジュールされたサーバーが休日でもメールをくれたら大丈夫です。

2/29は2/28としたいです。
めんどくさいので毎回2/28でいいです。
メールがきたら2/29があれば、「あ、前日にメールきた」でわかりますし。


よろしくお願い致します。

Offline

#4 2014-01-10 15:11:21

tim
Guest

Re: 誕生日のスケジュール

おおよその流れ
エラー処理[オン]
検索モード[]
フィールド設定[生年月日;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

#5 2014-01-10 15:51:50

見習い
Member

Re: 誕生日のスケジュール

tim wrote:

おおよその流れ
エラー処理[オン]
検索モード[]
フィールド設定[生年月日;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

#6 2014-01-10 16:06:13

tim
Guest

Re: 誕生日のスケジュール

送信元を自分にして、自分のメールアドレスのSMTPサーバを使えばいいのでは。

無駄な引用は不要です。

#7 2014-01-10 16:55:00

見習い
Member

Re: 誕生日のスケジュール

できました!
ありがとうございます。。

Offline

#8 2014-01-14 14:49:57

見習い
Member

Re: 誕生日のスケジュール

timさんのスクリプトでするとサーバーは毎日
perform find  エラー401
というエラーになります。

調べると検索結果がなかったようなエラーっぽいんですが、
クライアントで僕が11pro advで実行するとうまく検索結果もでます。

なぜだかわかりますでしょうか。。。

Offline

#9 2014-01-14 15:12:21

tim
Guest

Re: 誕生日のスケジュール

エラー処理オンにするとエラー時にダイアログを出さずにエラーコードだけ設定してスクリプトが続行しますが
サーバスクリプトはこのエラーコードを全部ログに吐きます。
無視すればいいですけど、邪魔くさいですね。

この場合は、検索をやめてリレーションで件数を数えれば出なくできますけど

#10 2014-01-14 15:34:28

見習い
Member

Re: 誕生日のスケジュール

tim wrote:

エラー処理オンにするとエラー時にダイアログを出さずにエラーコードだけ設定してスクリプトが続行しますが
サーバスクリプトはこのエラーコードを全部ログに吐きます。
無視すればいいですけど、邪魔くさいですね。

この場合は、検索をやめてリレーションで件数を数えれば出なくできますけど


説明不足ですいません。

エラーは出てもいんですがエラーが起こるのがおかしいです。

例えば今日1/14の誕生日の人がいます。

クライアントで僕がスクリプトを実行すると
3人ヒットして3人分のメールが1通きます。

サーバーでスケジュールされたスクリプトは検索結果は該当がなかったというエラーです。

検索結果は該当がホントはあるんです。

という内容です。

Offline

#11 2014-01-14 15:55:42

tim
Guest

Re: 誕生日のスケジュール

テーブルが複数あるなら、スクリプトの最初に「レイアウト切り替え」でそのテーブルを指定するとか。

#12 2014-01-14 16:23:52

見習い
Member

Re: 誕生日のスケジュール

tim wrote:

テーブルが複数あるなら、スクリプトの最初に「レイアウト切り替え」でそのテーブルを指定するとか。


ありがとうございます。
確かに最初に開くレイアウトテーブルとは違うとこなので
指定してやってみます。

スケジュールが毎朝5時なんですがこれって明日の5時の結果を待つしかないですか?

サーバーでテストする方法などあるんでしょうか・・・

Offline

#13 2014-01-14 16:48:37

tim
Guest

Re: 誕生日のスケジュール

FM12だと「スケジュールを今実行」てありますけど
なければ一旦数分後に設定を変えて実行後に直しておけばいいでしょう。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.013 seconds, 7 queries executed - Memory usage: 524.81 KiB (Peak: 545.35 KiB) ]