TaskSequence

説明

TaskExecuterによって行われる一連のタスクを表すクラスです。

タスクシーケンスの詳細については、「タスクシーケンスの概念」を参照してください。

プロパティ

currentTask 実行完了していないタスクシーケンスの最初のタスクにアクセスします。このタスクは現在実行中であるか、タスクシーケンス自体が実行待機中のために実行待ちになっている場合があります。
labelProperties 独自の名前付きプロパティを使用して、ラベル値を取得または設定します。
preempt タスクシーケンスのプリエンプト値を取得/設定します。
priority タスクシーケンスの優先度の値を取得/設定します。
rank タスクシーケンスキューにあるタスクシーケンスのランクを取得/設定します。
tasks タスクシーケンスの一連のタスクにアクセスします。このメンバーはTaskSequence.Taskの配列のように使用できます。

メソッド

addTask タスクシーケンスに新規タスクを追加します。
dispatch タスクシーケンスを送付します。
finish タスクシーケンスを終了としてマークします。
move タスクシーケンスを新規ディスパッチャーのタスクシーケンスキューに移動します。

静的メソッド

create 新しいタスクシーケンスを作成します。

詳細

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

TaskSequence.currentTask

readonly TaskSequence.Task currentTask

説明

実行完了していないタスクシーケンスの最初のタスクにアクセスします。このタスクは現在実行中であるか、タスクシーケンス自体が実行待機中のために実行待ちになっている場合があります。


TaskExecuter op = Model.find("Operator1");
TaskSequence ts = op.taskSequences[1];
int curTaskType = ts.currentTask.type;
...
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.labelProperties

Variant labelProperties

説明

独自の名前付きプロパティを使用して、ラベル値を取得または設定します。

TaskSequenceクラスを使用して、タスクシーケンス上のラベルに適用されるカスタム名付きのプロパティを取得および設定できます。たとえば、タスクシーケンス「ts」の「MyLabel」という名前のラベルの値を5に設定するには、次のコードを使用します。

ts.MyLabel = 5;

これにより、ラベルの値は5に設定されます。その名前のラベルが存在しない場合、オブジェクトのラベルに追加されます。

tsの「MyLabel」ラベルに格納されている値を返すには、次のコードを実行します。

return ts.MyLabel;

このコードはtreenodeクラスの動的プロパティにおけるメカニズムと同じように機能します。詳細については、treenode.labelPropertiesを参照してください。

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

TaskSequence.preempt

int preempt

説明

タスクシーケンスのプリエンプト値を取得/設定します。


TaskExecuter op = Model.find("Operator1");
TaskSequence ts = op.taskSequences[1];
int preempt = ts.preempt;
...
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.priority

double priority

説明

タスクシーケンスの優先度の値を取得/設定します。


TaskExecuter op = Model.find("Operator1");
TaskSequence ts = op.taskSequences[1];
double priority = ts.priority;
...
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.rank

int rank

説明

タスクシーケンスキューにあるタスクシーケンスのランクを取得/設定します。


TaskExecuter op = Model.find("Operator1");
TaskSequence ts = op.taskSequences[1];
int tsRank = ts.rank; // should be 1
...
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.tasks

readonly tasks

説明

タスクシーケンスの一連のタスクにアクセスします。このメンバーはTaskSequence.Taskの配列のように使用できます。


TaskExecuter op = Model.find("Operator1");
TaskSequence ts = op.taskSequences[1];
int numTasks = ts.tasks.length;
for (int i = 1; i <= numTasks; i++) {
  Task task = ts.tasks[i];
}
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.addTask()

TaskSequence.Task addTask( int type , treenode involved1 = null , treenode involved2 = null , Variant var1 = nullvar , Variant var2 = nullvar , Variant var3 = nullvar , Variant var4 = nullvar )

パラメータ

involved1 タスクに関連する最初のオブジェクトです。つまり、このオブジェクトはタスクタイプに依存しています。詳細については、「タスクタイプクイックリファレンス」を参照してください。
involved2 タスクに関連する2番目のオブジェクトです。つまり、このオブジェクトはタスクタイプに依存しています。詳細については、「タスクタイプクイックリファレンス」を参照してください。
var1 タスクにおける最初の変数です。つまり、このオブジェクトはタスクタイプに依存しています。詳細については、「タスクタイプクイックリファレンス」を参照してください。
var2 タスクにおける2番目の変数です。つまり、このオブジェクトはタスクタイプに依存しています。詳細については、「タスクタイプクイックリファレンス」を参照してください。
var3 タスクにおける3番目の変数です。つまり、このオブジェクトはタスクタイプに依存しています。詳細については、「タスクタイプクイックリファレンス」を参照してください。
var4 タスクにおける4番目の変数です。つまり、このオブジェクトはタスクタイプに依存しています。詳細については、「タスクタイプクイックリファレンス」を参照してください。

戻り値

TaskSequence.Task 追加タスクです。

説明

タスクシーケンスに新規タスクを追加します。


TaskSequence ts = TaskSequence.create(Model.find("Operator1"));
ts.addTask(TASKTYPE_LOAD, item, current);
...
ts.dispatch();
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.dispatch()

void dispatch( )

説明

タスクシーケンスを送付します。

このメソッドを呼び出すと、タスクシーケンスの受け取りおよび送付を必要に応じて行うためのDispatcherロジックを起動します。タスクシーケンスが作成されたオブジェクトがタスクエグゼキューターでありそのタスクエグゼキューターが他のタスクシーケンスを実行していない場合、オブジェクトがタスクシーケンス実行を即座に開始します。


TaskSequence ts = TaskSequence.create(Model.find("Operator1"));
ts.addTask(TASKTYPE_LOAD, item, current);
...
ts.dispatch();
      
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

TaskSequence.finish()

void finish( )

説明

タスクシーケンスを終了としてマークします。

このメソッドは、タスクシーケンスのwaitForFinishState値を0にリセットし、タスクシーケンスがタスク追加の待機中である場合には、そのタスクシーケンスを終了します。このメソッドの呼び出しは、ゼロ以外のwaitForFinishState値をTaskSequence.create()に渡したことがある場合にのみ必要になります。

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

TaskSequence.move()

void move( Dispatcher dispatcher )

パラメータ

dispatcher タスクシーケンスの移動先となるディスパッチャーです。

説明

タスクシーケンスを新規ディスパッチャーのタスクシーケンスキューに移動します。

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

TaskSequence.create()

static TaskSequence create( treenode obj , double priority = 0 , int preempt = 0 , int waitForFinishState = 0 )

パラメータ

obj タスクシーケンスを作成するオブジェクトを指定します。通常、このパラメータはディスパッチャーまたはタスクエグゼキューターにする必要があります。そのような場合、タスクシーケンスがそのオブジェクトのタスクシーケンスキューに作成されます。オブジェクトはディスパッチャーおよびタスクエグゼキューター以外である場合、タスクシーケンスがそのオブジェクト/ノードのサブノードとして作成されます。
priority オプション。タスクシーケンス値の優先順位を定義します。
preempt オプション。タスクシーケンスのプリエンプト値を定義します。ゼロ以外の場合は、次の値のいずれか1つである必要があります。PREEMPT_ONLY、PREEMPT_AND_ABORT_ACTIVE、またはPREEMPT_AND_ABORT_ALL。
waitForFinishState オプション。タスクシーケンスが一連のタスクの最後に到達した際に、別タスクを追加することなく入る状態を定義します。0(デフォルト)を渡した場合、最後のタスクに到達したタスクシーケンスは単に終了して破棄されます。ゼロ以外の場合、タスクシーケンスはTASKTYPE_WAITFORTASKSタスクを追加し、続けて定義された状態に入り、タスクの追加を待ちます。ここでゼロ以外の値を渡した場合、後ほどTaskSequence.finish()を呼び出してタスクシーケンスに新規タスクを待つ必要がないことを通知する必要があります。

戻り値

TaskSequence 作成されたタスクシーケンスです。

説明

新しいタスクシーケンスを作成します。


TaskSequence ts = TaskSequence.create(Model.find("Operator1"));
ts.addTask(TASKTYPE_LOAD, item, current);
...
ts.dispatch();