Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / jBPM. Пример Database example из jBPM jPDL User Guide / 10 сообщений из 10, страница 1 из 1
07.02.2010, 20:27:54
    #36454344
Entry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
Использую 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
07.02.2010, 21:08:26
    #36454383
Entry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
Переделал пример из jUnit-теста на main-класс - после его выполнения, таблицы и данные в них остались :)
Неужели jUnit настолько могуч, что может так модульно тестировать и чистить за собой данные?
...
Рейтинг: 0 / 0
07.02.2010, 23:06:27
    #36454482
VoDA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
EntryНеужели jUnit настолько могуч, что может так модульно тестировать и чистить за собой данные?ХЗ про jUnit, но к примеру Spring такое умеет в штатном режиме. Он хитро правит транзакциями/чем то еще, что Hibernate работает, но после завершения данных откатываются назад.
...
Рейтинг: 0 / 0
08.02.2010, 11:02:01
    #36454842
Entry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
VoDAEntryНеужели jUnit настолько могуч, что может так модульно тестировать и чистить за собой данные?ХЗ про jUnit, но к примеру Spring такое умеет в штатном режиме. Он хитро правит транзакциями/чем то еще, что Hibernate работает, но после завершения данных откатываются назад.

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

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


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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.02.2010, 20:35:52
    #36466955
Entry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
Все спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.07.2012, 11:32:15
    #37872855
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
Дабы не плодить новую тему - спрошу тут.
Пытаюсь расковырять jBPM 5.3. Смотрю доку - но там не видно раздела Database example . И папки <проинсталлированный_jBPM>\database\jbpm.jpdl.oracle.sql тоже не наблюдается. Как жеж так жеж? Может кто подскажет, куда смотреть?
...
Рейтинг: 0 / 0
10.07.2012, 18:57:51
    #37873814
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
Все, похоже, просто :)
Вдруг кому понадобится - рекомендую заглянуть в доку сюда:
тынц
в раздел 3.7. 10-Minute Tutorial: Using your own database with jBPM . Надеюсь, там все есть, что нужно начинающему падавану :)
...
Рейтинг: 0 / 0
18.07.2012, 16:51:18
    #37884206
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jBPM. Пример Database example из jBPM jPDL User Guide
Оказалось не все так просто. Передо мной стояла задача - из процесса в жБПМ обратиться за данными к БД. Нашел способ, правда, без использования всяких там спрингов и прочих технологий. Вероятно, с точки зрения высоких материй это не совсем хорошо, но мне для начала очень даже пойдет. Возможно - кому-то тоже.
Итак, что было сделано:
- скачан 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
Форумы / Java [игнор отключен] [закрыт для гостей] / jBPM. Пример Database example из jBPM jPDL User Guide / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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