初心者のFileMaker pro Q&A

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

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2021-02-23 21:25:27

たいちゃん
ゲストユーザー

フィールドに特定文字列を含む場合にスクリプトを実行する方法

Ver19を使ってます。
スクリプトトリガーであるフィールドにプルダウンメニューから「受注」という文字を含む文字列が
入力された場合にメール配信をするスクリプトを組みたいと思っています。

1.If[案件DB::案件状況 = "受注"]
2.メールを送信(スクリプト)

とすると、「受注」(完全一致)が入力された場合はメールが配信されますが、「受注(大口)」が入力されると
メールは配信されません。

そこで
1.If[案件DB::案件状況 = "受注*"]
2.メールを送信(スクリプト)

として受注の後に*(アスタリスク)を入れてみましたが、
「受注(大口)」のような受注を含む文字列が入力された場合でもメールが配信されませんでした。

そのようにすれば、メール配信すされるようになりますでしょうか?

#2 2021-02-23 21:28:37

himadanee
ゲストユーザー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

*は検索演算子なので計算式には使えません。部分一致の判定にはPatternCount()などを使います。

#3 2021-02-23 21:47:07

たいちゃん
ゲストユーザー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

コメントありがとうございます。

1.PatternCount (案件DB::案件状況"; "受注" )
2.メールを送信(スクリプト)

でやってみましたが、メールが配信されませんでした。

正しいPatternCountの使い方につきましてご教示頂けませんでしょうか?

#4 2021-02-23 22:06:33

Moz
メンバー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

1.PatternCount (案件DB::案件状況"; "受注" )

本当にこの通りに入力しているなら計算式はエラーになってダイアログが閉じられないでしょう。

PatternCount ( 案件DB::案件状況 ; "受注" )

このように書かれているなら「案件状況」フィールドに "受注" が含まれれば、If に進みます。
FileMaker Pro 19 を利用しているならスクリプトデバッガが利用できますから、
いきなり動作させるのではなく、まずはデバッグして正しく動いているか確認しましょう。

スクリプトデバッガは[環境設定]から「高度なツールを使用する」を有効にしてFileMaker Pro を再起動すれば[ツール]メニューから起動できます。

編集者 Moz (2021-02-23 22:07:26)

オフライン

#5 2021-02-23 22:13:35

たいちゃん
ゲストユーザー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

失礼しました。内容に誤りがありました。
下記のようにしたところ、エラーにはなりませんが、メールは配信されませんでした。

1.If[PatternCount ("案件DB::案件状況" ; "受注" ) ]
2.  メールを送信(スクリプト)

#6 2021-02-23 22:16:05

Moz
メンバー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

可能性としては
・現在のレコードの「案件状況」に "受注" が含まれていない
・メール送信に失敗している

メールを送信(スクリプト)

この意味がよく分かりませんが、スクリプト全体を書けませんか?

スクリプトトリガに何を使っているか不明ですが、現在のフィールドの内容を取得するなら
[レコード/検索条件の確定]を入れるか、Get ( アクティブフィールド内容 ) を使ったほうが良いかな、と。

また、上で書きましたがスクリプトデバッガを使えば
意図したとおりに動作しているか、エラーが発生していないか確認できますよ。

使わない理由があるのですか?

編集者 Moz (2021-02-23 22:17:50)

オフライン

#7 2021-02-24 02:40:52

Shin
メンバー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

メールが送信できない事とは直接関係なさそうですが、

案件状況に入力させる文字列は、その後の色々な処理で参照されていると思います。
これを、値一覧で簡単に入力できて、そこに定義されている値だけに制限してしまったほうが、のちのちいいかもしれませんよ。

オフライン

#8 2021-02-24 06:47:17

himadanee
ゲストユーザー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

>下記のようにしたところ

間違いが増えてますが...

#9 2021-02-24 06:50:47

Moz
メンバー

Re: フィールドに特定文字列を含む場合にスクリプトを実行する方法

あっ!orz。見逃していました。失敬。

If[PatternCount ("案件DB::案件状況" ; "受注" ) ]

If[PatternCount ( 案件DB::案件状況 ; "受注" ) ]

フィールド名はダブルクォート「"」で囲みません。囲むと文字列になります。
つまり "案件DB::案件状況" に "受注" が含まれるかという式になり、100%不成立です。
→フィールド名は手打ちせずに計算式ダイアログのフィールドパネルから選択しましょう。

編集者 Moz (2021-02-24 06:51:56)

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer