3 Replies Latest reply on Apr 24, 2019 9:31 AM by Martien van den Akker

    Soa Suite 12.2.1.0.0 : Completing a human task and move to next task Programatically

    Rima V-Oracle

      Hi Experts,

       

      We have a usecase where a process gets moved to a humantask having only 1 stage ( say AwaitingXYZResponse) if  an invoke REST service fails due to connectivity issue. Later that REST call is made externally (not from BPEL) and it updates a DB table status to READY. Is it possible to proceed with AwaitingXYZResponse stage programatically((make outcome as proceed and move to next humantask, say EvaluateXYZ)) without HumanIntervention. If yes, how to achieve this?

      Or is there anywhere else I can park such failed cases other than introducing the AwaitingXYZResponse Humantask in the first place.

      Please advise.

       

      Regards

      Rima

        • 1. Re: Soa Suite 12.2.1.0.0 : Completing a human task and move to next task Programatically
          Martien van den Akker

          Hi Rima,

           

          That is certainly possible. Simplest is using the WSDL api's, as explained by my valuable former colleague Jan: Confessions of a Software Developer: OBPM 11g And Human Workflow Services . You can try this out with SoapUI and will give you a good understanding on how it works.


          However, for more intensive interactions, it's better to create a java class that does the same. But it's valuable to tryout the wsdl api's because under water they use the same java api's and it helps to check out the behavior and the least necessary set of attributes.

           

          Now, the api reference can be found here:https://docs.oracle.com/middleware/1221/bpm/bpm-api-ref/toc.htm

           

          And a nice example on how to work with it I found here: https://beatechnologies.wordpress.com/2011/08/24/using-java-apis-for-oracle-human-workflows/

           

          This also has some nice examples of the api: Andrejus Baranovskis Blog: BPM Worklist API 12.2.1.1 and Custom ADF 12.2.1.1 Application with a downloadable sample application.

           

          Regards,
          Martien

          (Many examples are in 11g, but they work unchanged in 12c)

          • 2. Re: Soa Suite 12.2.1.0.0 : Completing a human task and move to next task Programatically
            Rima V-Oracle

            Hi Martien,

            Thanks for the inputs.

             

            However am stuck with the below error for  Unmarshalling when i try to call any method  inside ITaskQueryService.

            Tried running the code  mentioned in https://beatechnologies.wordpress.com/2011/08/24/using-java-apis-for-oracle-human-workflows/  in the same machine where the bpel process and tasks run. Still no luck.

             

            WARNING: "IOP00810211: (MARSHAL) Exception from readValue on ValueHandler in CDRInputStream"

            org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe

            at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:7004)

            at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1010)

            at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)

            at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2033)

            at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2254)

            at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1249)

            at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)

            at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:341)

            at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:307)

            at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:999)

            at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:844)

            at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:267)

            at oracle.bpel.services.workflow.query.ejb._TaskQueryServiceRemote_Stub.getWorkflowContextForAuthenticatedUser(_TaskQueryServiceRemote_Stub.java)...

            ....

            ...

            Caused by: java.io.InvalidClassException: oracle.bpel.services.common.exception.ServicesException$ExceptionType; UnsupportedOperationException accessing no-arg constructor

            at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectUsingFVD(IIOPInputStream.java:1471)

            at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:414)

            at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:341)

            at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:307)

            at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:999)

            ... 22 more

            Caused by: java.lang.UnsupportedOperationException

            at com.sun.corba.se.impl.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:915)

            at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectUsingFVD(IIOPInputStream.java:1457)

            ... 26 more

             

            Is there anything I am missing ? jars used are:

            wlclient.jar

            wsClient-10.1.3

            oracle.external.soa.jrf-wsclient-extended.jar

            xmlparserv2.jar

             

            Regards

            Rima

            • 3. Re: Soa Suite 12.2.1.0.0 : Completing a human task and move to next task Programatically
              Martien van den Akker

              I'm not sure. The link is a bit out-dated, but it should give a first start. Don't know where you got wsClient-10.1.3, seems very out-dated, given the version number.

               

              Try these:

              Regards,
              Martien