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

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

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

You are not logged in.

Announcement

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


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

たいちゃん
Guest

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

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

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

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

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

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

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

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

himadanee
Guest

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

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

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

たいちゃん
Guest

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

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

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

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

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

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

Moz
Member

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

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

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

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

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

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

Last edited by Moz (2021-02-23 22:07:26)

Offline

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

たいちゃん
Guest

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

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

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

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

Moz
Member

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

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

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

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

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

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

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

Last edited by Moz (2021-02-23 22:17:50)

Offline

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

Shin
Member

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

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

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

Offline

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

himadanee
Guest

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

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

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

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

Moz
Member

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

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

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

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

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

Last edited by Moz (2021-02-24 06:51:56)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 519.24 KiB (Peak: 523.78 KiB) ]