LoginSignup
4
1

More than 1 year has passed since last update.

ワークフローエンジンActivitiで詰まった話

Posted at

目次

1. まずActivitiとは
2. 今回詰まったこと
3. 解決法

1. まずActivitiとは

ActivitiとはJavaで実装されたオープンソースのワークフローエンジンです。
仕事や業務の流れを制御してくれて、フローを簡単に構築してくれる便利なツールです。
フリーで提供されているので、人気も高いそうです!

2. 今回詰まったこと

Activitiを構成するXMLファイルにて、ワークフローのタスク名のラベル表示を変更したのですが、修正後に画面をF5で更新しても変更が全く反映されず。。。
修正箇所は絶対に合っているのになぜ。。。。

★修正箇所★
activiti:candidateGroups="作業内容承認"

activiti:candidateGroups="作業内容\n(承認)"

<userTask id="作業内容承認" name="承認" activiti:candidateUsers="${CeoRole}" activiti:candidateGroups="作業内容\n(承認)" activiti:assignee="${assignee}">
      <extensionElements>
          <activiti:formProperty id="" type="enum" variable="action" required="true">
              <activiti:value id="back" name="差戻し"></activiti:value>
              <activiti:value id="approve" name="承認"></activiti:value>
              </activiti:formProperty>
      </extensionElements>
      <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${CeoRole}" activiti:elementVariable="assignee">
          <completionCondition>${action!='approve'}</completionCondition>
      </multiInstanceLoopCharacteristics>
</userTask>

3. 解決法

画面更新ではなく、ワークフローを新たに申請しなおすことで、変更が反映されました!!!

というのも、まずActivitiが提供するワークフローの仕組みを理解できていませんでした。。
Activitiを使用して作成したワークフローは、
ワークフローを開始(申請)すると、その時点でのXMLの内容が"ACT_xxxx"というテーブルにそのまま保存されます。
(このテーブルは1つの申請に対して1つ作成されます。)
一度申請したものはこのテーブルの中のXMLの内容をもとにフローが進んでいくため、
画面だけ更新しても変更が反映されなかったということでした。

なので、新たに申請することで、最新状態のXMLの内容でワークフローを進めることができたということです!

単純なことでしたが、もし誰かのお役に立てれば嬉しいです!
読んでいただきありがとうございましたm(__)m

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1