こんにちは、みんな、
データベースからデータをプルし、さまざまなプロットを作成し、そのデータセットで分析を実行するJSLスクリプトを作成しようとしています。これまでは、データベースクエリビルダーを使用して必要なデータを取得できましたが、同じスクリプトを使用して必要なプロットを実行することはできません。JSLでのスクリプト作成は初めてなので、これは非常に困難な作業のようです。以下は、2つのデータベースからデータを取得してそれらをマージできるスクリプトです。ただし、このデータテーブルを保存してから、プロットを作成します。 クエリの前にObj参照を追加しようとすると、データが返されません。助言がありますか?
ベスト、
デブラジ
新しいSQLクエリ (
バージョン( 130 )、
接続(
「ODBC:DSN = Parametric 32; Description = Parametric 32; UID = GUEST; PWD =; APP = JMP; WSID = DEBRAJG-W10LT;」
)、
QueryName( 「LSO-THK」 )、
選択する(
カラム ( 「ウェーハ」 、 「t1」 )、
カラム ( "日付時刻" 、 「t1」 、数値フォーマット( 「m / d / yh:m:s」 、 「0」 、 "番号" 、 「」 ))、
カラム ( 「ロット」 、 「t1」 )、
カラム ( "テスター" 、 「t1」 )、
カラム ( 「レシピ」 、 「t1」 )、
カラム ( 「THICKNESS_1」 、 「t1」 )、
カラム ( 「THICKNESS_2」 、 「t1」 )、
カラム ( 「THICKNESS_3」 、 「t1」 )、
カラム ( 「THICKNESS_4」 、 「t1」 )、
カラム ( 「THICKNESS_5」 、 「t1」 )、
カラム ( 「THICKNESS_6」 、 「t1」 )、
カラム ( 「THICKNESS_7」 、 「t1」 )、
カラム ( 「THICKNESS_8」 、 「t1」 )、
カラム ( 「THICKNESS_9」 、 「t1」 )、
カラム ( 「THICKNESS_AVG」 、 「t1」 )、
カラム ( 「THICKNESS_STD」 、 「t1」 )、
カラム ( 「THICKNESS_MIN」 、 「t1」 )、
カラム ( 「THICKNESS_MAX」 、 「t1」 )、
カラム ( 「THICKNESS_RANGE」 、 「t1」 )、
カラム ( "操作" 、 「t2」 )、
カラム ( 「WIP_MSG_KEY」 、 「t2」 )、
カラム ( 「WIP_MSG_LEVEL3」 、 「t2」 )、
カラム ( 「WIP_MSG_LEVEL2」 、 「t2」 )、
カラム ( 「WIP_MSG_LEVEL1」 、 「t2」 )
)、
から(
テーブル( 「WFLSOTHK」 、スキーマ( 「dbo」 )、エイリアス( 「t1」 ))、
テーブル(
「FT_WF_HIST」 、
エイリアス( 「t3」 )、
参加する(
タイプ (左外側)、
EQ(
カラム (
"日付時刻" 、
「t1」 、
数値形式( 「m / d / yh:m:s」 、 「0」 、 "番号" 、 「」 )
)、
カラム (
"日付時刻" 、
「t3」 、
数値形式( 「m / d / yh:m:s」 、 「0」 、 "番号" 、 「」 )
)
)&EQ( カラム ( 「ロット」 、 「t1」 )、カラム ( 「ロット」 、 「t3」 ))
)
)、
テーブル(
「WF_MESA_WIP_MSG_HIST」 、
エイリアス( 「t2」 )、
参加する(
タイプ (左外側)、
EQ( カラム ( 「ウェーハ」 、 「t1」 )、カラム ( 「ウェーハ」 、 「t2」 ))&
EQ( カラム ( 「ロット」 、 「t1」 )、カラム ( 「ロット」 、 「t2」 ))
)
)
)、
どこ(
リスト(
カラム ( "操作" 、 「t2」 )、
{ 「O0TS」 }、
UI(SelectListFilter(ListBox、Base( 「カテゴリ」 )))
)
)
)>>実行
これをテストするためのデータベースはありませんが、この方法はうまくいくと思います。
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(.............);ジムに感謝します。うまくいきました。最初に>> runを実行した後、セミコロンがないと思っていたので、期待したとおりに動作しませんでした。
ただし、スクリプトは保存し、私が最初に配置したプロットを作成しました。次に、.csvファイルを削除して再実行すると、ファイルが再度保存されず、曲線がプロットされませんでした。断続的に動作しています。それはファイルを保存し、それからカーブを数回プロットしますが、他のほとんどのケースでは、データベースからデータをプルした後に停止します。これに欠けているトリックや変更が必要なパラメーターはありますか?以下は、SQLデータベースクエリに追加したコードの一部で、断続的に機能しています。
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 )}
)