public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { System.out.println("Executing work item " + workItem); manager.completeWorkItem(workItem.getId(), null); }
@Test public void compensationViaEventSubProcess() throws Exception { KieSession ksession = createKnowledgeSession("compensation/BPMN2-Compensation-EventSubProcess.bpmn2"); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "0"); ProcessInstance processInstance = ksession.startProcess("CompensationEventSubProcess", params); assertProcessInstanceActive(processInstance.getId(), ksession); ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getId(), null); assertProcessVarValue(processInstance, "x", "1"); }
@Override public void run() { try { Thread.sleep(1000); RuntimeEngine engine = runtimeManager.getRuntimeEngine(EmptyContext.get());// only for singleton logger.debug("staring a thread...."); engine.getKieSession().insert("doing it async"); logger.debug("Completing the work item"); engine.getKieSession().getWorkItemManager().completeWorkItem(workItem.getId(), null); runtimeManager.disposeRuntimeEngine(engine); } catch (Exception e) { logger.error("Error when executing async operation", e); } }
@Test public void testSignalBetweenProcesses() throws Exception { KieBase kbase = createKnowledgeBase( "BPMN2-IntermediateCatchSignalSingle.bpmn2", "BPMN2-IntermediateThrowEventSignal.bpmn2"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); TestWorkItemHandler handler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler); ProcessInstance processInstance = ksession .startProcess("BPMN2-IntermediateCatchSignalSingle"); ksession.getWorkItemManager().completeWorkItem( handler.getWorkItem().getId(), null); ProcessInstance processInstance2 = ksession .startProcess("SignalIntermediateEvent"); assertProcessInstanceFinished(processInstance2, ksession); assertProcessInstanceFinished(processInstance, ksession); }
@Test public void compensationInSubSubProcesses() throws Exception { KieSession ksession = createKnowledgeSession("compensation/BPMN2-Compensation-InSubSubProcess.bpmn2"); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "0"); ProcessInstance processInstance = ksession.startProcess("CompensateSubSubSub", params); ksession.signalEvent("Compensation", "_C-2", processInstance.getId()); ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getId(), null); ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getId(), null); ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getId(), null); // compensation activity (assoc. with script task) signaled *after* script task assertProcessInstanceCompleted(processInstance.getId(), ksession); assertProcessVarValue(processInstance, "x", "2"); }
@Test public void createProcessStartItDisposeAndLoadItAgain() { String processId = "minimalProcess"; String workName = "MyWork"; KieBase kbase = createKieBase(ProcessCreatorForHelp.newProcessWithOneWork( processId, workName )); StatefulKnowledgeSession ksession = createSession(kbase); long ksessionId = ksession.getIdentifier(); DummyWorkItemHandler handler = new DummyWorkItemHandler(); ksession.getWorkItemManager() .registerWorkItemHandler(workName, handler); long process1Id = ksession.startProcess(processId).getId(); ksession = disposeAndReloadSession(ksession, ksessionId, kbase); ksession.getWorkItemManager().registerWorkItemHandler(workName, handler); long workItemId = handler.getLatestWorkItem().getId(); ksession.getWorkItemManager().completeWorkItem(workItemId, null); Assert.assertNotNull(ksession); Assert.assertNull( ksession.getProcessInstance( process1Id ) ); }
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { String message = (String) workItem.getParameter("Message"); logger.debug("Sending message: {}", message); manager.completeWorkItem(workItem.getId(), null); }
public static void runCompensationEventSubProcessGeneralTest(KieSession ksession, RuleFlowProcess process, String processId, String [] workItemNames, List<String> eventList, String compensationEvent) { TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); for (String workItem : workItemNames) { ksession.getWorkItemManager().registerWorkItemHandler(workItem, workItemHandler); } ProcessInstance processInstance = ksession.startProcess(processId); // pre and sub process work item ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItems().removeLast().getId(), null); ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItems().removeLast().getId(), null); // Call general compensation ksession.signalEvent("Compensation", compensationEvent, processInstance.getId()); assertEquals("Compensation should have fired once.", 1, eventList.size()); // post work item ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItems().removeLast().getId(), null); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); }
@Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { manager.completeWorkItem(workItem.getId(), outputDataSupplier.apply(workItem.getParameters())); }
/** * TESTS */ @Test public void compensationViaIntermediateThrowEventProcess() throws Exception { KieSession ksession = createKnowledgeSession("compensation/BPMN2-Compensation-IntermediateThrowEvent.bpmn2"); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "0"); ProcessInstance processInstance = ksession.startProcess("CompensateIntermediateThrowEvent", params); ksession.getWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getId(), null); // compensation activity (assoc. with script task) signaled *after* script task assertProcessInstanceCompleted(processInstance.getId(), ksession); assertProcessVarValue(processInstance, "x", "1" ); }
public void complete(WorkItem workItem, Map<String, Object> results) { WorkItemManager manager = workItems.get(workItem); if (manager != null) { manager.completeWorkItem(workItem.getId(), results); } workItems.remove(workItem); update(); selectButton.setEnabled(getSelectedWorkItem() != null); }
@Test public void testMultiInstanceLoopNumberTest() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MultiInstanceLoop-Numbering.bpmn2"); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler); ProcessInstance processInstance = ksession.startProcess("Test.MultipleInstancesBug", params); ksession.getWorkItemManager().completeWorkItem(workItems.remove(0).getId(), null); ksession.getWorkItemManager().completeWorkItem(workItems.remove(0).getId(), null);
public void complete(WorkItem workItem, Map<String, Object> results) { WorkItemManager manager = workItems.get(workItem); if (manager != null) { manager.completeWorkItem(workItem.getId(), results); workItems.remove(workItem); reloadWorkItemsList(); } selectButton.setEnabled(getSelectedWorkItem() != null); }
@Test public void testSignalBoundaryEventOnTaskComplete() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-BoundarySignalEventOnTaskbpmn2.bpmn"); ksession = createKnowledgeSession(kbase); TestWorkItemHandler handler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler); ksession.addEventListener(LOGGING_EVENT_LISTENER); ProcessInstance processInstance = ksession .startProcess("BoundarySignalOnTask"); ksession.getWorkItemManager().completeWorkItem( handler.getWorkItem().getId(), null); ksession.signalEvent("MySignal", "value"); ksession.getWorkItemManager().completeWorkItem( handler.getWorkItem().getId(), null); assertProcessInstanceFinished(processInstance, ksession); }
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { manager.completeWorkItem(workItem.getId(), null); } public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
@Test public void testInclusiveSplitAndJoinWithEnd() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-InclusiveSplitAndJoinWithEnd.bpmn2"); ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", 25); ProcessInstance processInstance = ksession.startProcess( "com.sample.test", params); List<WorkItem> activeWorkItems = workItemHandler.getWorkItems(); assertEquals(3, activeWorkItems.size()); ksession = restoreSession(ksession, true); for (int i = 0; i < 2; i++) { ksession.getWorkItemManager().completeWorkItem( activeWorkItems.get(i).getId(), null); } assertProcessInstanceActive(processInstance); ksession.getWorkItemManager().completeWorkItem( activeWorkItems.get(2).getId(), null); assertProcessInstanceFinished(processInstance, ksession); }
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { Map<String, Object> results = new HashMap<String, Object>(); results.put("Result", "ResultValue"); manager.completeWorkItem(workItem.getId(), results); } public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
@Test public void testLane() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-Lane.bpmn2"); KieSession ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ProcessInstance processInstance = ksession.startProcess("UserTask"); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE); ksession = restoreSession(ksession, true); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); WorkItem workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNotNull(); assertThat(workItem.getParameter("ActorId")).isEqualTo("john"); Map<String, Object> results = new HashMap<String, Object>(); results.put("ActorId", "mary"); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), results); ksession = restoreSession(ksession, true); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNotNull(); assertThat(workItem.getParameter("SwimlaneActorId")).isEqualTo("mary"); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertProcessInstanceCompleted(processInstance.getId(), ksession); }
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { String message = (String) workItem.getParameter("Message"); myList.add(message); manager.completeWorkItem(workItem.getId(), null); } public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
@Test public void testMultipleStartEventsRegularStart() throws Exception { KieBase kbase = createKnowledgeBase("BPMN2-MultipleStartEventProcessLongInterval.bpmn2"); ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ProcessInstance processInstance = ksession .startProcess("MultipleStartEvents"); assertProcessInstanceActive(processInstance); ksession = restoreSession(ksession, true); WorkItem workItem = workItemHandler.getWorkItem(); assertThat(workItem).isNotNull(); assertThat(workItem.getParameter("ActorId")).isEqualTo("john"); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertProcessInstanceFinished(processInstance, ksession); }