Hallo zusammen,
Ich versuche, ein JSL-Skript zu erstellen, das Daten aus einer Datenbank abruft, dann verschiedene Diagramme erstellt und mit diesem Dataset eine Analyse durchführt. Bisher konnte ich den Builder für Datenbankabfragen verwenden, um die benötigten Daten abzurufen, kann jedoch nicht dasselbe Skript für die von mir benötigten Diagramme verwenden. Als Neuling in der Skripterstellung in JSL scheint dies eine wirklich entmutigende Aufgabe zu sein. Unten ist das Skript, mit dem ich Daten aus 2 Datenbanken abrufen und zusammenführen konnte. Ich möchte diese Datentabelle jedoch speichern und dann Diagramme erstellen. Wenn ich versuche, vor der Abfrage eine Obj-Referenz hinzuzufügen, werden keine Daten zurückgegeben. Irgendwelche Vorschläge?
Beste,
Debraj
Neue SQL-Abfrage (
Ausführung( 130 ),
Verbindung(
ODBC: DSN = Parametric 32; Description = Parametric 32; UID = GUEST; PWD =; APP = JMP; WSID = DEBRAJG-W10LT;
),
Abfragename ( "LSO-THK" ),
Wählen(
Säule ( "WAFER" , "t1" ),
Säule ( "TERMINZEIT" , "t1" , Numerisches Format ( "m / d / yh: m: s" , "0" , "NEIN" , "" )),
Säule ( "MENGE" , "t1" ),
Säule ( "PRÜFER" , "t1" ),
Säule ( "EMPFANG" , "t1" ),
Säule ( "DICKE_1" , "t1" ),
Säule ( "DICKE_2" , "t1" ),
Säule ( "DICKE_3" , "t1" ),
Säule ( "DICKE_4" , "t1" ),
Säule ( "DICKE_5" , "t1" ),
Säule ( "DICKE_6" , "t1" ),
Säule ( "DICKE_7" , "t1" ),
Säule ( "DICKE_8" , "t1" ),
Säule ( "DICKE_9" , "t1" ),
Säule ( "THICKNESS_AVG" , "t1" ),
Säule ( "THICKNESS_STD" , "t1" ),
Säule ( "THICKNESS_MIN" , "t1" ),
Säule ( "THICKNESS_MAX" , "t1" ),
Säule ( "THICKNESS_RANGE" , "t1" ),
Säule ( "OPERATION" , "t2" ),
Säule ( "WIP_MSG_KEY" , "t2" ),
Säule ( "WIP_MSG_LEVEL3" , "t2" ),
Säule ( "WIP_MSG_LEVEL2" , "t2" ),
Säule ( "WIP_MSG_LEVEL1" , "t2" )
),
Von(
Tabelle( "WFLSOTHK" , Schema ( "dbo" ), Alias( "t1" )),
Tabelle(
"FT_WF_HIST" ,
Alias( "t3" ),
Beitreten(
Art (Links außen),
EQ (
Säule (
"TERMINZEIT" ,
"t1" ,
Numerisches Format ( "m / d / yh: m: s" , "0" , "NEIN" , "" )
),
Säule (
"TERMINZEIT" ,
"t3" ,
Numerisches Format ( "m / d / yh: m: s" , "0" , "NEIN" , "" )
)
) & EQ ( Säule ( "MENGE" , "t1" ), Säule ( "MENGE" , "t3" ))
)
),
Tabelle(
"WF_MESA_WIP_MSG_HIST" ,
Alias( "t2" ),
Beitreten(
Art (Links außen),
EQ ( Säule ( "WAFER" , "t1" ), Säule ( "WAFER" , "t2" )) &
EQ ( Säule ( "MENGE" , "t1" ), Säule ( "MENGE" , "t2" ))
)
)
),
Wo(
In Liste (
Säule ( "OPERATION" , "t2" ),
{ "O0TS" },
UI (SelectListFilter (ListBox, Base () "Kategorial" )))
)
)
) >> Ausführen
Ich habe keine Datenbank, mit der ich dies testen kann, aber ich denke, diese Methode sollte funktionieren.
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(.............);Vielen Dank Jim. Es hat funktioniert. Ich glaube, ich habe das Semikolon nach dem ersten >> Lauf verpasst, weshalb es sich nicht so verhalten hat, wie ich es erwartet hatte.
Das Skript wurde jedoch gespeichert und sie erstellten die Handlungen, die ich beim ersten Mal eingefügt habe. Wenn ich dann die CSV-Datei lösche und erneut ausführe, wird die Datei nicht erneut gespeichert und die Kurven werden gezeichnet. Es verhält sich zeitweise. Es speichert die Datei und zeichnet die Kurven dann einige Male, während es in den meisten anderen Fällen nur nach dem Abrufen der Daten aus der Datenbank stoppt. Gibt es einen Trick, den ich vermisse, oder einen Parameter, der geändert werden muss? Unten ist der Teil des Codes aufgeführt, den ich zur SQL-Datenbankabfrage hinzugefügt habe und der zeitweise funktioniert.
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 )}
)