ОБНОВЛЕНИЕ: Простите за простой вопрос, но у вас есть открытая база данных, когда вы запускаете скрипт как приложение или иным образом. Единственный способ получить ту же ошибку «объект не найден» в Applescript - это если у меня нет открытой базы данных. Смотрите следующий пример ...
tell application "FileMaker Pro"
set theRecords to records --> if a database isn't open in Filemaker, this gets an "object not found" error.
return theRecords --> if a database is open, a list of records is returned.
конец сказать
Я не могу не думать, что здесь упущено что-то более фундаментальное, чем время выполнения.
Насколько я могу судить, единственным решением было бы изменить все ссылки Filemaker Pro Advanced на приложение времени выполнения, НО я не могу этого сделать, потому что FMPA хочет, чтобы я показал это приложение и, конечно, оно не было построено. еще! Так что, думаю, я мог бы собрать среду выполнения и затем отредактировать IT-сценарии для работы. Но это похоже на забавный обходной путь.
Вы можете сохранить скрипт как приложение и сохранить его, чтобы редактировать его в приложении Script Editor. Я делал это много раз раньше. Для отладки, вместо того, чтобы переходить к просмотру активности, вы можете вместо этого записать в файл и прочитать его, когда скрипт завершит свою работу. Это забавно, но не необычно для Applescript.
Я пытался использовать «я», но я думаю, что это часть попытки, все еще работающей в Finder, не удалась.
код mcgrailm намного чище, но мне кажется, что вы все равно будете получать ошибку на try
независимо от того, используете ли вы me
или нет; Попытка получить псевдоним файла вернет ошибку, если путь будет неправильным каждый раз. Если ошибка здесь ...
try
tell application "Finder" to alias copysounds
on error
... тогда вам нужно исследовать copysounds значения и как это значение генерируется. Я согласен с mcgrailm, что примеры данных из вашей базы данных FM будут очень полезны здесь, равно как и точные ошибки, которые вы получаете при попытке. Нечто подобное поможет запечатлеть это ...
try
-- insert actions here
on error the error_message number the error_number
-- do something with the strings error_message and error_number
end try