Comment puis-je créer un script unique pour obtenir des données de la base de données, puis effectuer mon analyse avec cet ensemble de donnéesSalut tout le monde,
J'essaie de créer un script JSL qui extrait les données d'une base de données, puis crée divers tracés et effectue des analyses avec cet ensemble de données. Jusqu'à présent, j'ai pu utiliser le générateur de requêtes de base de données pour obtenir les données dont j'ai besoin, mais je ne peux pas utiliser le même script pour effectuer les tracés dont j'ai besoin. Étant nouveau dans les scripts en JSL, cela semble être une tâche vraiment ardue. Vous trouverez ci-dessous le script avec lequel j'ai pu obtenir des données de 2 bases de données et les fusionner. Cependant, je souhaite enregistrer cette table de données, puis créer des tracés.Si j'essaie d'ajouter une référence Obj avant la requête, elle ne renvoie aucune donnée. Aucune suggestion?
Meilleur,
Débraj
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
AnalytiqueTableau de donnéesAutreScriptRe : Comment créer un script unique pour obtenir des données de la base de données, puis effectuer mon analyse avec cet ensemble de donnéesIl s'avère que le problème était principalement dû aux espaces de noms. J'ai fait quelques recherches et j'ai trouvé la solution dans la ligne ci-dessous.
https://community.jmp.com/t5/Discussions/Getting-a-data-table-reference-from-NewSQLQuery-lt-lt-Run/td-p/187001Re : Comment créer un script unique pour obtenir des données de la base de données, puis effectuer mon analyse avec cet ensemble de donnéesJ'ai basculé Save () sur Include () et cela fonctionne bien maintenant. Je ne sais pas pourquoi cependant.….Re : Comment créer un script unique pour obtenir des données de la base de données, puis effectuer mon analyse avec cet ensemble de donnéesMerci beaucoup Jim. Cela a fonctionné. Je crois qu'il me manquait le point-virgule après >> run initialement, c'est pourquoi il ne s'est pas comporté comme je m'y attendais.
Cependant, le script a été sauvegardé et a produit les intrigues que j'y ai mises la première fois. Ensuite, lorsque je supprime le fichier .csv et que je le relance, il n'enregistre plus le fichier et ne trace pas les courbes. Il se comporte par intermittence. Il enregistre le fichier, puis trace les courbes plusieurs fois, tandis que dans la plupart des autres cas, il s'arrête juste après avoir extrait les données de la base de données. Y a-t-il une astuce qui me manque ou un paramètre à modifier? Vous trouverez ci-dessous la partie du code que j'ai ajoutée à la requête de la base de données SQL et qui fonctionne par intermittence.
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 )}
)
Re : Comment créer un script unique pour obtenir des données de la base de données, puis effectuer mon analyse avec cet ensemble de donnéesJe n'ai pas de base de données pour tester cela, mais je pense que cette méthodologie devrait fonctionner.
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(.............);