Pregunta

Actualmente estoy escribiendo un AppleScript que se ejecuta dentro de FileMaker. Tengo que decirle FileMaker lo que el nombre de su aplicación es (FileMaker Pro o FileMaker Pro Advanced o lo que sea) para que pueda dentro de otro applescript dentro de FileMaker lo que puedo decir "decir FileMaker aplicación"

Actualmente tengo un script que figuras fuera el nombre del archivo de la aplicación, sin embargo, el problema es cada vez de nuevo en FileMaker. El nombre que quiero enviar de vuelta está en la variable applescript "FMName" No puedo pensar en 2 opciones

1)

tell application FMName
   set cell "gFMName" of current record to FMName
end tell

El problema con esto es que, aunque sé que la aplicación FMName tendrá un comando conjunto de células, no applescript y así se queja.

2) tener la applescript o bien devolver un valor o un mensaje de error y de alguna manera obtener FileMaker para aceptar esto y hacer algo útil con él.

El problema con esto es que 1) parece que AppleScripts puede volver sólo números (¿es esto cierto?) 2) No quiero un diálogo de error ni nada, y 3) no he encontrado la forma de llegar FileMaker para aceptar este valor de retorno en el primer lugar ...

Alguien tiene alguna idea mejor sobre cómo hacer esto?

Gracias!

¿Fue útil?

Solución

Desde (si he entendido bien) sin importar cual sea la aplicación que está siendo dirigido, es una versión de FileMaker, si FileMaker Pro o FileMaker Pro Advanced o incluso una versión de tiempo de ejecución de FileMaker, el diccionario siendo utilizado tendrá el mismo términos disponibles. Por lo tanto, se puede utilizar el using terms from application "FileMaker Pro" para incluir el bloque que se desea ejecutar.

using terms from application "FileMaker Pro"
    tell application FMName
        set cell "gFMName" of current record to FMName
    end tell
end using terms from

No he experimentado con ella, así que no estoy seguro de si va a trabajar. Parece que su objetivo es conseguir una aplicación FileMaker para recibir datos desde el AppleScript en otra aplicación FileMaker. Me pregunto, sin embargo, ¿por qué estás usando dos aplicaciones de FileMaker. ¿Son diferentes versiones (es decir, FileMaker 10 y FileMaker 6)? Si es así, tal vez con la AppleScript escribir los datos en un archivo que la segunda aplicación FileMaker continuación, las importaciones es una opción. Pero si ambos son FileMaker 7-10, ¿por qué no sólo tiene que abrir los dos archivos en la misma aplicación? A continuación, puede escribir los datos de AppleScript directamente al archivo correcto.

Otros consejos

Esta fue respondida pero que, aunque me gustaría añadir algo que descubrí últimamente. Si se dirige a otra aplicación, por ejemplo el Finder, con una "aplicación Tell Buscador Activar", entonces esas llamadas FMP fallarán debido a que su ahora en el Finder hasta que lo haga un "end tell" o explícitamente señalar de nuevo a la FMP.

La solución que se señaló a mí era hacer las llamadas secundarios a cabo en una sola línea, tales como

"Tell aplicación Finder para [todo lo que necesitamos el Finder para hacerlo]"

Esto dirige precisamente eso digo que la aplicación no FMP, pero las hojas que todavía en la FMP por lo que sus llamadas FMP va a funcionar.

Esto se convierte en un problema con tiempos de ejecución ya que el nombre de entorno será diferente de su nombre de la aplicación de desarrollo.

Sé que este hilo es un poco rancio, pero esto es lo que hago - utilizar una sentencia if. Utilizar el Get (ApplicationVersion) función para averiguar qué tipo de FileMaker se está ejecutando:

If ( PatternCount ( Get ( ApplicationVersion ) ; "Advanced" ) ; 
"tell application \"FileMaker Pro Advanced\""   ; 
"tell application \"FileMaker Pro\""  )

Me he tomado un paso más allá y configurarlo como una función personalizada, así que no tengo que repite en muchos guiones diferentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top