ServletContext
mgr_name isUrgent approval
申請確定 Start-state
End-state 品目入力
承認
上司選択
承認依頼のメール送信
承認結果のメール送信
<task-node>
<task-node>
<task-node>
item price
SelectMgr ActionHandler
SendMail ActionHandler
SendMail ActionHandler UserAssignment
Handler
UserAssignment Handler
MgrAssignment Handler トークン
トークン
user1
user1
manager1
jBPMDB
EIS
ログイン
ログアウト
jbpmContext
jbpmContext 取得 プロセスインスタンスの生成 トークンを取得
トークンにシグナルを送る プロセスインスタンスを保存 jbpmContext クローズ プロセス変数user_nameに ユーザ名user1を登録
• user1に割り当てられたタ スクを取得
•申請情報を入力
• user1に割り当てられた タスクを取得
•申請依頼をする上司を選択
•申請が緊急かどうかを選択 jbpmContext 取得
•タスクを終了させる
•プロセスインスタンスを保存
•jbpmContext クローズ jbpmContext 取得
•タスクを終了させる
•プロセスインスタンスを保存
•jbpmContext クローズ
user_name
HttpSession
ログイン
履歴 申請
次へ
申請確定
ログアウト HTTPリクエスト/
レスポンス
Step1 :
Step2 :
Step3 :
Servlet Filter
緊急の場合 メール送信
Step3 : 購買品目情報を入力
システム制御フロー
JBoss AS
Tomcat S2Container
JbpmContextFilter
JBoss jBPM
Hib ernate
HTML
S2ContainerFilter
Action
クラスLogic
クラス プロセス
S2JSF
ActionHandler
JbpmConfiguration
user_name mgr_name isUrgentapproval
申請確定 Start-state
End-state 品目入力
承認 item price
token user1
Step3 : 購買品目 情報を入力 次へ
品目入力
jbpmContext
の生成UserAction#input()
BpmLogic#input()
jbpmContext
のクローズ戻り値
user_confirm HTTP
リクエストuser_input.html
HTTP
レスポンス user_confirm.html品目と値段を
DTO
に設定Myfaces
JSF
user_confirm
戻り値の を 元に遷移先画面付録
参照資料
JBoss jBPM
のホームページhttp://www.jbpm.org/index.html JBoss jBPM
のドキュメントのページhttp://www.jbpm.org/docs.html JBoss jBPM
のユーザフォーラムhttp://sourceforge.net/forum/forum.php?forum_id=240085 JBoss jBPM
のWiki
http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmWiki JBoss jBPM getting started guide
http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmGettingStarted JBoss jBPM API(Javadoc)
http://docs.jboss.com/jbpm/v3/javadoc/
67 平成19年4月25日
日本ヒューレット・パッカード株式会社の
JBoss/
オープンソースに関連するURL JBoss
のページhttp://www.hp.com/jp/jboss/
Open Source & Linux
のページhttp://www.hp.com/jp/linux/
サンプル Web アプリケーション詳細
69 平成19年4月25日
サンプル
Web
アプリケーション:
プロセス定義の取得•
http://localhost:8080/jb pm/
•
"cookie monster"
で"Log In"
•
home.jsp
<h4>Start New Process Execution</h4>
<h:dataTable value="#{homeBean.latestProcessDefinitions}" var="processDefinition"...>
<f:facet name="header">
<h:outputText value="Start Process Link" />
</f:facet>
<h:commandLink action="#{homeBean.startProcessInstance}">
<f:param name="processDefinitionId" value="#{processDefinition.id}"/>
<h:outputTextvalue="#{processDefinition.taskMgmtDefinition.startTask.name}"/>
</h:commandLink>
</h:column>
...
<h:outputTextvalue="#{processDefinition.name}"/>
...
<h:outputTextvalue="#{processDefinition.version}"/>
home.jsp
抜粋サンプル
Web
アプリケーション:
プロセス定義の取得(HomeBean)
HomeBean.java
抜粋public class HomeBean { ...
JbpmContext jbpmContext;
GraphSession graphSession;
TaskMgmtSession taskMgmtSession;
public HomeBean() {
this.jbpmContext = JbpmContext.getCurrentJbpmContext();
this.graphSession = jbpmContext.getGraphSession();
this.taskMgmtSession = jbpmContext.getTaskMgmtSession();
} ...
public List getLatestProcessDefinitions() {
return graphSession.findLatestProcessDefinitions();
}
...
71 平成19年4月25日
サンプル
Web
アプリケーション:
プロセスインスタンスの生成•
"create new web sale order"
をクリック•
task.jsp
へ遷移する<h4>Start New Process Execution</h4>
<h:dataTable value="#{homeBean.latestProcessDefinitions}" var="processDefinition" ...>
<f:facet name="header">
<h:outputText value="Start Process Link" />
</f:facet>
<h:commandLink action="#{homeBean.startProcessInstance}">
<f:param name="processDefinitionId" value="#{processDefinition.id}"/>
<h:outputText value="#{processDefinition.taskMgmtDefinition.startTask.name}" />
</h:commandLink>
</h:column>
クリック
home.jsp
抜粋サンプル
Web
アプリケーション:
プロセスインスタンスの生成