powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jBPM. Пример Database example из jBPM jPDL User Guide
10 сообщений из 10, страница 1 из 1
jBPM. Пример Database example из jBPM jPDL User Guide
    #36454344
Entry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую jbpm-3.2.6.SP1
1) Создаю таблицы в моей схеме через <проинсталлированный_jBPM>\database\jbpm.jpdl.oracle.sql;
2) Запускаю код на API jBPM c использованием
jbpmContext.save(processInstance);
jbpmContext.close();
3) в hibernate.cfg.xml прописано, что hibernate.hbm2ddl.auto = "update" (а не "create-drop");

Но после прогона примера в разделе "Database example" из Chapter 3. Tutorial jBPM jPDL User Guide таблицы из СУБД удаляются, тест выполнен успешно.

Как сделать так, что бы тест проходил успешно, при этом в СУБД таблицы <моя_схема>jbpm_* не удалялись, а сохранялись с информацией о процессе.
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #36454383
Entry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделал пример из jUnit-теста на main-класс - после его выполнения, таблицы и данные в них остались :)
Неужели jUnit настолько могуч, что может так модульно тестировать и чистить за собой данные?
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #36454482
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EntryНеужели jUnit настолько могуч, что может так модульно тестировать и чистить за собой данные?ХЗ про jUnit, но к примеру Spring такое умеет в штатном режиме. Он хитро правит транзакциями/чем то еще, что Hibernate работает, но после завершения данных откатываются назад.
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #36454842
Entry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDAEntryНеужели jUnit настолько могуч, что может так модульно тестировать и чистить за собой данные?ХЗ про jUnit, но к примеру Spring такое умеет в штатном режиме. Он хитро правит транзакциями/чем то еще, что Hibernate работает, но после завершения данных откатываются назад.

VoDA, интересно.

Хотелось бы как-то более точно это подтвердить.
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #36454931
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EntryХотелось бы как-то более точно это подтвердить.Как прошедший обучение от самого Interface21 (если кто знает что это ;) ), говорю что было такое. Одна из стандартных фич, только никто ей не пользуется. У нас в проектах не было ни разу.
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #36454970
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Entry" <nospam@sql.ru>;
> Хотелось бы как-то более точно это подтвердить.


что тут прдтверждать? любая книжка по спрингу рассказывает про это. наследуете тест от AbstractTransactrionalSpringTest (или как он там зовется) и все.

Скажи Microsoft'у "Прощай"!

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #36466955
Entry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
jBPM. Пример Database example из jBPM jPDL User Guide
    #37872855
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дабы не плодить новую тему - спрошу тут.
Пытаюсь расковырять jBPM 5.3. Смотрю доку - но там не видно раздела Database example . И папки <проинсталлированный_jBPM>\database\jbpm.jpdl.oracle.sql тоже не наблюдается. Как жеж так жеж? Может кто подскажет, куда смотреть?
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #37873814
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, похоже, просто :)
Вдруг кому понадобится - рекомендую заглянуть в доку сюда:
тынц
в раздел 3.7. 10-Minute Tutorial: Using your own database with jBPM . Надеюсь, там все есть, что нужно начинающему падавану :)
...
Рейтинг: 0 / 0
jBPM. Пример Database example из jBPM jPDL User Guide
    #37884206
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказалось не все так просто. Передо мной стояла задача - из процесса в жБПМ обратиться за данными к БД. Нашел способ, правда, без использования всяких там спрингов и прочих технологий. Вероятно, с точки зрения высоких материй это не совсем хорошо, но мне для начала очень даже пойдет. Возможно - кому-то тоже.
Итак, что было сделано:
- скачан jbpm-5.3.0.Final-installer и установлен в соответствии с инструкцией из install.html
- в качестве ГУИ для создания процесса использовался Eclipse-based plugin, который запускается при старте демо из поставки jbpm-5.3.0.Final-installer (демо запускается при помощи команды ant start.demo , процесс так же описан в install.html)
- импортнул прожект с примером Evaluation, в нем же и велись дальнейшие танцы с бубном
- нарисован простейший процесс со стартом, скрипт-таском и концом процесса
- прямо в скрипт-таске в свойстве Action был прописан такой ява-код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
String ls_log;
Connection conn;
OracleDriver ora;

conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//initiate a JDBC connection
try{
	conn = DriverManager.getConnection("jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = winsrv2008)(PORT = 1521)))(CONNECT_DATA =(SID = orasid)))","usr","pwd");
	System.out.println("Connected!");
}catch(Exception e){
	System.out.println("Exception when connecting to DB: "+e.getMessage());
	return;
}

		CallableStatement cs;
		try {
			cs = conn.prepareCall ("{call usr.auerror1_pg.AddErr(?, ?, ?)}");
			cs.setString(1, "000");
			cs.setInt(2, 1);
			cs.setString(3, "TESTEST");
			cs.execute();
			cs.close();
		}catch(Exception e){
			System.out.println("Exception when accessing to DB: "+e.getMessage());
			return;
		}

		try {
			cs = conn.prepareCall ("{? = call usr.auerror1_pg.F_GetErrText()}");
			cs.registerOutParameter (1, Types.VARCHAR);
			cs.execute();
			System.out.println(cs.getString(1));
			cs.close();
		}catch(Exception e){
			System.out.println("Exception when accessing to DB: "+e.getMessage());
			return;
		}

conn.close();

System.out.println("End");


- там же в Action Editor указал:
Код: java
1.
2.
3.
4.
5.
import oracle.jdbc.driver.OracleDriver
import java.sql.Connection
import java.sql.DriverManager
import java.sql.CallableStatement
import java.sql.Types


- создал жава-класс для запуска тестового процесса:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
package com.sample;

import java.util.HashMap;
import java.util.Map;

import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.logger.KnowledgeRuntimeLogger;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.jbpm.process.workitem.wsht.HornetQHTWorkItemHandler;

/**
 * This is a sample file to launch a process.
 */
public class ProcessTest_debtOff {

	public static final void main(String[] args) {
		try {
			// load up the knowledge base
			KnowledgeBase kbase = readKnowledgeBase();
			StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
			KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "test", 1000);
			// start a new process instance
			Map<String, Object> params = new HashMap<String, Object>();
			ksession.startProcess("test.testProc", params);
			System.out.println("Process started ...");
			logger.close();
			
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}

	private static KnowledgeBase readKnowledgeBase() throws Exception {
		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
		kbuilder.add(ResourceFactory.newClassPathResource("test.bpmn2"), ResourceType.BPMN2);
		return kbuilder.newKnowledgeBase();
	}
	
	private static StatefulKnowledgeSession createKnowledgeSession(KnowledgeBase kbase) {
		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
		HornetQHTWorkItemHandler humanTaskHandler = new HornetQHTWorkItemHandler(ksession);
		humanTaskHandler.setIpAddress("127.0.0.1");
		humanTaskHandler.setPort(5445);
		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
		return ksession;
	}

	
}



- выбрал этот жава-класс, прямо как в описании примера - нажал "Debug/Java Application" - все по честному запустилось, в базу запихались данные, потом из этой же базы вторым стейтментом они были выбраны и выведены в консоль. Ура!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jBPM. Пример Database example из jBPM jPDL User Guide
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]