みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
macOS 10.13.6
FileMaker Pro 18 Advanced
FileMaker Server 18
お世話になります。
AppleScriptでサーバーでの共有ファイルを開いて、新規レコードを作成して、そのレコードに移動したいのですがうまくいきません。
ローカルファイルでは新規レコードに移動できるのですが、共有ファイルでは新規レコード作成まではできるものの、新規レコードに移動ができません。
「オブジェクトが見つかりません」というエラーが出ます。
サーバーで開いているファイルだと、お作法が違うのでしょうか?
サーバーでの共有ファイルはデスクトップに作成したショートカットから開いています。
-- AppleScript --
tell application "Finder"
open file "パス--アカウント名-パスワード@サーバーIPアドレス-ファイル名.fmp12.inetloc"
end tell
tell application "FileMaker Pro 18 Advanced"
activate
tell window 1
set new-record to create new record ← 新規レコード作成
go to new-record ← 新規レコードへ移動
end tell
end tell
-----------------------
ご指導よろしくお願いいたします。
Offline
最初に気になるのは、名前にハイフン(マイナス記号)って使えるんですか?
applescript variable naming
をググると、
must consist entirely of characters in the character set [a-zA-Z0-9_] .
とあって、使えないようですが。
4年前の情報だけども、Applescriptはメンテナンスされてないという話。
https://fmforums.com/topic/101094-apple … ew-record/
レコード作成と同時にコミットされるので、云々ということのようですが
結論としてはApplescript使わずにできるのでは?という回答のようです。
新規レコードに移動するだけで何もしてないようですが、何が目的ですか?
ローカルなら可能というのは、同じファイルですか?内容が違うのでは?
himadanee様ありがとうございます。
名前のハイフンの件、すみません!
実際には具体的な名前を付けていたのですが、ボカした方がいいかも?とスクリプトをコピペしてから適当に書き換えていました。
ハイフンが使えないことを全く考慮していませんでした。
実際にはハイフンは入っていません。すみません。
ローカル環境でも同じファイルを使用しています。
AppleScriptを使用した目的は、指定した時間にMacからWindows PCの共有フォルダにアクセスして、条件に合うファイルを別フォルダにコピー・解凍をして、ファイルメーカーのテーブルに解凍したフォルダ名を書き込むためです。
上記の流れをMacのAutomatorで作ってカレンダーアラームで設定しています。
ご紹介いただいたページを拝見しました。
翻訳をかけながらなので、いまいち理解が及びませんがもうちょっと勉強してみます。
引き続きご指導いただけますよう、よろしくお願いいたします。
Offline
お世話になります。
himadanee様に教えていただいたサイトと下記のサイトを参考に、新規レコードに移動することができました。
http://ameba.i.hosei.ac.jp/kihara/DataB … e/005.html
全レコード数をカウントして最後のレコードに移動する、という方法で一応は目的を果たすことはできました。
AppleScript ----------------
tell application "FileMaker Pro 18 Advanced"
go to layout "test"
tell current layout
set NewRecord to create new record ← 新規レコード作成
set CountRecord to count of record ← 全レコード数をカウントし変数「CountRecord」に記憶する
go to record CountRecord ← 新規レコードに移動
end tell
end tell
--------------------------------
なぜサーバーの共有ファイルだとできなかったのか、そこが相変わらず理解できていません。
引き続きご指導いただけますよう、よろしくお願いいたします。
Offline
クライアント版とサーバー版では、エンジンが違うためかも。
Claris に報告してみればいいのでは。
Offline
ファイルが共有なだけで、実行はローカルでやってるわけですよね。
go to (create new record)
は使えないんですか。
新規作成したレコードが最後に位置するとは限らないし、(ソート状態に依存)
そもそも、新規作成したらそのレコードが自動的にアクティブにならないのは、なんか変な感じがしますね。
レコードに移動しないでも、直接そのレコードに命令する(作成したレコードをtheRecordに入れたとして)
tell theRecord
でも、いいようです。
http://preserve.mactech.com/articles/ma … index.html
Shin様ありがとうございます。
クライアント版とサーバー版でエンジンが違うんですね。
Clarisに相談してみますね。
himadanee様ありがとうございます。
ファイルが共有なだけで、実行はローカルでやっています。
go to (create new record) も「オブジェクトが見つかりません」という同じエラーでした。
ご紹介いただいたサイトのように tell theRecord も試してみたところ、新規作成されたレコードに直接テキストの入力はできましたが、現在レコードの位置は1番目のレコードから動きませんでした。。。
月曜日以降にClarisに問い合わせをしてみます。
先輩方には引き続きご指導いただけますよう宜しくお願いいたします。
Offline
レコードが確定してないから、UIから見えないのかな?
commitするか、新規レコードをdo menu item でやるとか?
himadanee様
お礼が遅くなりすみません。
do menu item を教えていただきましてありがとうございます。
AppleScriptのライブラリを読んでも書き方がよくわからず、下のように書いたら「オブジェクトが見つかりません」というエラーになってしまいました。
do menu item "新規レコード" of the menu "レコード"
よろしければ、書き方を教えていただけませんでしょうか。
それと、Clarisのサポートにメールで問い合わせをしてお返事が来たのですが、「ファイルの保守や開発といったサポートはしていない次第です。」とのことでした。
宜しくお願いいたします。
Offline
Pages: 1
[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 526.08 KiB (Peak: 546.98 KiB) ]