Home › Forum › Nuclos Bedienung › Datenimport/export › daten aus fremdsystemen
- Dieses Thema hat 20 Antworten und 6 Teilnehmer, und wurde zuletzt aktualisiert vor 10 Jahre, 11 Monaten von
Stefan Weisfeld.
-
AutorBeiträge
-
27 April 2010 um 17:31 Uhr #1166
Ferdinand Bauer
Teilnehmerhallo,
ich wollte fragen ob es viel aufwand ist daten von einem anderen datenbank system zu importieren und was dafür gemacht werden muss…
ich habe ein paar daten die ich in einer mysql liegen habe (von einem bestellsystem) die ich in nuclos brauche…
hat da jemand einen tip?
29 April 2010 um 12:41 Uhr #1212Hartmut Beckschulze
TeilnehmerHallo,
es gibt eine Möglichkeit wie man das realisieren kann.
Im RuleInterface gibt es eine Methode executeSelectOnJCADatasource mit der man das machen kann.
Dafür musst du folgendes machen:
Suche dir die passende -ds.xml aus dem examples Verzeichnis vom JBoss (jboss-4.2.2.GAdocsexamplesjca) in deinem Fall die mysql-ds.xml und trage in die standardjbosscmp-jdbc.xml (conf) das Typemapping für das Datenbanksystem ein (ein komplettes Typemapping findest du in dem Default Server vom JBoss (jboss-4.2.2.GAserverdefaultconf). Dann kannst du in der -ds.xml die Daten eintragen zu dem Datenbanksystem und wenn du dann die Methode aufrufst als einen Parameter den jndi Namen der Datenbank mitgeben (z.B. java:mysqlDB) und dann das select Statement.
Du bekommst, wenn alles passt, eine Collection mit MasterDataVOs zurück in dem die Datensätze vorhanden sind.
MitIch hoffe ich konnte dir damit helfen, hat ein wenig länger gedauert mit der Antwort, ich habe das Feature in den Kern von nuclos übernommen.
4 Mai 2010 um 13:01 Uhr #1474Ferdinand Bauer
Teilnehmerdanke, das ist sowas was ich gesucht habe.
schoen das das direkt drin ist… dann kann ich das ja beliebig nutzen.
gibt halt einige systeme wo ich drauf zugreifen muss…
27 November 2010 um 18:58 Uhr #2769Jan Giebels
TeilnehmerIch stehe vor dem gleichen Problem und versuche gerade eine Verbinsung zu einem MySQL Server aufzubauen.
Das anlegen der Datasource klappt auch. Leoider bekomme ich bei folgenden code:
public void rule(RuleInterface server) throws NuclosBusinessRuleException {
String dataDS = "java:shopDS";
String SQL = "SELECT products_model FROM products";
try {
Collection shopProd = server.executeSelectOnJCADatasource(dataDS, SQL);
server.addNotificationMessage("MySQL DB OK!", Priority.NORMAL);for (MasterDataVO mdvo : shopProd) {
server.addNotificationMessage("Result: "+(String)mdvo.getField("product_model") , Priority.NORMAL);
}
}
catch (Exception ex) {
server.addNotificationMessage("MySQL DB ERROR!" + ex, Priority.NORMAL);
}}
folgende Fehlermeldung:
ERROR [STDERR] org.jboss.resource.connectionmanager.JBossLocalXAException: Trying to start a new tx when old is not complete! old: , new , flags 0Daraufhin hagelt es natuerloich fehlermeldungen, die, soweit ich vermute, auf den ersten fehler aufbauen.
Was mache ich hier falsch ?
zus Vollständigkeit die komplette Fehlerausgabe vom Server:
15:50:21,665 INFO [RuleEngineFacadeBean] Start executing rule "Shopartikel"
15:50:21,678 INFO [NuclosJavaCompiler] execute Java compiler for source files [Rule_40000227.java]
15:50:21,744 INFO [RuleClassLoader] Load classfiles from /opt/nuclos/server/nuclos/codegenerator/rule40000227.jar
15:50:21,745 INFO [STDOUT] >>> Rule_40000227.rule(Lorg/nuclos/server/ruleengine/RuleInterface;)V
15:50:21,745 INFO [STDOUT] Rule_40000227.rule(Lorg/nuclos/server/ruleengine/RuleInterface;)V [8] => String dataDS = java:shopDS
15:50:21,745 INFO [STDOUT] Rule_40000227.rule(Lorg/nuclos/server/ruleengine/RuleInterface;)V [9] => String SQL = SELECT products_model FROM zc_grrf_products
15:50:21,746 WARN [loggerI18N] [com.arjuna.ats.internal.jta.transaction.arjunacore.enliststarterror] [com.arjuna.ats.internal.jta.transaction.arjunacore.enliststarterror] TransactionImple.enlistResource - XAResource.start returned: XAException.XAER_PROTO for
15:50:21,747 ERROR [STDERR] org.jboss.resource.connectionmanager.JBossLocalXAException: Trying to start a new tx when old is not complete! old: , new , flags 0
15:50:21,747 ERROR [STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource.start(TxConnectionManager.java:886)
15:50:21,747 ERROR [STDERR] at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:776)
15:50:21,747 ERROR [STDERR] at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:499)
15:50:21,747 ERROR [STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.enlist(TxConnectionManager.java:773)
15:50:21,747 ERROR [STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:564)
15:50:21,748 ERROR [STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
15:50:21,748 ERROR [STDERR] at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
15:50:21,748 ERROR [STDERR] at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
15:50:21,748 ERROR [STDERR] at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
15:50:21,748 ERROR [STDERR] at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
15:50:21,748 ERROR [STDERR] at org.nuclos.server.dblayer.impl.DataSourceExecutor.getConnection(DataSourceExecutor.java:107)
15:50:21,748 ERROR [STDERR] at org.nuclos.server.dblayer.impl.DataSourceExecutor.execute(DataSourceExecutor.java:52)
15:50:21,748 ERROR [STDERR] at org.nuclos.server.dblayer.impl.DataSourceExecutor.executeQuery(DataSourceExecutor.java:69)
15:50:21,748 ERROR [STDERR] at org.nuclos.server.ruleengine.ejb3.RuleInterfaceFacadeBean.executeSelectOnJCADatasource(RuleInterfaceFacadeBean.java:645)
15:50:21,748 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:50:21,748 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
15:50:21,748 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
15:50:21,748 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
15:50:21,749 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
15:50:21,749 ERROR [STDERR] at org.nuclos.server.common.EnhanceLoggingAOPInterceptor.invoke(EnhanceLoggingAOPInterceptor.java:48)
15:50:21,749 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,749 ERROR [STDERR] at org.nuclos.server.common.RollbackOnExceptionAOPInterceptor.invoke(RollbackOnExceptionAOPInterceptor.java:41)
15:50:21,749 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,749 ERROR [STDERR] at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
15:50:21,749 ERROR [STDERR] at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
15:50:21,749 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,749 ERROR [STDERR] at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
15:50:21,749 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,749 ERROR [STDERR] at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
15:50:21,749 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,749 ERROR [STDERR] at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
15:50:21,750 ERROR [STDERR] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
15:50:21,750 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,750 ERROR [STDERR] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
15:50:21,750 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,750 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
15:50:21,750 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,750 ERROR [STDERR] at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
15:50:21,750 ERROR [STDERR] at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
15:50:21,750 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,750 ERROR [STDERR] at org.nuclos.server.common.security.NuclosRoleBasedAuthorizationInterceptor.invoke(NuclosRoleBasedAuthorizationInterceptor.java:34)
15:50:21,750 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,750 ERROR [STDERR] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
15:50:21,750 ERROR [STDERR] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
15:50:21,751 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,751 ERROR [STDERR] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
15:50:21,751 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,751 ERROR [STDERR] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
15:50:21,751 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,751 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240)
15:50:21,751 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210)
15:50:21,751 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
15:50:21,751 ERROR [STDERR] at $Proxy192.executeSelectOnJCADatasource(Unknown Source)
15:50:21,751 ERROR [STDERR] at org.nuclos.server.customcode.CustomCodeInterface.executeSelectOnJCADatasource(CustomCodeInterface.java:514)
15:50:21,751 ERROR [STDERR] at Rule_40000227.rule(Rule_40000227.java:33)
15:50:21,751 ERROR [STDERR] at org.nuclos.server.ruleengine.ejb3.RuleEngineFacadeBean.executeBusinessRules(RuleEngineFacadeBean.java:272)
15:50:21,751 ERROR [STDERR] at org.nuclos.server.ruleengine.ejb3.RuleEngineFacadeBean.executeBusinessRules(RuleEngineFacadeBean.java:237)
15:50:21,752 ERROR [STDERR] at org.nuclos.server.ruleengine.ejb3.RuleEngineFacadeBean.executeBusinessRules(RuleEngineFacadeBean.java:229)
15:50:21,752 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:50:21,752 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
15:50:21,752 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
15:50:21,752 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
15:50:21,752 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
15:50:21,752 ERROR [STDERR] at org.nuclos.server.common.EnhanceLoggingAOPInterceptor.invoke(EnhanceLoggingAOPInterceptor.java:48)
15:50:21,752 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,752 ERROR [STDERR] at org.nuclos.server.common.RollbackOnExceptionAOPInterceptor.invoke(RollbackOnExceptionAOPInterceptor.java:41)
15:50:21,752 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,752 ERROR [STDERR] at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
15:50:21,752 ERROR [STDERR] at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
15:50:21,752 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,752 ERROR [STDERR] at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
15:50:21,753 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,753 ERROR [STDERR] at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
15:50:21,753 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,753 ERROR [STDERR] at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
15:50:21,753 ERROR [STDERR] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
15:50:21,753 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,753 ERROR [STDERR] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
15:50:21,753 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,753 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
15:50:21,753 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,753 ERROR [STDERR] at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
15:50:21,753 ERROR [STDERR] at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
15:50:21,753 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,754 ERROR [STDERR] at org.nuclos.server.common.security.NuclosRoleBasedAuthorizationInterceptor.invoke(NuclosRoleBasedAuthorizationInterceptor.java:34)
15:50:21,754 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,754 ERROR [STDERR] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
15:50:21,754 ERROR [STDERR] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
15:50:21,754 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,754 ERROR [STDERR] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
15:50:21,754 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,754 ERROR [STDERR] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
15:50:21,754 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,754 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240)
15:50:21,754 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210)
15:50:21,754 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
15:50:21,754 ERROR [STDERR] at $Proxy189.executeBusinessRules(Unknown Source)
15:50:21,754 ERROR [STDERR] at org.nuclos.server.masterdata.ejb3.MasterDataFacadeBean.executeBusinessRules(MasterDataFacadeBean.java:961)
15:50:21,755 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:50:21,755 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
15:50:21,755 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
15:50:21,755 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
15:50:21,755 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
15:50:21,755 ERROR [STDERR] at org.nuclos.server.common.EnhanceLoggingAOPInterceptor.invoke(EnhanceLoggingAOPInterceptor.java:48)
15:50:21,755 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,755 ERROR [STDERR] at org.nuclos.server.common.RollbackOnExceptionAOPInterceptor.invoke(RollbackOnExceptionAOPInterceptor.java:41)
15:50:21,755 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,755 ERROR [STDERR] at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
15:50:21,755 ERROR [STDERR] at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
15:50:21,755 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,755 ERROR [STDERR] at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
15:50:21,756 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,756 ERROR [STDERR] at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
15:50:21,756 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,756 ERROR [STDERR] at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
15:50:21,756 ERROR [STDERR] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
15:50:21,756 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,756 ERROR [STDERR] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
15:50:21,756 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,756 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
15:50:21,756 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,756 ERROR [STDERR] at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
15:50:21,756 ERROR [STDERR] at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
15:50:21,756 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,756 ERROR [STDERR] at org.nuclos.server.common.security.NuclosRoleBasedAuthorizationInterceptor.invoke(NuclosRoleBasedAuthorizationInterceptor.java:34)
15:50:21,757 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,757 ERROR [STDERR] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
15:50:21,757 ERROR [STDERR] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
15:50:21,757 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,757 ERROR [STDERR] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
15:50:21,757 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,757 ERROR [STDERR] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
15:50:21,757 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
15:50:21,757 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:304)
15:50:21,757 ERROR [STDERR] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
15:50:21,757 ERROR [STDERR] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
15:50:21,757 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:769)
15:50:21,757 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
15:50:21,758 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:373)
15:50:21,758 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
15:50:21,758 ERROR [DataSourceExecutor] SQL exception
org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple ); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple ))
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
at org.nuclos.server.dblayer.impl.DataSourceExecutor.getConnection(DataSourceExecutor.java:107)
at org.nuclos.server.dblayer.impl.DataSourceExecutor.execute(DataSourceExecutor.java:52)
at org.nuclos.server.dblayer.impl.DataSourceExecutor.executeQuery(DataSourceExecutor.java:69)
at org.nuclos.server.ruleengine.ejb3.RuleInterfaceFacadeBean.executeSelectOnJCADatasource(RuleInterfaceFacadeBean.java:645)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.nuclos.server.common.EnhanceLoggingAOPInterceptor.invoke(EnhanceLoggingAOPInterceptor.java:48)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.nuclos.server.common.RollbackOnExceptionAOPInterceptor.invoke(RollbackOnExceptionAOPInterceptor.java:41)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.nuclos.server.common.security.NuclosRoleBasedAuthorizationInterceptor.invoke(NuclosRoleBasedAuthorizationInterceptor.java:34)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240)
at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210)
at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
at $Proxy192.executeSelectOnJCADatasource(Unknown Source)
at org.nuclos.server.customcode.CustomCodeInterface.executeSelectOnJCADatasource(CustomCodeInterface.java:514)
at Rule_40000227.rule(Rule_40000227.java:33)
at org.nuclos.server.ruleengine.ejb3.RuleEngineFacadeBean.executeBusinessRules(RuleEngineFacadeBean.java:272)
at org.nuclos.server.ruleengine.ejb3.RuleEngineFacadeBean.executeBusinessRules(RuleEngineFacadeBean.java:237)
at org.nuclos.server.ruleengine.ejb3.RuleEngineFacadeBean.executeBusinessRules(RuleEngineFacadeBean.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.nuclos.server.common.EnhanceLoggingAOPInterceptor.invoke(EnhanceLoggingAOPInterceptor.java:48)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.nuclos.server.common.RollbackOnExceptionAOPInterceptor.invoke(RollbackOnExceptionAOPInterceptor.java:41)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.nuclos.server.common.security.NuclosRoleBasedAuthorizationInterceptor.invoke(NuclosRoleBasedAuthorizationInterceptor.java:34)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240)
at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210)
at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
at $Proxy189.executeBusinessRules(Unknown Source)
at org.nuclos.server.masterdata.ejb3.MasterDataFacadeBean.executeBusinessRules(MasterDataFacadeBean.java:961)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.nuclos.server.common.EnhanceLoggingAOPInterceptor.invoke(EnhanceLoggingAOPInterceptor.java:48)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.nuclos.server.common.RollbackOnExceptionAOPInterceptor.invoke(RollbackOnExceptionAOPInterceptor.java:41)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)
at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.nuclos.server.common.security.NuclosRoleBasedAuthorizationInterceptor.invoke(NuclosRoleBasedAuthorizationInterceptor.java:34)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:304)
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:769)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:373)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple )
at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
... 130 more
Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple
at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
27 November 2010 um 19:02 Uhr #2770Jan Giebels
Teilnehmer.. und eine weitere Frage, gibt es zu executeSelectOnJCADatasource auch pendants wie executeInsertOnJCADatasource oder executeUpdateOnJCADatasource ?
Danke .. ich bin noch recht neu in Sachen Nuclos und evaluiere die Lösung gerade für einen Kunden für den Produktiveinsatz und da ist es absolute Pflicht, mehrere MySQL Datenbanken anzubinden.
Danke und Gruß
Jan
4 Dezember 2010 um 01:32 Uhr #2802Jan Giebels
TeilnehmerDas Problem war, dass neben Postgresql keine weitere locale tx-datasource durch den TxManager zugelassen wird. Daher muss man weitere Datenbanken als xa-datasource configurieren. Dann klappts auch mit mehreren Datenbanken, anbei mal meine XA Configuration.
MySQLDS
jdbc:mysql://localhost:3306/test
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
root
password
true
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker
1
10
10mySQL
Jetzt bleibt nur noch die Frage, wie funktionieren Insert, Update und Delete?
gruss
Jan
7 Dezember 2010 um 20:31 Uhr #2818Claudia Mangstl
TeilnehmerHallo Jan,
diese Methode ist bisher nur für Select Anweisungen vorgesehen, da diese Funktion mal aus einem konkreten Kundenprojekt entstanden ist.
Ich nehme das aber mal in den Feature Request mit auf.
Viele Grüße,
Claudia M.3 Januar 2011 um 14:50 Uhr #2919Jan Giebels
TeilnehmerWenn ich via executeSelectOnJCADatasource Daten in eine Entität MIT Statusmodell übernehmen möchte, bekomme ich folgenden Fehler.
Regelcode:
public Collection getIntIds(RuleInterface server) {
Collection dummy = new ArrayList();
dummy.add(1);
return dummy;
}public void process(RuleInterface server, Integer iId) throws NuclosBusinessRuleException {
String sMysqlDS = "java:shopDS";
String sSQL = "SELECT products_model, products_quantity_order_min from products";Collection dataRow = server.executeSelectOnJCADatasource(sMysqlDS, sSQL);
server.logInfo("MySQL connect OK!");// iterieren Sie über diese Collection
for (MasterDataVO singleData : dataRow) {// jeden einzelnen Datensatz anlegen:
Map mpFields = new HashMap();mpFields.put("products_model", singleData.getField("products_model"));
mpFields.put("products_quantity_order_min", singleData.getField("products_quantity_order_min"));MasterDataVO mdvo_neu = new MasterDataVO(null, null, null, null, null, null, mpFields);
try{
org.nuclos.common2.ServiceLocator.getInstance().getFacade(org.nuclos.server.masterdata.ejb3.MasterDataFacadeLocal.class).create("Shopartikel", mdvo_neu, null);
} catch (Exception e) {
server.logError("Could not create Object!");
e.printStackTrace();
}
server.logInfo("Done!");
}
}
Fehler im Log:
2011-01-03 11:42:06,196 ERROR [org.nuclos.server.customcode.CustomCodeInterface] 40019735 - Could not create Object! - MySQL Shop DB Products
2011-01-03 11:42:06,196 ERROR [STDERR] org.nuclos.common2.exception.CommonCreateException: masterdata.error.validation.datatype{R40011141}{R40011046}
Wie umgehe ich das Problem, bzw. wie importiere ich diese Daten in eine Entität mit Status?
Danke und Gruß
Jan
3 Januar 2011 um 16:15 Uhr #2929Thomas Schiffmann
TeilnehmerHallo Jan,
für Entitäten mit Statusmodell muss eine andere Fassade für die Erstellung des Datensatzes verwendet werden. Folgender Code skizziert grob das Vorgehen dabei:
// Neues Value-Object erstellen
GenericObjectVO objecttocreate = new GenericObjectVO(new org.nuclos.server.common.valueobject.NuclosValueObject(), org.nuclos.server.genericobject.Modules.getInstance().getModuleIdByEntityName(""), null, null, null, false);// Attribute setzen (für jedes Attribut wiederholen)
objecttocreate.addAndSetAttribute(new DynamicAttributeVO(org.nuclos.server.common.AttributeCache.getInstance().getAttribute("", "").getId(), , ));// Objekt anlegen
GenericObjectVO createdobject = org.nuclos.common2.ServiceLocator.getInstance().getFacade(org.nuclos.server.genericobject.ejb3.GenericObjectFacadeLocal.class).create(new GenericObjectWithDependantsVO(govo, new DependantMasterDataMap()));
Die Unterscheidung zwischen diesen Fassaden ist leider historisch bedingt. Wir sind bemüht, diese Funktionalitäten in den nächsten Versionen zu vereinheitlichen.
Viele Grüße
tsc3 Januar 2011 um 19:27 Uhr #2933Jan Giebels
TeilnehmerPrima .. so funktioniert die initiale Datenübernahme aus Fremdsystemen.
Wie kann ich denn mittels einer Fristenregel die Daten updaten?
Gibt es dazu Codebeispiele?Hintergrund: Die Daten im Fremdsystem ändern sich sporadisch und diese Änderungen sollen mit Hilfe einer Regel übernommen werden. Bestehende Datensätze in Nuclos müssen dazu ja 1. erkannt werden und 2. dann mit den geänderten Werten aktualisiert werden.
Danke und Gruß
Jan
3 Januar 2011 um 19:37 Uhr #2934Jan Giebels
TeilnehmerEine weitere Frage dazu: Wie setzt man denn dann beim initialen import sowie beim update den Status?
5 Januar 2011 um 20:58 Uhr #2938Thomas Schiffmann
TeilnehmerHallo Jan,
für ein Update von Datensätzen ist es zunächst erforderlich, sich die Valueobjects der Datensätze zu beschaffen. Dies erledigen Sie am besten über zwei RuleInterface-Methoden:
getGenericObjectIds(String sEntityName, CollectableSearchCondition cond) : Collection
Diese Methode ermittelt die Datensätze, die einer bestimmten Suchbedingung entsprechen (CollectableSearchCondition, siehe auch https://www.nuclos.de/index.php/nuclos-forum/schnittstellen/1979-query-entities?lang=de#1999 und https://www.nuclos.de/index.php/nuclos-forum/makros-und-regeln/1943-zugriff-auf-andere-entitaet-ohne-beziehung?lang=de#1945). Die Methode gbt eine Menge von Ids zurück, über die Sie mit der folgenden Methode das entsprechende Valueobject erhalten:getGenericObject(Integer iGenericObjectId) : GenericObjectVO
Sobald Sie das ValueObject zur Hand haben, können Sie die Attribute des Objekts abgleichen (addAndSetAttribute).
Abschließend müssen jeden einzelnen Datensatz über die Fassade speichern (Aufruf wie bei create()):
modify(GenericObjectVO govo,
DependantMasterDataMap mpDependants, boolean bFireSaveEvent) : GenericObjectVODen Umgang mit Valueobjects können Sie auch vermeiden, indem Sie mit folgender Methode im RuleInterface arbeiten:
setField(String sEntityName, Integer iObjectId, String sFieldName, Integer iValueId, Object oValue) : void
Diese Operation ändert gezielt ein Attribut eines Datensatzes.
Den initialen Status können Sie leider nicht manuell vergeben, da sich dieser immer aus dem Statusmodell ergibt. Nachdem Sie einen Datensatz allerdings erfasst haben, können Sie über die RuleInterface-Operation
changeState(Integer iGenericObjectId, int iNumeral) : void
den Status eines Objekts ändern. Zu beachten ist dabei, dass nur im Statusmodell definierte Statusübergänge durchgeführt werden dürfen.
Viele Grüße
tsc9 Januar 2011 um 02:01 Uhr #2951Jan Giebels
TeilnehmerIch habe das nun mit der „setFieldValue“ Funktion gelöst und klappt prima!
bei „setField“ wird ein Parameter Integer iValueId benötigt, den wuste ich nicht zu holen und habe deshalb „setFieldValue“ benutzt.
14 Januar 2011 um 20:07 Uhr #2994Claudia Mangstl
TeilnehmerHallo Jan,
wir werden die Methoden voraussichtlich in der nächsten Version (Mitte Februar) auf Inserts,Updates und Deletes erweitern.
Da ab der Version 2.7 kein JBoss sondern Tomcat eingesetzt wird, wird man die Datasource erst mal auf andere Weise definieren müssen. Man benötigt dazu eine zusätzliche Spring-Konfigurationsdatei, in der man die Datasource und ggf. noch einen TransactionManager definiert.
Im Prinzip kann man sich diese Datasource auch direkt holen und darauf alles Mögliche (Insert/Update/Delete) ausführen.
Problematisch wird’s beim TransactionManagement hinsichtlich verteilter Transaktionen. Hier müssten wir noch einen JTA-TransactionManager ergänzen.
Wir werden bald eine Lösung dafür haben.
Viele Grüße,
Claudia M.17 Januar 2011 um 18:28 Uhr #3005Jan Giebels
TeilnehmerHabe jetzt auf die Version 2.7.1 upgedated. Natürlich sind alle „Fremddatenquellenregeln“ nun nicht mehr lauffähig.
Gibt es eine Beispielkonfiguration um eine MySQL Datenbank im Tomcat/Nuclos bekannt zu machen? Und wie wird diese an einem einfachen Beispiel genutzt?
Transaktionen brauchen wir nur tertiär *G* in erster Linie ist für uns ein Select, Insert, Update von immens hoher Wichtigkeit.
Danke und Gruß
Jan
-
AutorBeiträge