Home Forum Nuclos Bedienung Datenimport/export daten aus fremdsystemen

Ansicht von 15 Beiträgen - 1 bis 15 (von insgesamt 21)
  • Autor
    Beiträge
  • #1166
    Ferdinand Bauer
    Teilnehmer

    hallo,

    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?

    #1212

    Hallo,

    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.
    Mit .getFields() kannst du die Daten aus dem VO abholen und dann weiter bearbeiten.
    Die Resultspaltennamen sind die Fields in dem VO.

    Ich 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.

    #1474
    Ferdinand Bauer
    Teilnehmer

    danke, 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…

    #2769
    Jan Giebels
    Teilnehmer

    Ich 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 0

    Daraufhin 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)

    #2770
    Jan 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

    #2802
    Jan Giebels
    Teilnehmer

    Das 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
    10

    mySQL

    Jetzt bleibt nur noch die Frage, wie funktionieren Insert, Update und Delete?

    gruss

    Jan

    #2818
    Claudia Mangstl
    Teilnehmer

    Hallo 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.

    #2919
    Jan Giebels
    Teilnehmer

    Wenn 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

    #2929
    Thomas Schiffmann
    Teilnehmer

    Hallo 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
    tsc

    #2933
    Jan Giebels
    Teilnehmer

    Prima .. 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

    #2934
    Jan Giebels
    Teilnehmer

    Eine weitere Frage dazu: Wie setzt man denn dann beim initialen import sowie beim update den Status?

    #2938
    Thomas Schiffmann
    Teilnehmer

    Hallo 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) : GenericObjectVO

    Den 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
    tsc

    #2951
    Jan Giebels
    Teilnehmer

    Ich 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.

    #2994
    Claudia Mangstl
    Teilnehmer

    Hallo 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.

    #3005
    Jan Giebels
    Teilnehmer

    Habe 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

Ansicht von 15 Beiträgen - 1 bis 15 (von insgesamt 21)