10.2.2. 動的なヒューマンタスクプロパティ

name、actorID、priority などのプロパティは、プロセスの作成時にユーザータスクノードに追加することができますが、ヒューマンタスクのプロパティによっては、このノードが所属するプロセスインスタンスの別の部分からのデータに依存している場合があるため、ヒューマンタスクのプロパティを動的に追加する必要性がでてきます。ヒューマンタスクのプロパティを動的にする方法は 2 種類あります。
#{expression}
String 型のタスクパラメーターの場合、#{expression} を使用して文字列に任意の式の値を埋め込むことができます。例えば、タスクに関連するコメントが "Please review this request from user #{user}" であったとします (この user はプロセス内の変数です)。 #{user} は、特定のプロセスインスタンスの実際のユーザー名で置き換えられます。#{expression} の値は、ヒューマンタスクが作成されると解決され、 #{...} は解決後の toString() 値で置き換えられます。この指揮は、単に変数の名前 (この場合変数の値で解決される) ですが、より高度な MVEL 式も利用可能です。例えば、#{person.name.firstname} を式として使用することもできます。この方法は String パラメーターにのみ仕様することができる点に注意してください。その他のパラメーターは、パラメーターマッピングを使用して、そのパラメーターに値をマッピングする必要があります。
パラメーターマッピング
プロセス変数の値 (または変数から取得した値) はタスクパラメーターにマッピングすることができます。例えば、プロセス内の変数が ID となっているユーザーにタスクを割り当てる必要がある場合、このタスクは ID 変数をパラメーター Actorid にマッピングすることで完了できるようになります。