定義式の並列実行
同じワークフロープロセス内で、変数の値を設定する 2 つの定義式ロボットを同時に実行できます。これを定義式の並列実行と呼びます。
以下のワークフローは並列実行の例を示しています。ロボット ExprRobot1 は変数 1 の値を修正し、ExprRobot2 は変数 2 の値を修正します。ExprRobot1 が先に実行した場合、変数 1 が定義済みの値を受け取ります。ExprRobot2 が実行すると、変数 2 が定義済みの値を受け取り、そのワークフロープロセスは終了します。
この例で、ExprRobot1 と ExprRobot2 の両方の定義式ロボットが同じ変数を修正するよう設定されている場合、先に実行したロボットによって行われた変更は上書きされます。
並列実行ワークフローは、ある定義式によって修正されたローカル変数値だけがプロセスレベルの変数に適用されるように設定されています。このため、ある定義式によって変数に割り当てられた値は、その変数が明示的に別の定義式によって修正されないかぎり、上書きされません。
|
このチェックは、定義式ロボットの定義式、同期ロボットのルーティング定義式、およびブロック内の while 定義式のみに適用されます。これはプロセスレベルに適用されるローカル関数が「起動ポイント」と「コピー先」の設定によって決まるアクティビティにおける定義式の動作には影響しません。
|
変数をプロセスレベルに適用する場合、その値が修正されるかどうかに関係なく、定義式で setDirty(self,variable_name) メソッドを使用します。このメソッドは 2 つの変数 (含まれているプロセスへの参照および適用される変数の名前) をとります。
|
新規作成されたワークフローテンプレートだけが定義式の並列実行をサポートします。以前のバージョンの Windchill で作成されたテンプレートについては、定義式ファイルを再生成する必要があります。このためには、古い定義式ファイルをパス Windchill\codebase\wt\workflow\expr から削除し、ワークフローテンプレートで該当する定義式ロボットの「定義式」タブにある「構文チェック」をクリックします。
|