Problema
Si necesita abrir un archivo en un programa externo, normalmente la función JSL Open() funcionará para usted. Sin embargo, si desea abrir un tipo de archivo que JMP sabe cómo importar, probablemente termine con el archivo importado en lugar de abrirlo en el programa externo. Abrir un archivo de Excel es un caso de uso común para esto.
Solución
Para hacer esto, podemos usar la función JSL RunProgram(). Windows requiere un manejo especial para que JMP no se congele hasta que se cierre el programa, ni es necesario que el proceso se cierre antes de que se cierre JMP.
/* Function: openFileInOSDefault
Open file in the operating system default program
Arguments:
filepath - local path file
*/
openFileInOSDefault = Function({filepath},
If( Host is( "Windows" ),
Run Program(
Executable( "PowerShell.exe" ),
Options(
Eval Insert( "\[-Command "& {Start-Process '^filepath^'}"]\" )
),
Read function( "text" )
);
,
RunProgram(
Executable( "/usr/bin/open" ),
Options( filepath ),
ReadFunction( "text" )
)
);
);
Discusión
En general, no creo que necesite comprender cómo funciona esto exactamente y puede conectarlo a sus scripts y llamarlo con una ruta al archivo que desea abrir.