cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Choose Language Hide Translation Bar
View Original Published Thread

Add Contents of script file as New Script to data table

klk
klk
Level III

I have a saved jmp script.  Let's call it my_graph.jsl.  I want to take that script and add it to my current data table as a New Script().  I know that

dt << New Script(scriptname, code)

will add a new script to the data table.  But it's not clear to me how to get the contents of my_graph.jsl and dump it in there.  I've tried playing around with Load Text File() but then I'm not sure what to do with that.  I imagine the solution will involve some combination of Eval/Expr/Eval Expr but honestly I've never wrapped my head around the order of those that make sense

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User


Re: Add Contents of script file as New Script to data table

Here is one more option using Include(, << Parse Only)

 

Names Default To Here(1);

script_path = "$DOWNLOADS/table_script.jsl";

txt = "Graph Builder(
	Size(525, 454),
	Show Control Panel(0),
	Variables(X(:weight), Y(:height), Color(:sex)),
	Elements(Points(X, Y, Legend(5)))
);";

Save Text File(script_path, txt);
txt = "";


dt = Open("$SAMPLE_DATA/Big Class.jmp");
Eval(EvalExpr(
	dt << New Script("Plot Graph", Expr(Include(script_path, << Parse Only)))
));

Some links regarding eval/eval expr and so on

 

  1. https://community.jmp.com/t5/JSL-Cookbook/Insert-one-expression-into-another-using-Eval-Insert-Eval-...
  2. https://community.jmp.com/t5/JMPer-Cable/Expression-Handling-Functions-Part-I-Unraveling-the-Expr/ba... 
  3. https://community.jmp.com/t5/Discussions/Can-you-construct-this-without-writing-expression-as-a-stri... 
-Jarmo

View solution in original post

4 REPLIES 4
Byron_JMP
Staff


Re: Add Contents of script file as New Script to data table

Yep, that's a twisty one

 

maybe something like this?

obj=open("/Users/bywing/Byron Wingerd/Examples/eraseme.jsl");
stuff=obj<<get text;

dt=new table("Target");
ex=expr(dt<< new script("Stuffing", "XX" ));
substitute into( ex, "XX", parse(nameexpr(stuff)));
eval(ex);
JMP Systems Engineer, Health and Life Sciences (Pharma)
jthi
Super User


Re: Add Contents of script file as New Script to data table

Here is one more option using Include(, << Parse Only)

 

Names Default To Here(1);

script_path = "$DOWNLOADS/table_script.jsl";

txt = "Graph Builder(
	Size(525, 454),
	Show Control Panel(0),
	Variables(X(:weight), Y(:height), Color(:sex)),
	Elements(Points(X, Y, Legend(5)))
);";

Save Text File(script_path, txt);
txt = "";


dt = Open("$SAMPLE_DATA/Big Class.jmp");
Eval(EvalExpr(
	dt << New Script("Plot Graph", Expr(Include(script_path, << Parse Only)))
));

Some links regarding eval/eval expr and so on

 

  1. https://community.jmp.com/t5/JSL-Cookbook/Insert-one-expression-into-another-using-Eval-Insert-Eval-...
  2. https://community.jmp.com/t5/JMPer-Cable/Expression-Handling-Functions-Part-I-Unraveling-the-Expr/ba... 
  3. https://community.jmp.com/t5/Discussions/Can-you-construct-this-without-writing-expression-as-a-stri... 
-Jarmo
Byron_JMP
Staff


Re: Add Contents of script file as New Script to data table

"<<Parse Only"  Nice!

JMP Systems Engineer, Health and Life Sciences (Pharma)
klk
klk
Level III


Re: Add Contents of script file as New Script to data table

This is perfect, thank you!