以下のトピックは、処理フローで利用できるあらゆる各種統計の参照ページとして記載されています。特定の統計で収集される情報の種類が不明の場合は、このトピックで参照できます。また、統計値、統計のさまざまな使用方法、統計に関連するコマンドについても説明します。
処理フローのあらゆるアクティビティは、次の2つの統計を保持します。
さらに、トークンを待機させる可能性のあるアクティビティは、次の2つの統計を保持します。
[バッチ]アクティビティでは、さらに多くの統計が保持されます。このような統計については、「バッチ統計」ページで確認できます。
共有アセット(Resourceオブジェクト、Listオブジェクト、Zoneオブジェクト)は、以下に説明するとおり、少なくとも8つの統計を保持します。
これらの統計についての詳細とその他の統計については、各「共有アセット」の参照ページで確認できます。
次のとおり、各統計では4つの値にアクセスできます。
さらに、各統計は次に示す3つのタイプのいずれかに分類できます。
イベントの詳細については、「イベントリスニング」ページを参照してください。
[処理フロー]アクティビティには、以下のイベントがあります。
[エントリ時]は、トークンがアクティビティに到着したときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
インスタンス | オブジェクト | トークンが属する処理フローインスタンス |
アクティビティ | ツリーノード | トークンが到着したアクティビティ |
トークン | トークン | アクティビティに入ろうとしているトークン |
[終了時]は、トークンがアクティビティを離れるときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
インスタンス | オブジェクト | トークンが属する処理フローインスタンス |
アクティビティ | ツリーノード | トークンが離れようとしているアクティビティ |
トークン | トークン | アクティビティを離れようとしているトークン |
通常、[手動リリース時]はトークンクラスのリリース方法や[トークンをリリース]アクティビティを使用して、トークンが早期にアクティビティから離れるよう強制されるときに起動します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
インスタンス | オブジェクト | トークンが属する処理フローインスタンス |
アクティビティ | ツリーノード | トークンが離れようとしているアクティビティ |
トークン | トークン | アクティビティを離れようとしているトークン |
目的地 | バリアント | トークンが離れようとしている接続 |
アクティビティのコンテンツが変更されるたびにこのイベントが起動します。これは、トークンがアクティビティに入るときや出るときに発生します。すべてのアクティビティにこのイベントがあるわけではないことに注意してください。
このイベントにはパラメータがありません。
トークンがアクティビティに入ると、このイベントが起動します。
このイベントにはパラメータがありません。
トークンがアクティビティを離れると、このイベントが起動します。
このイベントにはパラメータがありません。
[出力変更時]イベントの直後にトークンがアクティビティを離れると、このイベントが起動します。すべてのアクティビティにこのイベントがあるわけではないことに注意してください。
このイベントにはパラメータがありません。
処理フローでは、イベントをリッスンすることに加え、統計をリッスンできます。このようなイベントは、[値変更]イベントと呼ばれ、統計値が変更されるたびに起動します。
getstat
コマンドを使用すると、FlexScriptでアクティビティや共有アセットからデータを取得できます。このコマンドには、オブジェクト、統計名、値フラグが必要です。次の例は、このコマンドの使用方法を示しています。
//これは、大多数の処理フローのオブジェクトから得られるコードのヘッダーです。
//説明のためにコメントをここに追加します。
treenode current = param(1); //これはインスタンスで、次を所有するオブジェクトを指します
処理フロー
treenode activity = param(2); //これはアクティビティか共有アセットです
treenode token = param(3);
treenode processFlow = ownerobject(activity);
//ここにコードを入力します。次のコードは、平均コンテンツを取得します
double avgContent = getstat(
//getstatには次のうち4から6のパラメータが必要です。
activity, //1.統計を有するオブジェクト(共有アセットかアクティビティ)
"Content", //2.統計の名前
STAT_AVERAGE, //3.統計からの望ましい値(STAT_CURRENT、STAT_MIN、STAT_MAXでも可)
//4.任意のパラメータのインスタンスオブジェクト(通常は現在)
//5.取得するデータを決定するための追加パラメータ
//6.取得するデータを決定するための追加パラメータ
);
たとえば、[遅延]アクティビティの現在のコンテンツを取得するには、次のコマンドを使用します。
getstat(delayActivity, "Content", STAT_CURRENT)
[処理フロー]アクティビティの出力を取得するには、以下を使用します。
getstat(activity, "Input", STAT_CURRENT)
getstat
コマンドでアクセスできる統計はすべて追跡変数を使用するため、全統計の現在値、最小値、最大値、平均値にアクセスできます。3番目のパラメータであるフラグを使用して、必要な値を指定します。たとえば、アクティビティの平均滞在時間を取得するには、以下を使用します。
getstat(activity, "Staytime", STAT_AVERAGE)
統計名は非常に重要である点に注意してください。名前は、オブジェクトが保持する統計の名前と一致する必要があります。たとえば、ソースアクティビティは「コンテンツ」統計を保持しないでください。この場合、getstat
コマンドは0を返します。
[タスク実行者]や[固定リソース処理フロー]内のアクティビティの統計を取得する場合は、getstat
コマンドに4番目のパラメータを付与する必要があります。この4番目のパラメータは、インスタンスオブジェクトの名前です。たとえば、Processor3が処理フローに接続されており、そのフローから統計を取得する場合は、次のようなものが必要です。
getstat(activity, "Output", STAT_CURRENT, "Processor3")
一般処理フロー、またはインスタンスを1つのみ持つ処理フローの場合、このパラメータは無視されます。
[リスト]アクティビティは、リスト全体の統計を保持します。
同じ統計は、リストのパーティションごとに保持されます。統計名の前に「Partition」という単語を付けてください。
たとえば、次の2行のコードは、リストと特定のパーティションのエントリ数を取得します。
getstat(globallist("list"), "Content", STAT_CURRENT);
getstat(globallist("list"), "PartitionContent", STAT_CURRENT, 0, 1);
4番目のパラメータである0は、一般的な処理フローの場合は無視されるインスタンスオブジェクトのパラメータです。5番目はパーティションIDです。返される値はその特定のパーティションの統計値です。
パーティションが空の場合、リストはデフォルトで破棄される点に注意してください。この場合、そのパーティションの統計もクリアされます。[リストのプロパティ]ウィンドウの[デッドパーティションを保持]チェックボックスをオンにすると、これを防ぐことができます。このオプションを使用すると、多くのパーティションで大量のメモリを使用する可能性があるため注意してください。
[ゾーン]は、他の共有アセットが持つ統計を保持しますが、各サブセットの統計も保持します。たとえば、「SmallItems」というゾーンにサブセットがある場合、そのサブセットのコンテンツを次のように取得できます。
getstat(zone, "SubsetContent", STAT_CURRENT, 0, "SmallItems")
この場合も、4番目のパラメータはインスタンスパラメータであり、一般処理フローでは無視されます。5番目は統計を必要とするサブセットの名前です。
サブセット計算のデータを取得することもできます。次のように、必要な計算の名前を6番目のパラメータとして指定します。
getstat(zone, "CalculationInput", STAT_CURRENT, 0, "SmallItems", "TotalWeight")