Deleting column/table variable that is referenced in formula using JSLHi,
As stated in the topic of this post, I observed that JSL commands "Delete Column" or "Delete Table Variable" don't work when either column has a function or table variable is a part of a function.
When performing this action "by hand" there is an extra warning window, that informs user about consequences of such action and allows to choose an action.
I understand that this behaviour was introduced intentionally, and I am totally fine with that.
I would like to ask if there is any option/argument/flag/command to bypass this window when deleting column/table variable using JSL?
Thank you for help.
Data TableScriptingRe: Deleting column/table variable that is referenced in formula using JSLI am not able to replicate what I understand as the issue you are asking about. The below scripts are deleting a table variable and a column from within a formula and a function within each formula.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << New Table Variable( "Days", 42 );
Wait( 5 );
dt << New Column( "test",
formula(
delTVar = Function( {theVar},
dt << Delete Table Variable( theVar )
);
rc = delTVar( "Days" );
:weight;
)
);
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
Wait( 5 );
dt << New Column( "test",
formula(
delCol = Function( {theCol},
dt << delete columns( theCol )
);
rc = delCol( "height" );
:weight;
)
);Re: Deleting column/table variable that is referenced in formula using JSLI think there isn't any flag that can do this. Maybe a place for wish list item, I think the flag should be similarly configurable as the interactive version which asks to remove refs, formula or cancel (I would maybe add Throw also).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("f", Numeric, Continuous, Formula(:height*weight));
dt << Delete Columns({"height", "weight"});
Will print to log:
Cannot delete the selected columns while some are referenced by the formulas of remaining columns.
Removing a formula leaves the data unchanged. Removing references replaces each reference with an empty value. These effects are permanent and cannot be undone.
Scriptable[]
You could capture this message with Log Capture() and then perform some JSL tricks to remove references / formulas beforehand.