みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
クライアントのネットワーク環境からはメール送信ができないため、サーバーからメール送信をしたいと考えております。
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
そのスクリプトをローカルで実行してみるとどうですか。
レイアウト名にゴミが混じっているのではないかと思いますが。
Offline
切り替えできてないような動作ってことですよね。
「レイアウトがありません」とかサーバログにエラーが記録されてないですか。
あとは、デフォルトレイアウトとか切り替え先のレイアウトとか、ファイル自体のonFirstWindowOpenとかのトリガスクリプトがないかどうかチェックする。
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)]
を試してみましたが、こちらはやはり上手くいきませんでした。
お忙しいところご返信下さりありがとうございました。
MiddleValues() とかの values 系の関数は、結果の最後に改行を付けてきます。それが異なります。
Offline
Pages: 1
[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 508.44 KiB (Peak: 514.22 KiB) ]