任务与外部系统数据结合问题

matikak 2008-07-25
我发布出去了,我把action放出来
public class RemindAction implements ActionHandler {

private static final Log log = LogFactory.getLog(RemindAction.class);
/**
* get support data from enternal interface
*/
private static final long serialVersionUID = 1L;

private static final String username = "administrator";
private static int i = 0;
public void execute(ExecutionContext executionContext) throws Exception {

//get token
Token token = executionContext.getToken();  
//task manager instance
TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
//task node
TaskNode taskNode = (TaskNode) executionContext.getNode();
//task name
String taskName = executionContext.getTaskInstance().getName();
//task object
Task task = taskNode.getTask(taskName);
for(int j=0;j<10;j++){
i++;
}
if(i==9){
//create tast
tmi.createTaskInstance(task, token).setPooledActors(new String[]{username});
}

 
}
}
只是做简单的测试模拟
matikak 2008-07-25
<task-node name="enternal data done" signal="last-wait" create-tasks="false">
<task name="enternalDone"></task>
<event type="node-enter">
       <create-timer name="getResource" duedate="20 seconds" repeat="10 seconds">
         <action class="mcaps.apps.prrm.workflow.common.RemindAction"></action>
   </create-timer>
     </event>
     <event type="node-leave">
       <cancel-timer name="getResource"/>    
     </event>
<transition to="Evaluate Apply Infomation" name="done over"></transition>
</task-node>
matikak 2008-07-25
怪了,在job表里创建了定时器,却没有进到action,我在action里设置了,断点,指定了任务创给谁,却没有执行过来
matikak 2008-07-25
还没有可能是其它问题呢,:),再看看吧
上杉t 2008-07-26
你这个定义要进这个节点后20秒后,才会执行你的action,你等20秒了吗?
matikak 2008-07-28
问题解决,需要在web.xml中配置
<servlet>
        <servlet-name>JobExecutorServlet</servlet-name>
        <servlet-class>org.jbpm.job.executor.JobExecutorServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>JobExecutorServlet</servlet-name>
        <url-pattern>/jobexecutor</url-pattern>
    </servlet-mapping>
之后,有可能会遇到hibernate或是session问题,这方面网上有相关的解决方法,我用的是3.2.2,用到了hibernate文件,但也遇到了不能getcurrentSession()问题,将jbpm.cfg.xml中的isCurrentSessionEnabled设置为false即可,如
<field name="isCurrentSessionEnabled"><false /></field>
谢谢大家的支持