Storage.System
説明
ストレージシステムを表すクラス。
ストレージシステムの使用方法の詳細については、「ストレージシステム」のトピックを参照してください。プロパティ
storageObjects | モデル内のすべてのストレージオブジェクトに、Storage.Objectの配列としてアクセスします。 |
メソッド
findItem | 指定されたクエリの1つに一致するアイテムを見つけます。 |
findSlot | 指定されたクエリの1つに一致するスロットを見つけます。 |
getSlot | アドレスを指定してスロットを取得します。 |
queryItems | クエリに一致するすべてのアイテムを検索します。 |
querySlots | クエリに一致するすべてのスロットを検索します。 |
詳細
Storage.System.storageObjects
readonly storageObjects
説明
モデル内のすべてのストレージオブジェクトに、Storage.Objectの配列としてアクセスします。
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の評価にコンパイルされるため、インデックス付けできません。このため、直接ラベルにアクセスする方が好ましい方法です。
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」キーワードの使用を避け、スロットのラベルに必要な値を格納して、インデックス付けされたルックアップを利用できるようにする方が有利なことがあります。
Storage.System.getSlot()
Storage.Slot getSlot( string address ) |
パラメータ
address | アドレス方式の1つで解釈可能なアドレス。 |
戻り値
Storage.Slot |
説明
アドレスを指定してスロットを取得します。
このメソッドは、各アドレス方式に対してアドレスを比較します。一致する場合、このメソッドは次に、その方式を使用してスロットの解決を試みます。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状態のアイテムのみを考慮します。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値の配列。 |
説明
クエリに一致するすべてのスロットを検索します。
このメソッドは、格納可能スロットのみを考慮します。