Collecting synchronous responses and transforming in BPM

Friends,
Iam perplexed with a BPM scenario.
We are making synchronous calls to web service using BPM, we are getting response for all the calls.we will use these responses for one more transformation.
Can you please explain me how to collect all the response from web service and then transform it message by message?
Thanks for looking into this.
Regards,
Pavan

Hi Pavan,
  For your requirement  SAP predefined BPM Patterns ( Name: BpmPatternMulticastParallel or Sequential) can be used.Please go thorugh the patterns 6 & 7 in the follwing blog and refer the BPM patterns in BASIS component in the IR for more details on properties of BPM steps.
Blog :     /people/sharathchandra.girmaji/blog/2008/09/11/bpm-with-patterns-explained-part-2
Refer the follwong thread that discuss similar requirement.
Thread:  Re: Collecting set of files and posting them through a single message
Thanks,
Ram.

Similar Messages

  • How to auto collect form responses and get an email notification?

    Is there a way to auto collect form responses AND get an email notification? Currently I have my form set up to auto save and collect the responses and its working well but I cannot figure out how to add an email notification as well so we know when to check for new submissions.

    [discussion moved to FormsCentral forum]

  • REG : HTTP header fields (Synchronous response)

    Hi All,
             Can anyone please explain the advantage of using this function in the receiver HTTP adapter( ie
    "Set adapter specific message attribute -> HTTP header fields (Synchronous response)")
    and how this can be implemented?
    Thanks in Adavnce,
    Siva

    >
    sivarama krishna wrote:
    > Hi All,
    >
    >          Can anyone please explain the advantage of using this function in the receiver HTTP adapter( ie
    > "Set adapter specific message attribute -> HTTP header fields (Synchronous response)")
    >  and how this can be implemented?
    >
    >
    >
    > Thanks in Adavnce,
    > Siva
    from help:
    If you want to save HTTP header fields from the synchronous response in the XI message header, choose HTTP Header Fields (Synchronous Response) and enter the fields in the fields Field 1 to Field 6.
    The fields must have the same names as the fields that are also to be sent in the HTTP response.
    The technical names of the fields are HeaderFieldOne,...,HeaderFieldSix.
    this means that in case you look to access the header of the response message of a sync http you can use this ASMA.
    the implementation will be in your response mapping, using dynamic configuration - /people/shabarish.vijayakumar/blog/2009/03/26/dynamic-configuration-vs-variable-substitution--the-ultimate-battle-for-the-file-name

  • BPM with split synchronous calls and merge

    I need to create a BPM that will take a synchronous request message. The synchronous request message contains a customer ID based on two synchronous web services are called on 2 different systems. The results of these need to be merged and sent back as a synchronous response.
    Please help me formulate this BPM, as I am a little weak in this area.

    Hi Hemal,
    You can proceed like this. Use a receive step to receive the request message. Then use 2 synchronous send steps to send the request to the web services.  Use the mapping outside the BPM(recommended as it reduces the load on the BPM). The send step will itself receive the response. Now use a transform step that uses the mapping to merge the response messages. And then a send step to send the output on the target side.
    For more discription on synchronous messages have a look in this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    For collecting and bundling of messages use this:
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    Regards,
    Sanjeev.

  • BPM Collect Scenario errors at transform stage

    The BPM Collect scenario is using a Fork within a Block.
    Branch 1 - Loop Receive Append Container Endloop
    Branch 2 - Receive step of triggerIdoc
    End of Block
    Transform step - multiline container of XML documents to one XML document
    Send step
    BPM Errors at Transform step with JCo mapping not available.
    Whilst BPM in Error (Workflow in Error) more messages being received but never processed as the RECEIVE event is "lost" for these messages.
    We are looking at redesigning the BPM to reduce the likelihood of this transform error.
    In the meantime was looking at ways to Alert the administrator straight away to the error. As we have a workaround to get the process going and to pick up the stranded messages. So have started setting up the ALERT categories as described in How to Guide, for Adapter and Interface. Will this work?
    Also in the Transform step there is a box (system exception) but I can't enter anything in. Is there a way to do this if the Alert category doesn't report an error in the BPM. OR do I have to add the Transform step into a Block of its own?
    Advice gratefully received if we come up with a working solution will post it out here. Have spent a large amount of time reading posts and blogs on here but have not got a clear picture yet of what is best to do.
    thanks,

    > Whilst BPM in Error (Workflow in Error) more messages
    > being received but never processed as the RECEIVE
    > event is "lost" for these messages.
    This should give you an issue called Parked Messages. The best way to deal with this is to actually define a Local Correlation. In the Block Step properties, you will have an option, Use Correlation --> Give the name of the Correlation . This will make sure that when there is an error, the Correlation become inactiva and a new BPM instance is created.
    > In the meantime was looking at ways to Alert the
    > administrator straight away to the error. As we have
    > a workaround to get the process going and to pick up
    > the stranded messages. So have started setting up the
    > ALERT categories as described in How to Guide, for
    > Adapter and Interface. Will this work?
    Not sure if this will work. The issue is that the messages are passed to the IE already and will be in wait step waiting for an active BPM 's receive step How will another interface pick up this message?
    > Also in the Transform step there is a box (system
    > exception) but I can't enter anything in. Is there a
    > way to do this if the Alert category doesn't report
    > an error in the BPM. OR do I have to add the
    > Transform step into a Block of its own?
    This is what is called exception handler. Defined a Exception handler for the Block. Right Click block, insert Exception Branch, give name of the Hanler and then you can select this in the Transformation Step's System Error. This is like Try - Catch of Java.
    Regards
    Bhavesh

  • How to collect form responses in adobe formscentral and at the same time receive form responses through email

    My client wants to have the form that I created in FormsCentral to be able to collect email responses. So to do this, I downloaded the form as PDF then imported it into Acrobat. I created a button in Acrobat (this will be for the email response part). I used this script for that function:
    // This is the form return email. It's hardcoded
    // so that the form is always returned to the same address.
    // Change address on your form to match the code below
    var cToAddr = "[email protected]"
    // First, get the client CC email address
    var cCCAddr = this.getField("ClientEmail").value;
    // Now get the beneficiary email only if it is filled out
    var cBenAddr = this.getField("BennyEmail").value;
    if(cBenAddr != "")
    cCCAddr += ";" + cBenAddr;
    // Set the subject and body text for the email message
    var cSubLine = "Form X-1 returned from client"
    var cBody = "Thank you for submitting your form.\n" + "Save the filled form attachment for your own records"
    // Send the entire PDF as a file attachment on an email
    this.mailDoc({bUI: true, cTo: cToAddr, cCc: cCCAddr, cSubject: cSubLine, cMsg: cBody});
    I got it from here: http://acrobatusers.com/tutorials/dynamically-setting-submit-e-mail-address
    I'm still kinda not sure how it works but I'm getting the idea. Now what I'm having trouble with is, how do I make it so that the user will be required to click on the scripted button and at the same time, also click on the FormsCentral's generated submit button? Because as I see it, the user can click on the scripted button but they can just close out the form without submitting it to FormsCentral.
    Is there any way to make my idea work?
    Any help is very much appreciated!
    Thanks!

    I do not know or have time right now to look up NDP format.
    To write to NTFS from Mac, you need a driver.
    And to write to HFS from Windows also.
    I strongly recommend Paragon drivers for both.
    That way you can access anything from any platform.
    Paragon Software for Mac

  • BPM Idoc collection without calling the mapping in BPM

    Hi Expert,
    I have an IDOC to file scenario in which source side I have to collect multiple IDOC and map it to a single file .I am achieving it through BPM . at present I am using one multimapping and calling this mapping in the BPM under transformation step its working  fine  but due to some constraint  , Now I want to achieve it using BPM but without calling the Mapping in the BPM i.e I don't want to use Transformation step in the BPM. Is it possible ????
    Regards,
    Saurabh

    Hi Saurabh,
    If that is the case it is preferable to collect the IDocs in ECC and then send them to XI at one go.
    Cheers !
    Lokesh

  • Deffernce betweens file,birgde,transform in BPM

    Hi All,
    Can anyone explain about defference between those BPM's
    Regards,Raja

    Hi Raja,
    Please go through below explanation,
    Each step type used in BPM have its own individual importance  and attributes. We can't compare these steps with each other
    defference between transform and switch
    The purpose of using transform step is as I had already posted above,
    n:1 Transformation --Bundles multiple messages into one message,
    1:n Transformation --Splits a message into multiple messages,
    1:1 Transformation --Converts a message into another message.
    The purpose of using switch step is as,
    You use a switch () to define different processing branches for a process. The Otherwise processing branch is created automatically.
    You define a condition for each processing branch (see also: Condition Editor). The condition is checked at runtime. The process is continued in the branch that is first to return the value true. If no branch returns the value true, then the process is continued in the Otherwise branch.
    deference between birdge and transform,
    The transform steps transform the message format either combine or split multiple messages or convert toanother message format.
    Whereas bridge is concept used for integrating  Synchronous and asynchornous sender and receiver systems.
    I hope now you got the idea about these BPM steps. We can't make comparison for it. Each step have its own image. May I kindly request you to go through below links it will help you to explain the improtance and step by step procedures of all BPM steps.
    The various steps of the BPM are clearly explained in the following links, You can follow these to configure your BPM.
    Recieve step:
    http://help.sap.com/saphelp_nw04/helpdata/en/75/cc283f2bbad036e10000000a114084/content.htm
    Transform Step:
    http://help.sap.com/saphelp_nw04/helpdata/en/27/db283fd0ca8443e10000000a114084/content.htm
    Block:
    http://help.sap.com/saphelp_nw04/helpdata/en/f6/e1283f2bbad036e10000000a114084/content.htm
    Container operation:
    http://help.sap.com/saphelp_nw04/helpdata/en/59/e1283f2bbad036e10000000a114084/content.htm
    Switch:
    http://help.sap.com/saphelp_nw04/helpdata/en/6a/db283fd0ca8443e10000000a114084/content.htm
    Loop:
    http://help.sap.com/saphelp_nw04/helpdata/en/76/5d373f5e550456e10000000a114084/content.htm
    Send Step:
    http://help.sap.com/saphelp_nw04/helpdata/en/86/80163f6b5baa09e10000000a114084/content.htm
    Please let me know if this explanation clearify your doubt.
    Thanks
    Swarup
    Edited by: Swarup Sawant on Jan 27, 2008 9:14 PM

  • How To get Synchronous response over a long duration

    Hi
    I have scenarion where i have to invoke an interface in XI from a web dynpro application. Invocation  can be imlemented by invoking the web service exposed from XI but after the invocation the duration for which the service will execute is not known.. it depends on the volume of data. In some case the duration might be 15 secs while in other cases it might also be be 5 min or greater than that.
    My question is will the web dynpro application still keep on waiting for the response for say 6-7 min thus enabling a synchronous call or as i feel it will time out before the response comes in.
    If it will time out is there any other mechanism by which it can keep listening for the response and as soon as it is avaliable it dynamically shows the success message on the screen without using any other event(eg without having to click a button which would again go and fetch the response).
    Please suggest an optimal approach  that can be followed.
    regards
    Nilesh

    Answered on my own:
    Just have to use
    x_result = http_client->response->get_data( ).
    instead of
    x_result = http_client->response->to_xstring( ).
    Just don't knwo why the filesize is wrong also - but I can work with this image!

  • Help XSLT Data Mapper and Transformations

    Hi guys,
    I need help in oracle ESB (XSLT Data Mapper and Transformations). I need to use the XSLT Data Mapper and Transformations using Response XML to Request XML.
    Thanks
    Vyas

    The concept is the same as BPEL. Without going into too much detail have a look at the folowing tutorial.
    http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28212/buildendtoend.htm#BEICEFJD
    Near the bottom they show how to do transformations.
    cheers
    James

  • Web service response processing inside a BPM

    Hi Experts,
    Please can you let me know if it is possible to achieve the following inside a BPM:
    u2022     Once you getting the web service  SOAP response, determine if itu2019s a SOAP fault or a normal web service response.
    u2022     If itu2019s a SOAP fault, create a retry loop with a wait step inside the BPM to try and retry the process (perhaps 5 times in 1 minute intervals).
    u2022     After the retry intervals, if the message is still in a failed step, force the BPM to go into an error state
    u2022     If the Web Service returns a normal response, log the response inside a database table and end the BPM
    If it is possible, please can you provide an example?
    Thank you,
    Brendon

    Hi
    Have you found the workaround?
    Sorry for refreshing topic. Flag mustUnderstand ='1' in response is unussual thing.
    BR

  • CCMSPING not collecting "Dialog Response Time"

    In Solution Manager 4.0, we have configured the CCMSPING agent to monitor a number of systems.  For only two of those systems, CCMSPING is not collecting "Dialog Response Time" (Availability_DiaRespTime) and "Standardized Response Time" (Availability_StdRespTime) data.  All other MTE's for those two servers are being successfully collected.  Looking at CPH, for at least one of those systems, the data was collected for a couple of weeks and then stopped.  For the other system, that data has never been collected.  The two systems with problems are the only two ECC 6.0 systems in the landscape.  In the RZ20 monitor, all that it says is that the "Value is obsolete".  I have deactivated and reactivate CCMSPING one of the systems without any change.
    Has anyone seen anything like this?  Is there any way that I can find out what errors are occurring?

    I have already a ccmsping agent registered on my central system but it seams to be not correctly registered.
    I registered correctly the agent with the '-push' option and it seams to work properly now.
    Thanks for your response
    Regards,
    Emmanuel Coindre.
    [www.emmanuelcoindre.fr|http://www.emmanuelcoindre.fr]

  • Regaring Synchronous communication and ASynchronous Commu

    Hi,
    Can any please describe me  for the above Synchronous communication and ASynchronous Commu. Please don't send any weblogs.. Or Documentations please  type the answers in simple language  just to understand excatly.
    1.  when to use these.
    2.  where to use..
    3.  How its Usefull

    Hi,
    When you make a synchronous call i.e the message is sent, the receiving system is  active and can accept the call and further process it if necessary.
    It is advantageous in a scenario which requires immediate return of data to the sender system.
    One example would be where, you create a purchase order with account assignment in the sender system, and you want to perform a budget check in central accounting before you save the purchase order.
    A disadvantage would be that both systems are required to be active.
    In Asynchronous communication the receiving system does not necessarily have to be available at the time a function call is dispatched from the sender system. The receiving system can receive and process the call at a later time. If the receiving system is not available, the function call remains in the outbound queue of the sending system, from where the call is repeated at regular intervals until it can be processed by the receiving system.
    An example would be, you are sending a purchase order to a vendor system. The sending system cannot influence the availability of the receiving system. If the receiving system is not available, the purchase order can be sent repeatedly until the vendor system is available again.
    The obvious advantage of async communication is that the receiving system does not have to be available at the time the function call is made and the disadvantage is that processes that require an immediate response to the sender system cannot be executed using this method.
    Hope this gives a clear idea of sync n async communication.
    Regards,
    Chandra

  • Collect Multiple Responses Into Single Column

    I need a form that can collect multiple names and phone numbers and save the data in two columns. One column for names and one column for phone numbers.
    How can I do this?

    My form looks like this:
    Name:
    Phone:
    Name:
    Phone:
    Name:
    Phone:
    So responses come in looking like this:
    Name:          Phone:                 Name:          Phone:             Name:          Phone:
    John             xxx-xxx-xxxx          Jane          xxx-xxx-xxxx          Paul          xxx-xxx-xxxx
    I need them to look like this:
    Name:          Phone:
    John          xxx-xxx-xxxx
    Jane          xxx-xxx-xxxx
    Paul          xxx-xxx-xxxx

  • Collections.synchronized() not working?

    I have an ArrayList that I synchronized using the Collections.synchronized() method as such:
    private List<SongFileWordImage> songFileWordImages = Collections.synchronizedList(new ArrayList<SongFileWordImage>());And then I synchronized on that object:
    synchronized (songFileWordImages) {
         for (SongFileWordImage sfwi : songFileWordImages) {
              // System.out.println("sfwi.getLyric(): " + sfwi.getLyric() + "
              // sfwi.getPositionIndex(): "+ sfwi.getPositionIndex());
              if (sfwi.getPositionIndex() > this.getWidth()) {
                   songFileWordImages.remove(sfwi);
    }Yet I still get a java.util.ConcurrentModificationException in the synchronized block. What gives?
    Edited by: J_Y_C on Dec 19, 2007 11:27 AM

    It has nothing to do with synchronization. You should use standard for loop instead for each. The secon one uses hidden iterator to iterate over Iterable and you are trying to change the songFileWordImages list while its iterator is in use. Thus any subsequent modification to this list while its iterator is in use will result in java.util.ConcurrentModificationException. Simply replace the for each loop with standard for over iterator and remove an item using iterator remove() method:
    synchronized (songFileWordImages) {
        for (Iterator<SongFileWordImage> sfwiIter = songFileWordImages.iterator(); sfwiIter.hasNext();) {
            SongFileWordImage sfwi = sfwiIter.next();
         // System.out.println("sfwi.getLyric(): " + sfwi.getLyric() + "
         // sfwi.getPositionIndex(): "+ sfwi.getPositionIndex());
         if (sfwi.getPositionIndex() > this.getWidth()) {
              sfwiIter.remove();
    }

Maybe you are looking for