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

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

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

You are not logged in.

Announcement

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


#1 2023-11-25 09:19:03

wah
Guest

サーバー上のスクリプト実行におけるレイアウト切り替えについて

クライアントのネットワーク環境からはメール送信ができないため、サーバーからメール送信をしたいと考えております。
clarisのページを参考に設定したのですがサーバー上のレイアウト切り替えが実行されません。
https://help.claris.com/ja/pro-help/con … erver.html

-スクリプト設定-
【クライアント】
サーバー上のスクリプト実行 [指定: 一覧から ; 「メール送信 (サーバー)」 ; 引数: List (Get (レイアウト名) ; Get (レコードID) ; 終了するまで待つ: オン]
※レイアウト名は「結果報告2023」です

【サーバー】
レイアウト切り替え [GetValue (Get (スクリプト引数) ; 1)]
検索モードに切り替え [一時停止: オフ]
フィールド設定 [顧客::レコードID ; GetValue (Get (スクリプト引数) ; 2)]
検索実行 [ ]
変数を設定 [$pdf; 値: Get(テンポラリパス)&"報告書.pdf"]
レコードをPDFとして保存 [記憶する; ダイアログあり: オフ; 「$pdf」; 現在のレコード; フォルダを作成: オフ]
メールを送信 [SMTPサーバー経由で送信; ダイアログなし; ・・・省略・・・「$pdf」]

-相談内容-
メールの送信は問題なくできており、PDFも添付されています。しかし、作成されたPDFの内容が指定のレイアウトではなく別のレイアウト(データベースを開いた際に最初に表示されるレイアウト)
になってしまいます。
レイアウト切り替えステップで、直接レイアウトを指定すれば狙ったレイアウトのPDFが作成されます。
試しにメール本文にGetValue (Get (スクリプト引数) ; 1)と入れて送信したところ、指定したレイアウト名「結果報告2023」が表示されたので、取得はできていると思うのですが。
複数のレイアウトでこのスクリプトを実行する予定のため、直接指定ではなくスクリプト引数を使用したいと考えております。
宜しくお願いいたします。

-動作環境-
【クライアント】
Windows10 Home
FileMaker Pro 20.3.1.31

【サーバー】
Mac mini Ventura 13.4.1
FileMaker Server 20.1.1.38

#2 2023-11-25 10:24:04

Shin
Member

Re: サーバー上のスクリプト実行におけるレイアウト切り替えについて

そのスクリプトをローカルで実行してみるとどうですか。
レイアウト名にゴミが混じっているのではないかと思いますが。

Offline

#3 2023-11-25 10:58:00

himadanee
Guest

Re: サーバー上のスクリプト実行におけるレイアウト切り替えについて

切り替えできてないような動作ってことですよね。
「レイアウトがありません」とかサーバログにエラーが記録されてないですか。

あとは、デフォルトレイアウトとか切り替え先のレイアウトとか、ファイル自体のonFirstWindowOpenとかのトリガスクリプトがないかどうかチェックする。

#4 2023-11-25 12:20:52

wah
Guest

Re: サーバー上のスクリプト実行におけるレイアウト切り替えについて

Shin様 himadanee様
ご返信ありがとうございます。

結果として私のケアレスミスでした。
はじめGetValueではなくMiddleValuesを使用してスクリプトを実行していたのですが
参考にしていたページがFileMaker Pro 13用ヘルプ(https://help.claris.com/archive/help/13/fmp/ja/html/scripts_ref1.36.3.html)だったことに気づき
最新?のページを参考にしGetValueに変更しました。
この際に「レイアウト切り替え」ステップ自体を削除してしまったようで、それが原因でした。

レイアウト切り替え [GetValue (Get (スクリプト引数) ); 1)]
で無事に思い通りの動作が確認できました。

念のため、もう一度 レイアウト切り替え[MiddleValues (Get (スクリプト引数) ); 1 ; 1)]
を試してみましたが、こちらはやはり上手くいきませんでした。

お忙しいところご返信下さりありがとうございました。

#5 2023-11-25 13:24:38

Shin
Member

Re: サーバー上のスクリプト実行におけるレイアウト切り替えについて

MiddleValues() とかの values 系の関数は、結果の最後に改行を付けてきます。それが異なります。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.012 seconds, 9 queries executed - Memory usage: 510.23 KiB (Peak: 516.27 KiB) ]