Mi secuencia de comandos de función JSL a continuación extrae un archivo de una carpeta de red y lo genera en un archivo de datos para usar en otro lugar. ¿Cómo puedo generar el mensaje de error "Este archivo de límite no existe! Compruebe el nombre del archivo" junto con el archivo de datos. Estoy en JMP13.
Names Default To Here( 1 );
getLimitsFile = Function({LimFileName}, {dtspk},
dtspk = Try(
Open(
"\\gbshyt-ppor-334e\DBX\XPD\System\Limits\"||LimFileName||".txt",
columns(
New Column( "ParameterName", Character, "Nominal" ),
New Column( "ColumnLSL", Character, "Nominal" ),
New Column( "ColumnUSL", Character, "Nominal" ),
New Column( "ColumnUnits", Character, "Nominal" ),
New Column( "ColumnSymb", Character, "Nominal" ),
New Column( "ColumnComm", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
//,invisible)
),"This limit file does not exist! Check file name");
return(dtspk);
);Además, en el caso de un error, ¿cómo detener la ejecución del código donde se usa la función y mostrar al usuario un cuadro de diálogo con el mensaje de error?
Si JMP13 proporciona la función File Exists(), puede usarla con la instrucción if. Entonces es una decisión qué devolver / cómo detener el programa. Puede usar, por ejemplo, Throw() o Stop()
Names Default To Here(1);
getLimitsFile = Function({LimFileName}, {dtspk},
If(!File Exists("\\gbshyt-ppor-334e\DBX\XPD\System\Limits\"||LimFileName||".txt"),
Throw("This limit file does not exist! Check file name");
//or use return and throw outside function
);
//Open...
return(dtspk);
);
getLimitsFile("");
Show("continue...");
Editar:
¿Qué tabla de datos le gustaría devolver con el error? Si no puede abrir el archivo, no hay una tabla de datos para devolver a menos que cree una vacía.
Gracias @jthi , Sí, JMP 13 tiene archivo existe (). Voy a intentarlo.
No expresé mi consulta correctamente antes. Cuando el archivo no existe, solo quiero que la función muestre el error en un cuadro de diálogo y detenga la ejecución.
Cuando existe el archivo, solo quiero la tabla de datos y la salida del mensaje. ¿Cómo lograr esto?
¿Tiene un cuadro de diálogo fuera de la función que desea llenar con el mensaje de error? ¿Y con la tabla de datos desea devolver la salida del mensaje con la tabla de datos?