Ciao a tutti,
Sto cercando di creare uno script JSL che prenda i dati da un database, quindi crei vari grafici ed esegua alcune analisi con quel set di dati. Fino ad ora, sono stato in grado di utilizzare il generatore di query del database per ottenere i dati di cui ho bisogno, ma non posso utilizzare lo stesso script per eseguire i grafici di cui ho bisogno. Essendo nuovo allo scripting in JSL, questo sembra essere un compito davvero arduo. Di seguito è riportato lo script con cui sono stato in grado di ottenere dati da 2 database e unirli insieme. Tuttavia, voglio salvare questa tabella di dati e quindi creare grafici. Se provo ad aggiungere un riferimento Obj prima della query, non restituisce alcun dato. Eventuali suggerimenti?
Migliore,
Debraj
Nuova query SQL (
Versione( 130 ),
Connessione(
"ODBC: DSN = Parametric 32; Description = Parametric 32; UID = GUEST; PWD =; APP = JMP; WSID = DEBRAJG-W10LT;"
),
QueryName ( "LSO-THK" ),
Selezionare(
Colonna ( "WAFER" , "t1" ),
Colonna ( "APPUNTAMENTO" , "t1" , Formato numerico ( "m / g / yh: m: s" , "0" , "NO" , "" )),
Colonna ( "LOT" , "t1" ),
Colonna ( "TESTER" , "t1" ),
Colonna ( "RICETTA" , "t1" ),
Colonna ( "SPESSORE_1" , "t1" ),
Colonna ( "THICKNESS_2" , "t1" ),
Colonna ( "THICKNESS_3" , "t1" ),
Colonna ( "THICKNESS_4" , "t1" ),
Colonna ( "THICKNESS_5" , "t1" ),
Colonna ( "THICKNESS_6" , "t1" ),
Colonna ( "THICKNESS_7" , "t1" ),
Colonna ( "THICKNESS_8" , "t1" ),
Colonna ( "THICKNESS_9" , "t1" ),
Colonna ( "THICKNESS_AVG" , "t1" ),
Colonna ( "THICKNESS_STD" , "t1" ),
Colonna ( "THICKNESS_MIN" , "t1" ),
Colonna ( "THICKNESS_MAX" , "t1" ),
Colonna ( "THICKNESS_RANGE" , "t1" ),
Colonna ( "OPERAZIONE" , "t2" ),
Colonna ( "WIP_MSG_KEY" , "t2" ),
Colonna ( "WIP_MSG_LEVEL3" , "t2" ),
Colonna ( "WIP_MSG_LEVEL2" , "t2" ),
Colonna ( "WIP_MSG_LEVEL1" , "t2" )
),
A partire dal(
Tavolo( "WFLSOTHK" , Schema ( "dbo" ), Alias ( "t1" )),
Tavolo(
"FT_WF_HIST" ,
Alias( "t3" ),
Aderire(
genere (Esterno sinistro),
EQ (
Colonna (
"APPUNTAMENTO" ,
"t1" ,
Formato numerico ( "m / g / yh: m: s" , "0" , "NO" , "" )
),
Colonna (
"APPUNTAMENTO" ,
"t3" ,
Formato numerico ( "m / g / yh: m: s" , "0" , "NO" , "" )
)
) Ed EQ ( Colonna ( "LOT" , "t1" ), Colonna ( "LOT" , "t3" ))
)
),
Tavolo(
"WF_MESA_WIP_MSG_HIST" ,
Alias( "t2" ),
Aderire(
genere (Esterno sinistro),
EQ ( Colonna ( "WAFER" , "t1" ), Colonna ( "WAFER" , "t2" )) E
EQ ( Colonna ( "LOT" , "t1" ), Colonna ( "LOT" , "t2" ))
)
)
),
Dove(
In elenco (
Colonna ( "OPERAZIONE" , "t2" ),
{ "O0TS" },
UI (SelectListFilter (ListBox, Base ( "Categorico" )))
)
)
) >> Corri
Non ho un database con cui testarlo, ma penso che questa metodologia dovrebbe funzionare.
Names default to here(1);
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DSN=Parametric 32;Description=Parametric 32;UID=GUEST;PWD=;APP=JMP;WSID=DEBRAJG-W10LT;"
),
QueryName( "LSO-THK" ),
Select(
Column( "WAFER", "t1" ),
Column( "DATE_TIME", "t1", Numeric Format( "m/d/y h:m:s", "0", "NO", "" ) ),
Column( "LOT", "t1" ),
Column( "TESTER", "t1" ),
Column( "RECEIPE", "t1" ),
Column( "THICKNESS_1", "t1" ),
Column( "THICKNESS_2", "t1" ),
Column( "THICKNESS_3", "t1" ),
Column( "THICKNESS_4", "t1" ),
Column( "THICKNESS_5", "t1" ),
Column( "THICKNESS_6", "t1" ),
Column( "THICKNESS_7", "t1" ),
Column( "THICKNESS_8", "t1" ),
Column( "THICKNESS_9", "t1" ),
Column( "THICKNESS_AVG", "t1" ),
Column( "THICKNESS_STD", "t1" ),
Column( "THICKNESS_MIN", "t1" ),
Column( "THICKNESS_MAX", "t1" ),
Column( "THICKNESS_RANGE", "t1" ),
Column( "OPERATION", "t2" ),
Column( "WIP_MSG_KEY", "t2" ),
Column( "WIP_MSG_LEVEL3", "t2" ),
Column( "WIP_MSG_LEVEL2", "t2" ),
Column( "WIP_MSG_LEVEL1", "t2" )
),
From(
Table( "WFLSOTHK", Schema( "dbo" ), Alias( "t1" ) ),
Table(
"FT_WF_HIST",
Alias( "t3" ),
Join(
Type( Left Outer ),
EQ(
Column(
"DATE_TIME",
"t1",
Numeric Format( "m/d/y h:m:s", "0", "NO", "" )
),
Column(
"DATE_TIME",
"t3",
Numeric Format( "m/d/y h:m:s", "0", "NO", "" )
)
) & EQ( Column( "LOT", "t1" ), Column( "LOT", "t3" ) )
)
),
Table(
"WF_MESA_WIP_MSG_HIST",
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "WAFER", "t1" ), Column( "WAFER", "t2" ) ) &
EQ( Column( "LOT", "t1" ), Column( "LOT", "t2" ) )
)
)
),
Where(
In List(
Column( "OPERATION", "t2" ),
{"O0TS"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
) >> Run;
dt = data table("WF_MESA_WIP_MSG_HIST");
dt << save("Path to save location");
dt << Graph Builder(.............);Grazie mille Jim. Ha funzionato. Credo che mi mancasse il punto e virgola dopo aver eseguito >> inizialmente, motivo per cui non si è comportato come mi aspettavo.
Tuttavia, la sceneggiatura ha salvato e hanno prodotto le trame che ho inserito la prima volta. Quindi, quando elimino il file .csv e lo rieseguo, non ha salvato di nuovo il file e tracciato le curve. Si sta comportando in modo intermittente. Salva il file e quindi traccia le curve alcune volte, mentre nella maggior parte degli altri casi si ferma dopo aver estratto i dati dal database. C'è un trucco per questo che mi manca o un parametro che deve essere modificato? Di seguito è riportata la parte del codice che ho aggiunto alla query del database SQL e funziona in modo intermittente.
dt = data table("WFLSOTHK");
dt << Save ("C:\path to directory\file_name.csv");
dt << Open ( "C:\path to directory\file_name.csv" );
dt << Fit Group(
Bivariate(
.
.
.
),
Bivariate(
.
.
.
),
<<{Arrange in Rows( 1 )}
)