AS и FMPA во время выполнения терпят неудачу при сборке - PullRequest
1 голос
/ 02 августа 2010

ОК. У меня есть вопрос, на который, похоже, нет ответа.Я закончу весь сценарий

Проблема с ПОПРОБОВАТЬ.Так как это происходит в Finder, и я пытаюсь передать некоторую информацию обратно в FM.Это прекрасно работает как сценарий FM, но не работает во время выполнения.Насколько я могу судить, единственным решением было бы изменить все ссылки Filemaker Pro Advanced на приложение времени выполнения, НО я не могу этого сделать, потому что FMPA хочет, чтобы я показал ему приложение, и, конечно, оно еще не создано!Так что, думаю, я мог бы собрать среду выполнения и затем отредактировать IT-сценарии для работы.Но это похоже на забавный обходной путь.Я попытался использовать «я», но я думаю, что, поскольку это часть попытки, которая все еще выполняется в Finder, она не удалась.

-- script to copy files to PT directory 1/21/02

set copysounds to ""  
set thetarget to ""  
set x to ""  
set filename to ""  
tell application "FileMaker Pro Advanced"  
--activate  
 set recordCount to count of records  
end tell  
choose folder with prompt "Pick a destination folder"  
set thetarget to result  
repeat with x from 1 to recordCount  
tell application "FileMaker Pro Advanced"  
  set copysounds to cell "Find Path" of record x  
  set effectName to cell "Effect Name:" of record x  
  set filename to ((thetarget as text) & (cell "Effect Name:" of record x))  
  set cell "error flag" of record x to ""  
  set notFoundError to ""  
  set DupOK to ""  
  -- find out if file esists  
  tell application "Finder"  
   activate  
   try  
    alias copysounds  
   on error  
    set notFoundError to "true"  
    display dialog effectName & "  file was not found.  Check     Path." buttons {"OK"} default button 1 with icon stop  
   tell application "FileMaker Pro Advanced"  
     set cell "error flag" of record x to "Path Invalid"  
    end tell  
    --return  
   end try  

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Отсутствие копии базы данных затрудняет мне тестирование, но давайте начнем здесь.У вас много вещей неуместно, поэтому я исправил ваш код

попробуйте это

  -- script to copy files to PT directory 1/21/02

  set copysounds to ""
  set thetarget to ""
  set x to ""
  set filename to ""
  set thetarget to choose folder with prompt "Pick a destination folder"
  tell application "FileMaker Pro 10"
    set recordCount to count of records
    repeat with x from 1 to recordCount
        set copysounds to cell "Find Path" of record x
        set effectName to cell "Effect Name:" of record x
        set filename to ((thetarget as text) & (cell "Effect Name:" of record x))
        set cell "error flag" of record x to ""
        set notFoundError to ""
        set DupOK to ""
        try
            tell application "Finder" to alias copysounds
        on error
            set notFoundError to "true"
            display dialog effectName & "  file was not found.  Check     Path." buttons {"OK"} default button 1 with icon stop
            set cell "error flag" of record x to "Path Invalid"
        end try
    end repeat
  end tell
0 голосов
/ 02 августа 2010

ОБНОВЛЕНИЕ: Простите за простой вопрос, но у вас есть открытая база данных, когда вы запускаете скрипт как приложение или иным образом. Единственный способ получить ту же ошибку «объект не найден» в 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
...