0 Replies Latest reply on Mar 28, 2012 11:39 PM by ayooi

    issue mapping jBPM-ESB vars

    ayooi

      Hi,

       

      I'm trying to map a jBPM variable name to an ESB variable name. The jBPM variable is 'status' I want this value to be assigned in the ESB message at "body.com.esb.transfer.status" or any location that has multiple periods in it. eg. body.mr.potato.head, body.buzz.light.year. This is the error I'm getting at the moment.

       

      20:20:35,714 ERROR [JBpmObjectMapper] Unable to set property on named object: com, object does not exist in message

      org.jboss.soa.esb.message.mapping.ObjectMappingException: Unable to set property on named object: com, object does not exist in message

                  at org.jboss.soa.esb.message.mapping.ObjectMapper.setObjectOnMessage(ObjectMapper.java:304)

                  at org.jboss.soa.esb.services.jbpm.JBpmObjectMapper.setOnEsbMessage(JBpmObjectMapper.java:144)

                  at org.jboss.soa.esb.services.jbpm.JBpmObjectMapper.mapFromJBpmToEsbMessage(JBpmObjectMapper.java:81)

                  at org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler.execute(EsbActionHandler.java:103)

                  at org.jbpm.graph.def.Action.execute(Action.java:137)

                  at sun.reflect.GeneratedMethodAccessor545.invoke(Unknown Source)

                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

                  at java.lang.reflect.Method.invoke(Method.java:601)

                  at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)

                  at org.jbpm.graph.def.Action_$$_javassist_80.execute(Action_$$_javassist_80.java)

                  at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:280)

                  at org.jbpm.graph.def.Node.execute(Node.java:395)

                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

                  at java.lang.reflect.Method.invoke(Method.java:601)

                  at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)

                  at org.jbpm.graph.def.Node_$$_javassist_127.execute(Node_$$_javassist_127.java)

                  at org.jbpm.job.ExecuteNodeJob.execute(ExecuteNodeJob.java:28)

                  at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:172)

                  at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:63)

       

       

      Heres my the mapping as xml

       

        <action class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">

         <esbServiceName>

          DataService

         </esbServiceName>

         <esbCategoryName>

          Data

         </esbCategoryName>

         <bpmToEsbVars>

          <mapping bpm="status" esb="body.com.esb.transfer.status"></mapping>

          <mapping bpm="updatecode" esb="body.com.esb.transfer.opcode"></mapping>

         </bpmToEsbVars>

        </action>

       

      Is it possible to keep this current naming convention? I believe if I changed everythign to follow body.oneNameRegardlessOfLengthAsLongAsNotDeliminatedByPeriods it should work, but I would appreciate if anyone could offer another solution.