Hola,
¿Puedo saber dónde está mal en el script? Me gustaría generar el informe de capacidad del proceso por lot_id como se muestra a continuación.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Create a complex name for a column to make sure it will be
// processed correctly
dt:NPN1 << set name( "NPN1-7/Best" );
// Get a list of columns to be used
colList = dt << get column names( continuous, string );
ProcessFunc = Function( {TheList},
// Move them into a single literal string of the format required
// for the Process Variables element in the Process Capability
// platform
TheVars = ":Name(\!"" || TheList[1] || "\!")";
For( i = 2, i <= 10, i++,
TheVars = TheVars || "," || ":Name(\!"" || TheList[i] || "\!")"
);
// Run the Process Capability platform, using the literal
// string "TheVars"
pcVar=Eval(Parse("dt << Process Capability(
SendToByGroup( Bygroup Default ),
Process Variables( "|| TheVars|| ")
{:TheVars << Process Capability Analysis},
By( :lot_id )
) ,,
Goal Plot( 0 ), Capability Index Plot( 0 ) ),
);"));
pcVar <<ORDER by=""></ORDER>
tienes doble coma.
By( :lot_id )
) ,,
Goal Plot( 0 ), Capability Index Plot( 0 ) ),
¿Qué versión de JMP estás usando? ¿Hay alguna razón específica para construir el mensaje usando cadenas en lugar de expresión (Eval(Parse()) vs Eval(Substitute()) vs Eval(EvalExpr())? ¿Has comprobado que la cadena que estás construyendo es correcta?