4 Replies Latest reply on Aug 13, 2009 10:13 AM by Kevin Conner

    problem "SignalCommand" JBossEsb 4.5

    mohamed Ben ayed Newbie

      Hi
      I work with JBossESB 4.5 and I found that "SignalCommand" is no longer available.
      I don't know whith what it's replaced
      this is the source coude

      <action name="start_a_new_order_process" class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor">
       <property name="command" value="SignalCommand" />
       <property name="process-definition-name" value="processDefinitionName" />
       <property name="esbToBpmVars">
       <mapping esb="BODY_CONTENT" bpm="thebody" />
       </property>
      </action>

      I read in an articale that I should replace it with "Callback" but I didn't understand
      please help me

        • 1. Re: problem
          mohamed Ben ayed Newbie

          please help me to resolve my problem

          • 2. Re: problem
            Kevin Conner Master

            If you are trying to start a new process, which would appear to be the case, then it is not the SignalCommand that you need.

            You need an action similar to the following

             <action name="create_new_process_instance"
             class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor">
             <property name="command" value="StartProcessInstanceCommand"/>
             <property name="process-definition-name" value="jBPMReplyTest"/>
             <property name="reply-to-originator" value="true"/>
             </action>
            


            The SignalCommand is no longer available, as you have stated, because it is not safe to use it without additional information. Any service invocation from jBPM to ESB and back stores the appropriate information within the EPR and is automatically handled. All the ESB service has to do is respond to the correct EPR.

            You can find examples of this integration within the bpm_orchestration quickstarts.

            Kev

            • 3. Re: problem
              mohamed Ben ayed Newbie

              hi and thanks for your response
              I send you my processimage and I hope that you understand my problem
              I don't need the StartProcesInstance command. I have two transitions from the esbService node "Calculate Discount". In this node I implement a drool which compare two numbers and route to an other service that execute an action containing "SignalCommand" (transition "installation réussite" if numbers are equals or transition "installation partielle" if not).
              SO
              in jboss-esb.xml I implement the service:



              <jms-listener name="ESB-Listener" busidref="discountServiceEsbChannel" />







              <route-to destination-name="Service1" service-category="NumberNotEquals" service-name="NumberNotEqualsService" />
              <route-to destination-name="Service2" service-category="NumberEquals" service-name="NumberEqualsService" />



              <object-path esb="body.orderItem1" />





              In the service "NumberNotEquals" I implement



              <jms-listener name="conciergeServiceEsbChannel"
              busidref="conciergeServiceEsbChannel">
              </jms-listener>












              but this didn't work and I have an error when I deploy the project.
              I read in some articles that I have to use JbpmCallback instead of bpmProcessor, I do it and I deploy successfully but the process transit to the default transition (first transition written in processdefinition.xml)
              I read the bpm quickstarts and all documentations of JbossESB 4.5 GA but I didn't found a solution
              could you please help me to find a solution for this problem

              • 4. Re: problem
                Kevin Conner Master

                Rather than have separate ESB services implementing this behaviour, what you need to do is have your drools service reply to the sender with a decision and then have the business process handle the transition.

                You would then have a flow as follows

                - jBPM used EsbAction to invoke the drools service
                - The drools service (RequestResponse) processes the request and replies normally to the sender (nothing specific to do here)
                - jBPM receives the response automatically, continuing the processing
                - business process uses the response from the ESB service to determine next step

                The bpm_orchestration quickstarts demonstrate this type of interaction, all that you need to do is add your drools processing and handle the response in the business process.

                Kev