6.5.4. スクリプト

スクリプトは、 Beanshell スクリプトを実行するアクションです (Beanshell の詳細は、 http://www.beanshell.org/ を参照してください)。 デフォルトでは、 すべてのプロセス変数をスクリプト変数として使用できますが、 スクリプト変数はプロセス変数には記述できません。 次のスクリプト変数を使用できます。
  • executionContext
  • token
  • node
  • task
  • taskInstance
<process-definition>
  <event type="node-enter">
    <script>
      System.out.println("this script is entering node "+node);
    </script>
  </event>
  ...
</process-definition>
変数をスクリプトにロードしたり保存するデフォルトの動作をカスタマイズするには、 variable 要素をスクリプトのサブ要素として使用します。 この場合、 スクリプト表現は、 スクリプトのサブ要素 expression に置かなければいけません。
<process-definition>
  <event type="process-end">
    <script>
      <expression>
        a = b + c;
      </expression>
      <variable name='XXX' access='write' mapped-name='a' />
      <variable name='YYY' access='read' mapped-name='b' />
      <variable name='ZZZ' access='read' mapped-name='c' />
    </script>
  </event>
  ...
</process-definition>
スクリプトが開始する前に、 プロセス変数 YYYZZZ は、 それぞれスクリプト変数 bc として、 スクリプトで使用できるようになります。 スクリプトが終了後、 スクリプト変数 a の値は、 プロセス変数 XXX に保存されます。
変数の access 属性に read が含まれる場合、 スクリプト評価の前にプロセス変数はスクリプト変数として読み込まれます。 access属性にwrite が含まれる場合、 スクリプト評価の後にプロセス変数はスクリプト変数として保存されます。 mapped-name 属性は、スクリプト中で別名でプロセス変数を使用可能にします。 プロセス変数の名前に空白文字や無効な文字が含まれている場合にこの属性を使用します。