Choose Language Hide Translation Bar

Essential Scripting for Efficiency and Reproducibility: Do Less to Do More (2019-US-TUT-290)

Level: Intermediate


Drew Foglia, JMP Life Sciences Distinguished Software Developer, SAS
Evan McCorkle, JMP Software Developer, SAS


From reproducing simple tasks to automating daily processes to sharing scripts with colleagues to deploying full applications across your organization, challenges exist at every level that can limit the efficiency and reliability of your JSL scripts. In this tutorial, we will travel along the arc from small scripts to large applications presenting best-practice techniques for mitigating many of the common, yet subtle, pitfalls that often hinder JSL novices and veterans alike. We will discuss strategies for combining multiple steps into a cohesive script, and conversely splitting overly large scripts into more manageable files. We will also present tips for handling errors, wrangling windows, isolating variables from unexpected changes, protecting the integrity of your scripts without compromising usefulness and more.


I'm trying to follow along with the pesentation, and I got to the Isolating Demo. I tried running ScopingExamples.jsl, but it fails. I expect that I've missed some step. Is a video of this talk available?


Name Unresolved: ut test case in access or evaluation of 'ut test case' , ut test case("Scoping") /*###*/

In the following script, error marked by /*###*/
Names Default To Here(0);
Scoping = ut test case("Scoping") /*###*/ <<Teardown(
		Delete Symbols(foo, bar, baz);
		Delete Directory(temp dir);
) << Setup(

Hello, @MarkDayton


Sorry about that. That particular example is written as unit tests using the JSL Hamcrest implementation. You can learn more about that here: 


With that add-in installed and activated, you should be able to run this example.


Hope that helps.