10.3.6. ヒューマンタスクサービスの開始

プロセスエンジンと通信する、独立したヒューマンタスクサービスを使用する場合、サービスを開始する必要があります。
org.jbpm.task.service.TaskService taskService = new org.jbpm.task.service.TaskService(
  emf, SystemEventListenerFactory.getSystemEventListener());

TaskServiceSession taskServiceSession = taskService.createSession();

//adding users to TaskServiceSession
taskServiceSession.addUser(new User("Administrator"));
taskServiceSession.addUser(new User("jsmith"));
	    	    
LocalTaskService localTaskService = new LocalTaskService( taskService );
humanTaskHandler = new SyncWSHumanTaskHandler( localTaskService, ksession );
humanTaskHandler.setLocal( true );
humanTaskHandler.connect();
ksession.getWorkItemManager().registerWorkItemHandler( "Human Task", humanTaskHandler );	

//using HT API ...
List<TaskSummary> tasks = localTaskService.getTasksAssignedAsPotentialOwner("jsmith", "en-US");
タスク管理のコンポーネントは、Java Persistence API (JPA) を使用して永続的にタスク情報をすべて格納します。永続性を設定するには、persistence.xml 設定ファイルを編集します。
以下のサンプルは、タスク管理のコンポーネントを hibernate と in-memory H2 データベースで使用する方法について示しています。ただし、実稼働環境では H2 データベースはサポートされていない点に注意してください。以下は例示のみを目的としており、 hibernate.hbm2ddl.auto プロパティの値として create を指定すると、サーバーを再起動するたびに jBPM スキーマが再作成されていまいます。インデックスは 2 回以上作成するべきではなく、この機能は無効する必要があります。スキーマを作成した後に hibernate.hbm2ddl.auto プロパティの部分にコメントタグを設定してください。
<!-- <property name="hibernate.hbm2ddl.auto" value="create" /> -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><persistence
    version="1.0"
    xsi:schemaLocation=
      "http://java.sun.com/xml/ns/persistence
       http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
       http://java.sun.com/xml/ns/persistence/orm
       http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
    xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/persistence"><persistence-unit name="org.jbpm.task"><provider>org.hibernate.ejb.HibernatePersistence</provider><class>org.jbpm.task.Attachment</class><class>org.jbpm.task.Content</class><class>org.jbpm.task.BooleanExpression</class><class>org.jbpm.task.Comment</class><class>org.jbpm.task.Deadline</class><class>org.jbpm.task.Comment</class><class>org.jbpm.task.Deadline</class><class>org.jbpm.task.Delegation</class><class>org.jbpm.task.Escalation</class><class>org.jbpm.task.Group</class><class>org.jbpm.task.I18NText</class><class>org.jbpm.task.Notification</class><class>org.jbpm.task.EmailNotification</class><class>org.jbpm.task.EmailNotificationHeader</class><class>org.jbpm.task.PeopleAssignments</class><class>org.jbpm.task.Reassignment</class><class>org.jbpm.task.Status</class><class>org.jbpm.task.Task</class><class>org.jbpm.task.TaskData</class><class>org.jbpm.task.SubTasksStrategy</class><class>org.jbpm.task.OnParentAbortAllSubTasksEndStrategy</class><class>org.jbpm.task.OnAllSubTasksEndParentEndStrategy</class><class>org.jbpm.task.User</class><properties><property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/><property name="hibernate.connection.driver_class" value="org.h2.Driver"/><property name="hibernate.connection.url" value="jdbc:h2:mem:mydb" /><property name="hibernate.connection.username" value="sa"/><property name="hibernate.connection.password" value="sasa"/><property name="hibernate.connection.autocommit" value="false" /><property name="hibernate.max_fetch_depth" value="3"/><property name="hibernate.hbm2ddl.auto" value="create" /><property name="hibernate.show_sql" value="true" /></properties></persistence-unit></persistence>