Storage.System

説明

ストレージシステムを表すクラス。

ストレージシステムの使用方法の詳細については、「ストレージシステム」のトピックを参照してください。

プロパティ

storageObjects モデル内のすべてのストレージオブジェクトに、Storage.Objectの配列としてアクセスします。

メソッド

findItem 指定されたクエリの1つに一致するアイテムを見つけます。
findSlot 指定されたクエリの1つに一致するスロットを見つけます。
getSlot アドレスを指定してスロットを取得します。
queryItems クエリに一致するすべてのアイテムを検索します。
querySlots クエリに一致するすべてのスロットを検索します。

詳細

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Storage.System.storageObjects

readonly storageObjects

説明

モデル内のすべてのストレージオブジェクトに、Storage.Objectの配列としてアクセスします。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Storage.System.findItem()

Storage.Slot.Item findItem( Variant queries , int flags )
Storage.Slot.Item findItem( Variant queries , int flags , Variant $1 )
Storage.Slot.Item findItem( Variant queries , int flags , Variant $1 , Variant $2 )
Storage.Slot.Item findItem( Variant queries , int flags , Variant $1 , Variant $2 , Variant $3 )
Storage.Slot.Item findItem( Variant queries , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 )
Storage.Slot.Item findItem( Variant queries , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 , Variant $5 )

パラメータ

queries アイテムを見つけるため使用される1つ以上のクエリ。1つのクエリは文字列として渡すことができます。複数のクエリは配列として渡す必要があります。
flags ビットフィールドで、Storage.QueryFlagsの値を含むことができます。
$1~$5 渡される値で、クエリで参照できます。

戻り値

Storage.Slot.Item 最初に一致したスロットアイテムへの参照。検索が失敗した場合、この値は空です。

説明

指定されたクエリの1つに一致するアイテムを見つけます。

このメソッドは、一致するスロットアイテムが見つかるまで、各クエリを評価します。格納済みアイテムのみが検索されます。

「$」キーワード

クエリを構成するとき、値$1~$5を含めることができます。これらの値は、クエリで渡される追加パラメータと関連付けられています。

Storage.system.findItem("WHERE SKU = $1 AND Size = $2", 0, token.SKU, token.Size);

「item」キーワード

クエリのパーサーは、Storage.Slot.Itemの場合と同様に「item」を、評価対象のアイテムにアクセスする特別なキーワードと解釈します。これを使用して、クエリの一部として通常のFlexScript式を記述できます。

Storage.system.findItem("WHERE item.slot.SKU = $1", 0, token.SKU);

ラベル名へのアクセス

「item」キーワードと「$」キーワードを除いて、クエリに含まれる他のすべての値は、評価するフローアイテムのラベルと解釈されます。たとえば、Typeラベルの値が5のアイテムを検索するには、次のコードを使用します。

Storage.Slot.Item slotItem = Storage.system.findItem("WHERE Type = 5");

アイテムを仮想化する場合、それらのアイテムが保存するアイテムラベルのリストに含まれていることを確認する必要があります。

速度に関する考慮事項

ラベルを名前で直接評価するのと、「item」キーワード経由でアクセスするのとでは、結果に差はないことに注意してください。言い換えると、次に示す2つのクエリの結果は同じです(アイテムを仮想化しない限り)。

WHERE SKU = 5
WHERE item.item.SKU = 5

しかし、これら2つの式は実行速度が、特に大きなストレージシステムを検索する場合に異なります。SKUラベルに直接アクセス(最初のクエリ)すると、そのラベルがインデックス付けされていれば、インデックスによるルックアップが可能です。これに対して、「item.item.SKU」という表現は直接的なFlexScriptの評価にコンパイルされるため、インデックス付けできません。このため、直接ラベルにアクセスする方が好ましい方法です。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Storage.System.findSlot()

Storage.Slot findSlot( Variant queries , int flags )
Storage.Slot findSlot( Variant queries , int flags , Variant $1 )
Storage.Slot findSlot( Variant queries , int flags , Variant $1 , Variant $2 )
Storage.Slot findSlot( Variant queries , int flags , Variant $1 , Variant $2 , Variant $3 )
Storage.Slot findSlot( Variant queries , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 )
Storage.Slot findSlot( Variant queries , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 , Variant $5 )

パラメータ

queries スロットを見つけるため使用される1つ以上のクエリ。1つのクエリは文字列として渡すことができます。複数のクエリは配列として渡す必要があります。
flags ビットフィールドで、Storage.QueryFlagsの値を含むことができます。
$1~$5 渡される値で、クエリで参照できます。

戻り値

Storage.Slot 最初に一致したスロットへの参照。検索が失敗した場合、この値は空です。

説明

指定されたクエリの1つに一致するスロットを見つけます。

このメソッドは、一致するスロットが見つかるまで、各クエリを評価します。格納可能スロットのみが検索されます。

「$」キーワード

クエリを構成するとき、値$1~$5を含めることができます。これらの値は、クエリで渡される追加パラメータと関連付けられています。

Storage.system.findSlot("WHERE SKU = $1 AND Size = $2", 0, token.SKU, token.Size);

「slot」キーワード

クエリのパーサーは、Storage.Slotの場合と同様に「slot」を、評価対象のスロットにアクセスする特別なキーワードと解釈します。これを使用して、クエリの一部として通常のFlexScript式を記述できます。

Storage.system.findItem("WHERE slot.hasSpace($1)", 0, token.Item);

ラベル名へのアクセス

「slotキーワードと「$」キーワードを除いて、クエリに含まれる他のすべての値は、評価するスロットのラベルと解釈されます。たとえば、Typeラベルの値が5のスロットを検索するには、次のコードを使用します。

Storage.Slot.Item slotItem = Storage.system.findItem("WHERE Type = 5");

速度に関する考慮事項

ラベルを名前で直接評価するのと、「slot」キーワード経由でアクセスするのとでは、結果に差はないことに注意してください。言い換えれば、次に示す2つのクエリの結果は同じです。

WHERE SKU = 5
WHERE slot.SKU = 5

しかし、これら2つの式は実行速度が、特に大きなストレージシステムを検索する場合に異なります。SKUラベルに直接アクセス(最初のクエリ)すると、そのラベルがインデックス付けされていれば、インデックスによるルックアップが可能です。これに対して、「slot.SKU」という表現は直接的なFlexScriptの評価にコンパイルされるため、インデックス付けできません。このため、直接ラベルにアクセスする方が好ましい方法です。実際に、一部の例では「slot」キーワードの使用を避け、スロットのラベルに必要な値を格納して、インデックス付けされたルックアップを利用できるようにする方が有利なことがあります。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Storage.System.getSlot()

Storage.Slot getSlot( string address )

パラメータ

address アドレス方式の1つで解釈可能なアドレス。

戻り値

Storage.Slot

説明

アドレスを指定してスロットを取得します。

このメソッドは、各アドレス方式に対してアドレスを比較します。一致する場合、このメソッドは次に、その方式を使用してスロットの解決を試みます。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Storage.System.queryItems()

Variant queryItems( string query , int flags )
Variant queryItems( string query , int flags , Variant $1 )
Variant queryItems( string query , int flags , Variant $1 , Variant $2 )
Variant queryItems( string query , int flags , Variant $1 , Variant $2 , Variant $3 )
Variant queryItems( string query , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 )
Variant queryItems( string query , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 , Variant $5 )

パラメータ

query 実行するクエリ。
flags ビットフィールドで、Storage.QueryFlagsの値を含むことができます。
$1~$5 クエリで参照可能な追加パラメータ。

戻り値

Variant Storage.Slot.Item値の配列。

説明

クエリに一致するすべてのアイテムを検索します。

このメソッドは、Stored状態のアイテムのみを考慮します。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Storage.System.querySlots()

Variant querySlots( string query , int flags )
Variant querySlots( string query , int flags , Variant $1 )
Variant querySlots( string query , int flags , Variant $1 , Variant $2 )
Variant querySlots( string query , int flags , Variant $1 , Variant $2 , Variant $3 )
Variant querySlots( string query , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 )
Variant querySlots( string query , int flags , Variant $1 , Variant $2 , Variant $3 , Variant $4 , Variant $5 )

パラメータ

query 実行するクエリ。
flags ビットフィールドで、Storage.QueryFlagsの値を含むことができます。
$1~$5 クエリで参照可能な追加パラメータ。

戻り値

Variant Storage.Slot値の配列。

説明

クエリに一致するすべてのスロットを検索します。

このメソッドは、格納可能スロットのみを考慮します。