A Synchronous answer from Asynchronous BPEL (How to?)

Good Afternoon!
A have an asynchronous BPEL with an exposed webservice.
I need BPEL get back a some kind of information at the moment he was called (e.g. a Conversation ID). And then continue his own asynchronous process.
Is it possible?
Tank You!

I have tried:
A Reply. i put a reply exactly after receive input - nothing. BPEL exposed service is defined as asynchronous, so it has not any definition in wsdl for reply answer.
A Callback. i put a callback and return back an assigned Coversation ID. It works good. But it is another callback operation.
May be there is a possibility to return back not in some next activity but exactly in BPEL start moment?
I will describe why i think its possible.
When you call any async webservice you can receive an exception in this moment (if webservice doesnt exist) or you can also receive a "nothing" (if webservice exist and it started to work). In any way you receive in back ground some kind of system information from Application Server that tells you - are you successfull in webservice calling or not.
And this is not a callback. Its something else. Its some kind of server synchronous answer.
And I am thinking, is it possible to use this system answer to send back some technical info about BPEL?

Similar Messages

  • Unable to get callback from Asynchronous BPEL process to work (AXIS Client)

    Hello,
    I am calling an Asynchronous BPEL process from an AXIS client, and I am unable to get the callback functionality to work. The AXIS client code has been generated from WSDL2Java using the BPEL process' WSDL file.
    I CAN insert an invoke node in the BPEL process and invoke my Callback web service using that, but obviously that means the BPEL process is limited to only responding to one pre-determined client, which won't work.
    My questions:
    - How does the BPEL process know what endpoint to use to make the callback?
    - Do I need to modify the generated code to create a SOAP Envelope and invoke the process with the envelope, intead of the invokeOneWay call?
    - If I do need to create a SOAP Envelope with a replyto element, what is the structure of a typical BPEL envelope? Is there an example somewhere?
    I have looked at the examples in the interop directory, specifically the AXIS calling Async BPEL, but I would like to try to keep the client code as independent as possible (I don't really want to have a dependency on the OTN library).
    Any help would be greatly appreciated!!
    Thank you.
    -Ryan

    Please have a look at the Binding in the WSDL. Axis must provide the ReplyTo and
    MessageId information there. As far as I see, this must be done by an Axis-Handler,
    because the Binding-Part in not generated by WSDL2Java.
    I was able to generate the JavaClasses by using the "WSDL2Java -a" option, but
    I still do not see how to use them in a handler and how to register the handler.
    Maybe someone can give me a hint.

  • Calling Synchronous Interface from Asynchronous in BPM

    Hi,
    Are there any articles I can browse through or review which explains how to call Synchronous Abstract Interfaces from Asynchronous Interfaces in BPM.
    Regards,
    Amar Nemalikanti

    Hi Amareshwar
      check these blogs, hope they give you the required information,
      /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    Regards
    Vishnu

  • Retrieving Status/Results from Asynchronous BPEL Processes

    Hi,
    I'm trying to poll the results of an asynchronous BPEL process with Java RMI. I managed to get the state of my instance, but i could not get the results of the process.
    When I use the method getResult I only get an empty Object[]. (see my attached code)
    I'm working with the tutorial 101.HelloWorld process.
    How can I acess the results of this process by using RMI?
    Thank youf for replies.
    Marc
    Properties props = new java.util.Properties();
    java.net.URL url = ClassLoader.getSystemResource("context.properties");
    props.load(url.openStream());
    Locator locator = new Locator("default", "bpel", props);
    IInstanceHandle handle = locator.lookupInstance("myInstance");
    if (handle.getState() == IInstanceConstants.STATE_CLOSED_COMPLETED)
    System.err.println(handle.getResult());
    }

    Hi,
    I am having exactly the same problem.
    Was this bug ever solved ?
    Thanks,
    Claudio.

  • Has anyone got an answer from apple on how we can remove someone who had an access to clash of clans via game center and keeps on playing even if you already changed the password?

    someone loaded my clash of clans game to his device and kept on playing on it even if i already changed my password in game center, i figured he can still play as long as he doesn't load a new game center account in his device.. anyone has the solution for this??

    It won't matter what someone else may have experienced. If the iTunes Store has refused your request, then your only possible recourse at this point is to call Apple Support, ask to speak with someone in Customer Relations, and discuss the issue with them. If you have done so and they have refused to help, or you contact them and they cannot, then there's nothing else you can do as regards getting a solution from Apple. Contact your credit card company and report the charges as fraudulent.
    These are technical support forums and discussions about Apple's polices aren't allowed, so that's all we can advise.
    Regards.

  • How to change the asynchronous bpel to synchronous pbel

    Hi All,
    Let me know how to change the asynchronous bpel to synchronous pbel or synchronous pbel to asynchronous bpel.
    thanks in advance..
    Hari

    HI,
    Hi go through this link.
    It is explained there with mnute details.
    http://suryaveer-chauhan.blogspot.com/2007/06/converting-synchrous-bpel-process-to.html
    Thanks
    Akshay

  • How to obtain response from asyn bpel process invoked through java

    I need to get the response from Asynchronous bpel process which im invoking through java using DeliveryPost method whose return type is void.

    I was able to write java code for the above process
    the code is here
    NormalizedMessage nm = new NormalizedMessage( );
    String uniqueBpelId = com.collaxa.cube.util.GUIDGenerator.generateGUID();
    java.util.Map msgProps = new HashMap();
    // NormalizedMessage res = deliveryService.request("OraFormsService", "initiate", nm);
    //deliveryService.post(null,null,null,null);
    msgProps.put("conversationId",uniqueBpelId);
    nm.setProperty("conversationId",uniqueBpelId);//to set the property for this message
    nm.addPart("payload",xml1);//to add to the payload of this message
    deliveryService.post("OraFormsService", "initiate", nm);
    // System.out.println("con1 "+IDeliveryConstants.STATE_HANDLED);
    StringBuffer buf = new StringBuffer();
    WhereCondition cond;
    cond = new WhereCondition(buf.append(SQLDefs.IM_state).append( " = " ).append(IDeliveryConstants.STATE_UNRESOLVED ).toString() );
    //cond = WhereConditionHelper.whereInstancesOpen();
    IInvokeMetaData imd[] = locator.listInvokeMessages(cond);
    String ids[] = new String[imd.length];
    // print out the partial process information
    // for processes in manual recovery status on invoke
    for (int i = 0; i < imd.length; i++)
    System.out.println("ConversationId=" +
    imd.getConversationId());
    System.out.println("ProcessId=" +
    imd[i].getProcessId());
    System.out.println("State=" + imd[i].getState());
    ids[i] = imd[i].getConversationId();
    Thanks for the Help

  • How to get response from an asynchronous BPEL process in Java

    I'm experimenting with BPEL and doesn't seem to be able to get response from an asynchronous BPEL process. Here's the deal:
    I have a BPEL process that takes a string as input, and gives another string as output. This is a asyncronous process.
    I want to initiate this BPEL process as a web service so I generate a Webservice Proxy in JDeveloper 10g (10.1.3.0.4). The function to call the process is now called "initiate" and takes three arguments: the input string, a "org.xmlsoap.schemas.ws._2003._03.addressing.EndpointReferenceType replyTo" and a
    "org.xmlsoap.schemas.ws._2003._03.addressing.AttributedURI messageID".
    HTTP-Analyzer shows that invoking the BPEL process with initiate("somestring", null, null) results in sending a SOAP message to the BPEL process, which returns a "202 Accepted". How do I get the response from the process? My intuition tells me that I have to use that second argument, that EnpointReferenceType thing. How do I use that?
    Another question: If a asynchronous BPEL process does not exists (so the endpoint does not exist) the Java proxy does not throw an error when runned. It does not even sends a message. It exits with status 0! (This happens for example when deploying a new version of a process and when the "old" version is undeployed). Calling a non-existing synchronous BPEL process, the Java proxy DOES throw an error.

    Clemens,
    That all sounds logical. But somehow it is still a mystery for me ... Somehow I don't see what should be done.
    To call the async BPEL process I have the following procedure:
    initiate(String input, org.xmlsoap.schemas.ws._2003._03.addressing.EndpointReferenceType replyTo, org.xmlsoap.schemas.ws._2003._03.addressing.AttributedURI messageID)
    The first argument is the input for my BPEL process. The second is the address to a webservice that should handle the callback, right? The third is a messageID (makes sense, but why of the type AttributedURI?).
    Here lies my problem. It is not clear to me how these EndpointReferenceType & AttributedURI work. I can't find anything on the net about it. The AXIS examples as where mentioned earlier use other types (namely the "org.xmlsoap.schemas.ws.addressing.MessageID" and "org.xmlsoap.schemas.ws.addressing.ReplyTo") which are completely different.
    What I did so far:
    - I created an webservice proxy that listens on the onResult endpoint of the BPEL process.
    - I created an webservice proxy that calls the BPEL process through the initiate procedure, but it is not completely clear to me how to construct the EndPointreferenceType replyTo, and the MessageID. I did something like this:
    EndpointReferenceType replyTo = new EndpointReferenceType();
    // callback service running on local machine
    // This URI class is the java.net's version
    URI replyToURI = new URI("http://vaccinatie:8988/syncro-callback-context-root/stringconcatCallbackBindingPort");
    // This AttributedURI is the org.xmlsoap.schemas.ws._2003._03.addressing's version
    AttributedURI address = new AttributedURI();
    // the only public methos that made sense to me:
    address.set_value(replyToURI);
    replyTo.setAddress(address);
    // call the BPEL process
    myPort.initiate("test123", replyTo, address);
    But the above doesn't work (largely because I don't know what I'm doing here prob.:-) ) It does send the "test123" message, and the BPEL process does process it, but I don't seem to get the callback right.
    I hope this makes my problems somewhat clearer. I hope someone can help me, because I'm just a beginner in this whole "web service area" and seems to do something terribly wrong here, because it should be very simple. Thx.

  • How to get the callback from an asynchronous BPEL?

    Hi, I have deployed an asynchronous BPEL on Oracle Application Server as a Web Service. The BPEL is named CreditRatingBPEL. The input is a social security number (Ssn) and the output is a credit rating.
    Now I have some troubles in consuming BPEL with Axis1.4. I have generated the client stubs by WSDL2Java tools. I have initiated the asynchronous BPEL successfully. Now I want to get the callback from the BPEL, but I don't know how to do it.Here are some Java snippets:
    public static void main(String[] args) throws ServiceException, RemoteException {
    // TODO Auto-generated method stub
    CreditRatingBPEL_Service service = new CreditRatingBPEL_ServiceLocator();
    CreditRatingBPEL_PortType requestPortType = service.getCreditRatingBPELPort();
    CreditRatingBPELProcessRequest request = new CreditRatingBPELProcessRequest();
    request.setSsn("31060931");
    // asynchronous invoke
    requestPortType.initiate(request);
    // how can I get the callback from the web service?
    I will be very appreciated if you can give me some suggestions. Best regards!

    Checkout following link -
    http://www.sapfans.com/sapfans/forum/intface/messages/4289.html
    Cheers
    Sanjeev

  • How to call a Asynchronous bpel process from a PLSQL procedure?

    How to call a Asynchronous bpel process from a PLSQL procedure?

    Hi,
    You could do something smart and technical very spiffy with soap-stacks in the database and/or dbms_ws/dbms_http. But I allways find AQ with AQ-adapter the simplest. Let Pl/sql enqueue a message on an aq-queue and subscribe an aq-adapter process on it. That can call your async-bpel process. If you want to get answer back in pl/sql, let the aq-adapter process enqueue a response message on another queue or on the same queue with another consumer name. Give it a correlation-id that you provided in the payload of your request message. Your pl/sql process can then do a dequeue on that correlation-id. It will sit and wait until a message with that correlation id is enqueued on the queue.
    Regards,
    Martien

  • Throwing a fault from an asynchronous bpel process

    Hi,
    can anyone please let me know how i can throw a fault to the calling client from an asynchronous bpel process?
    (synchronous bpel uses the fault of the reply activity to do the same - i want a similar thing in a callback-invoke of an asynchronous process or any other way to do it if at all)
    please let me know if it is possible becoz it was a requirement put forward by a customer and i just want to develop a proof of concept to the same.
    regards,
    pavan.

    Hi,
    I'm using BPEL process manager for calling a asynchronous web service,I can invoke the service from BPEL and the service is invoked correctly,but when I view the business process flow in BPEL Console my process is stopped at receive state and doesn't pass it.
    Could anybody tell me if any thing should be set to receive a callback from an asynchronous web service to BPEL process?
    Is it true that BPEL process receives a callback automatically (using a callback operation which I defined in my web service WSDL) on the same port type that normally receives the requested information, with an invoke activity?
    So what could be wrong with my process or invoked web service that the BPEL process doesn't get any reply from my web service and remains in receive activity?
    Thnx in advance,
    Nasim

  • Can an synchronous ESB process initiate an asynchronous BPEL process?

    I have a requirement to create a synchronous ESB service that initiates an aysnchronous BPEL process returning a success message to the requesting system.
    I can create an esb that receives a paylaod from the requesting system and returns a receipt message, I then created an asynchronous bpel process.
    Although I can initiate the asynchronous bpel process from the ESB I cannot work out how to send back the success message? The routing rules do not allow setting of outgoing messages unless you call a synchronous process?

    Can you make the BPEL process synchronous. Calling a asynchronous process breaks your synchronous message, because what happens if your asynchronous process takes longer that 1 minute. The synchronous process will timeout but the asynchronous process will complete.
    The previous note is correct you can use queues but all this will do is tell you that you posted correctly, you get the same result calling a web service. Asynchronous is fire and forget in a ESB world as it is stateless.
    cheers
    James

  • Invoking asynchronous BPEL process from java ui

    Hi,
    I am invoking an asynchronous BPEL process from java ui.
    I read somewhere that i can obtain an instance handler uing the lookupInstance() method of class Locator using the conversation id provided by the class NormalizedMessage.
    My code looks like this
    // Connect to Oracle BPEL server
    Locator locator = new Locator("default","bpel");
    IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
    // Construct a normalized message and send to Oracle BPEL Process Manager
    NormalizedMessage nm = new NormalizedMessage();
    nm.addPart("payload", xml);
    // Initiate the BPEL process
    deliveryService.post("MyLoanFlow", "initiate", nm);
    //Obtain the instance handler
    IInstanceHandle handle = locator.lookupInstance(NormalizedMessage.CONVERSATION_ID);
    But this is giving the error - can not find any instance with conversation id 'conversationId'.
    Also, if i try to obtain a list of instance handles associated with a process , it does not contain the most recently created instance
    IBPELProcessHandle ph = locator.lookupProcess("MyLoanFlow");
    IInstanceHandle[] iHandler = ph.listInstances();
    out.println(iHandler.length + "<br>");
    if i invoke the process for the first time the output is 0.
    can you please help me. it is urgent.

    Hi Sudipto,
    Regarding your second question,
    deliveryService.post("MyLoanFlow", "initiate", nm);
    IBPELProcessHandle ph = locator.lookupProcess("MyLoanFlow");
    IInstanceHandle[] iHandler = ph.listInstances();
    out.println(iHandler.length + "<br>");
    ---- returns 0 ---
    This is because MyLoanFlow is an asynchronous process in your case. So the control is returned to your java block immediately after the request for a new instance is posted. And your second line of code(querying for the list of instances) is executed even before the instance is created on the server side. You can verify this in two ways:
    1. try creating an instance of a synchronous process using IDeliveryService.request - this will always result in the increment since the current thread is blocked till the new instance is created.
    2. for your case, you can try
    Thread.currentThread().sleep(500); - just allow the server some time for completing the instance before you query it for the list of instances..
    and wrt question 1,
    //Obtain the instance handler
    IInstanceHandle handle = locator.lookupInstance(NormalizedMessage.CONVERSATION_ID);
    But this is giving the error - can not find any instance with conversation id 'conversationId'.
    For setting the conversationId, you could do so by including the following inside your .bpel file
    <bpelx:exec name="test-setConversationId" language="java" version="1.4">
    <![CDATA[
    setConversationId("conversationId");
    ]]>
    </bpelx:exec>
    The code:
    IInstanceHandle ins = locator.lookupInstanceByConversationId(NormalizedMessage.CONVERSATION_ID);
    should fetch you the required instance in this case.
    HTH,
    Anuj

  • HowTo get the callback from an asynchronous BPEL process to an ESB?

    Hi,
    I have deployed an asynchronous BPEL-process which is called from an ESB. So far no problems. But I want to receive the callboack fromt this BPEL process on the ESB, too.
    How is this possible?
    Note: I have created the BPEL-Process before I created the ESB. So I cannot add the ESB as a partner link in the BPEL Process. Or is this the only way?
    Message was edited by:
    user636134

    Hi,
    I have deployed an asynchronous BPEL-process which is called from an ESB. So far no problems. But I want to receive the callboack fromt this BPEL process on the ESB, too.
    How is this possible?
    Note: I have created the BPEL-Process before I created the ESB. So I cannot add the ESB as a partner link in the BPEL Process. Or is this the only way?
    Message was edited by:
    user636134

  • Correlation for asynchronous system via websphere MQ from a BPEL client

    I could able to find samples for correlation in BPEL while invoking asynchronous webservices.
    Query 1. Are there any samples for Correlation while invoking asynchronous system via websphere MQ from a BPEL client?
    Eventhough I could see some BPEL samples under "\bpel\samples\tutorials", there is no documentation corresponding for each scenarios.In the BPELdeveloper manual, it has been mentioned to see the documentation available in the corresponding directories for instructions on running these tutorials.But there are no such documentations in it.
    Query 2.Can anybody suggest on this regarding documentation especially for the 113.ABCARouting tutorial.

    I understand the MQadapter inconsistency is my problem. Besides that below I have presented some more details regarding what I configured in BPEL...
    MQ adpater(Synchronous Get msg from MQ and send reports) ----> receive1---->Assign1----> Invoke1------->MQ adapter(Asynchronous send msg to MQ and get reports) -----> Receive2 ----> assign2 ---->reply1 ---->MQ adpater(Synchronous Get msg from MQ and send reports) .
    The MQ adapters has been configured for opaque schema. I was constructing the above flow step by step..(Initially with an MQput adapter instead of asynchronous mq adapter and ensured correct operation of messages). Then modified with asynchronous adapter and posted a message. Now the message got strucked at assign1 itself. The error instance in Assign_1 is below...
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>empty variable/expression result.
    xpath variable/expression expression "/ns3:opaqueElement" is empty at line 75, when attempting reading/copying it.
    Please make sure the variable/expression result "/ns3:opaqueElement" is not empty.
    </summary>
    </part></selectionFailure>
    Sorry for the paining you .....I may be wrong at some point as I am new to this IT field.

Maybe you are looking for

  • Need solution for use of IS/AS in function/procedure.

    Hi All, What is the diffence in IS / AS using in procedure /function .. could you please tell ...

  • Customer details(finding out duplicate customers)

    Hello All, I am working on a report in CRM which displays all the details of customers. For that i need to hit the table 'BUT000' which is having 50 millions of records in production. if i write the select it will be performance problem i assume, and

  • Cluster bar chart throwing XML exception

    Hi, I am new to oracle Application express, I want to create a cluster bar chart in a page. I tried creating chart in region with chart as (SVG) and cluster bar. When I created the 1 series worked fine. After I created the page I edited the chart att

  • Process hangs when it tries to create an applicationmodule in a webapp

    Hi, Maybe someone can helpme with this. Our messaging project works standalone perfectly with no datasource configuration on the applicationmodule. Now we try to start (embedded oc4j ) the background processes of the messaging project with a servlet

  • Add feild in result list

    hi experts, I need to add a field in  the result list for component BT111S_OPPT/Search ,in context node 'RESULT' .i have added a couple of  EEWb feild  for business_transaction object and they are appearing in Search node,but i also need them in the