package org.fireflow.samples.event; import java.util.ArrayList; import java.util.List; import org.fireflow.engine.entity.runtime.ProcessInstance; import org.fireflow.engine.exception.InvalidOperationException; import org.fireflow.engine.modules.instancemanager.event.AbsProcessInstanceEventListener; import org.fireflow.engine.modules.instancemanager.event.ProcessInstanceEvent; import org.fireflow.pdl.fpdl20.process.SubProcess; import org.fireflow.samples.pojo.Company; import org.fireflow.samples.pojo.Employee; public class MyProcessEventListener extends AbsProcessInstanceEventListener { @Override protected void afterProcessInstanceEnd(ProcessInstanceEvent e) { ProcessInstance procInst = e.getSource(); SubProcess subProcess = (SubProcess)e.getWorkflowElement(); System.out.println("==�����¼�MyProcessEventListener.afterProcessInstanceEnd(...)"); System.out.println("====�����¼�������ʵ���ǣ�id="+procInst.getId()+";displayName="+ procInst.getProcessDisplayName()+"; state="+procInst.getState().getDisplayName()); System.out.println("====��ʵ����Ӧ�����̶����ǣ�id="+subProcess.getId()); System.out.println("==============================================="); super.afterProcessInstanceEnd(e); } /** * ProcessInstance����֮��Run֮ǰ�ᴥ�����¼� */ @Override protected void onProcessInstanceCreated(ProcessInstanceEvent e) { ProcessInstance procInst = e.getSource(); SubProcess subProcess = (SubProcess)e.getWorkflowElement(); System.out.println("==�����¼�MyProcessEventListener.onProcessInstanceCreated(...)"); System.out.println("====�����¼�������ʵ���ǣ�id="+procInst.getId()+";displayName="+ procInst.getProcessDisplayName()+"; state="+procInst.getState().getDisplayName()); System.out.println("====��ʵ����Ӧ�����̶����ǣ�id="+subProcess.getId()); System.out.println("====ͨ�����¼���������һЩ���ӵij�ʼ�������������ʼ��һ���������͵����̱�������ͨ��ģ�����ݲ鿴���������̱���������"); System.out.println("==============================================="); //��ʼ��һ�����ӵ����̱��� Company company = new Company(); company.setId("company123"); company.setName("FireSOA��Դ��֯"); company.setAddress("����"); List<Employee> allEmployees = new ArrayList<Employee>(); Employee employee1 = new Employee(); employee1.setId("1"); employee1.setName("��Ҳ"); employee1.setAge(99); employee1.setSalary(999999.9f); employee1.setDeptId("dept1"); allEmployees.add(employee1); Employee employee2 = new Employee(); employee2.setId("2"); employee2.setName("̫��"); employee2.setAge(99); employee2.setSalary(999999.9f); employee2.setDeptId("dept2"); allEmployees.add(employee2); Employee employee3 = new Employee(); employee3.setId("3"); employee3.setName("�޼�"); employee3.setAge(999); employee3.setSalary(100000f); employee3.setDeptId("dept3"); allEmployees.add(employee3); company.setAllEmployees(allEmployees); //����Listener���׳����쳣�����������Զ�����ȫ�����Ե���������Listener�еĴ���Ӱ������ִ�С� //���ԣ���õķ�������Listener�����д����쳣��Ϣ�� try { procInst.setVariableValue(e.getCurrentWorkflowSession(), "company", company); } catch (InvalidOperationException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } super.onProcessInstanceCreated(e); } }