BPM Correlation problem

Hi All,
        I did BPM correlation scenario. According to this scenario I have to send 2 messages, if I send two messages from the sender side it is working fine. If I send one message from sender side it is waiting until second message reach. Here my problem is if the second message may not send, I want to kill the message waiting process at a specified time. Please help me how to do this process.
Thanks ,
Kumar.

Hi,
There is a 'Deadline branch' dedicated for this purpose. In a block you can introduce a deadline branch.
Go thro the link for more details:
http://help.sap.com/saphelp_nw04/helpdata/en/c5/582541019fa52fe10000000a155106/content.htm
Regards,
P.Venkat

Similar Messages

  • BPM Correlation from Dynamic Configuration not being filled

    Hey guys,
    I'm having the following problem with BPM correlation.
    In my correlation definition, I have 2 fields: one which is filled with information from the message payload, and another one which is filled with a context object (which was created with adapter metadata and filled with dynamic configuration, as refered here: /people/michal.krawczyk2/blog/2006/10/09/xi-dynamic-configuration-in-adapter-modules--one-step-further).
    All instances of BPM are with error status. And when I go into the workflow log for these processes, if I check the correlation object, it is like this:
    <?xml version="1.0" encoding="utf-8" ?>
    <CorrelationKey Version="001">
    <Field1 />
    <Field2>123456789</Field2>
    </CorrelationKey>
    Field1 is the one read from context object, and is not being filled (thus I think the error comes from here). Field2 is from payload and is being normally filled.
    Any ideas on this matter?
    Maybe the problem is not from the correlation. If not, what else could be the case? The BPM crashes on the very first step (one more reason to think that the correlation is the issue).
    Thanks in advance,
    Henrique.

    HI,
    In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
    if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
    Regards
    Chilla
    Oh closed!!
    Message was edited by:
            Chandra Sekhar Chilla
    Message was edited by:
            Chandra Sekhar Chilla

  • BPM correlations

    Hi friends,
         I am doing file to file sceanrio using BPM. The scenario is it is having 2 input files as inputand one file as output.So i have used BPM. In that i have used fork step.In fork, i have used 2 receive steps.It is asking for correlation. How to give correlation?What name we have to give?Please explain and provide the solution for solving the correlation problem.
    Thanks,
    Leela

    Hi Leela,
    Use a BPM to collect the files. You will need corelation and then use the Transformation Step to create the mapping , Switch for checking of any conditions etc.
    Check this link for example scenarios,
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    Corelation is used when you have multiple Receive Steps in your BPM.
    Consider a case, when you have multiple receive in a fork in a BPM.
    Say receive A of branch 1 receives a file and is waiting for the file for receive B of branch 2 of the fork. Before, this file is available, say another BPM is instantiated because receive A has got the file. So, we have 2 active BPM's waiting for the Files of Recive B.
    When this file is available how to determine which BPM this belongs to? The first or second? This is solved using Correlation.
    In your case, as you have one receive and then multiple Send steps you do not need corealtion.
    This may help you in BPM:
    Recive Step
    You can use a receive step for the following purposes:
    Starting an Integration Process
    Receiving Messages in Integration Processes
    Defining Sync/Async Communication
    Send Step
    You can use a send step () for the following purposes:
    · Sending Messages from Integration Processes Asynchronously
    · Sending Messages from Integration Processes Synchronously
    · Sending Acknowledgements from Integration Processes
    · Defining Sync/Async Communication
    Reciever Determination Step
    You use a receiver determination step () to get a list of receivers for a subsequent send step. The receiver determination step calls the receiver determination that you configured in the Integration Directory and returns the receiver list.
    Transformation Step
    You use a transformation step ( ) to do the following:
    ● n:1 Transformation
    Bundles multiple messages into one message, for example, individual purchase order items into one purchase order.
    ● 1:n Transformation
    Splits a message into multiple messages, for example, a purchase order into the individual purchase order items.
    ● 1:1 Transformation
    Converts a message into another message, for example, a message that is defined by interface A is converted to message that is defined by interface B.
    Switch
    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.
    The system checks the conditions in the order that they are numbered. This corresponds to the following sequence:
    · Vertical layout: From top to bottom
    · Horizontal layout: From left to right
    Container Operation
    You use a container operation () to set a value for a target container element at runtime (see also: Defining the Data of a Process in Containers). The target container element and the assigned value must have the same data type. To specify the value, use the expression editor (see also: Using the Expression Editor .
    You can:
    · Assign
    Assigns a value to a single line or multi-line container element. This value overwrites the previous value. You can use this container operation to count a counter variable, for example.
    · Append
    Appends a value to a multiline container element. For example, you can use this container operation to append individual messages to multiline container elements when gathering messages together.
    Control Step
    You use a control step () to do the following:
    · Terminate the current process
    · Trigger an exception
    · Trigger an alert for Alert Management (see also: Triggering an Alert)
    Block
    You use a block () to combine steps that you want to execute one after the other and which are to access the same local data (see also: Containers). You can also use a block to combine steps that you want to have the same deadline or exception handler, or to define a local correlation.
    You can define the mode Parallel For Each(ParForEach) for a block or Dynamic Sequence (ForEach). This means that the block is executed for all elements of a multi-line container element.
    Fork
    You use a fork () when you want to continue a process in branches that are independent of each other, for example, to communicate with two systems that are independent of each other. The branches of the fork join in a union operator.
    You can specify the required number of branches and then define whether the process must run through all branches, or just a particular number of branches. Furthermore, you can define an end condition for the fork (see also: Condition Editor).
    As soon as a branch reaches the union operator at runtime, the system checks the following conditions in the specified order:
    · The process has run through the required number of branches
    · The specified end condition has returned true
    The step is complete as soon as one of the conditions returns true.
    Loop
    You use a loop ( ) to repeat the execution of steps within the loop. The loop continues to run while the end condition returns true (while loop).
    To specify the end condition, use the condition editor.
    Wait Step
    You use a wait step () to incorporate a delay in a process. Usually, you use a delay to define when the next step in the process is to start. You can define a delay as either a point in time or a period of time.
    At runtime, the step waits until the specified point in time is reached or the specified period of time has passed. The system then continues the process by proceeding with the next step.
    Check here for knowing more about fork step... http://help.sap.com/saphelp_nw04/helpdata/en/24/e2283f2bbad036e10000000a114084/content.htm
    Reward points if this helps
    Regards
    Vani.

  • Database adapter correlation problem

    Hi,
    I have to create process with this scenario:
    Started by db adapter polled table 1 for update.
    Invoke asynchronous webservice
    Waiting for message from db adapter polled table 2 for update.
    How to correlate this.
    I create process started by db adapter and I have problem to correlate it with soap wsdl operation.
    When I replace db adapter operation with soap operation based on adapter xsd correlation works fine.
    Thank you in advance

    I tried to add another adapter which works fine and there was no correlation problem.
    After hours of testing I decide to remove malfunctioned adapter and create it again.
    Fortunately works without problem.

  • Correlation Problem with Oracle BPM 2.1.2

    I have developed a BPEL process that invokes Axis web services and then wait an asynchronous message from the services, using pick with onMessage tag. Previously, I do my work with Oracle BPM 2.0.10 and designer 0.9.5, it works well. But now, I have used Oracle BPEM 2.1.2 and designer 0.9.10, my Axis web services can not send any asynchronous message to the process. What's the problem? Must I set some configuration with BPM 2.1.2 or change my original BPEL code?
    This is a fragement of my BPEL code.
              <invoke name="invokeSubscriptionProxy" partnerLink="subcriptionProxy" operation="subscribeToProxy" inputVariable="input4SubscriptionProxy" outputVariable="output4SubscriptioProxy" portType="nsxml1:NotificationProxyPortType">
                   <correlations>
                        <correlation set="correlationInteger" initiate="no" pattern="out"/>
                   </correlations>
              </invoke>
              <pick name="pick4Subscribe2">
                   <onMessage partnerLink="client" portType="tns:TestOrchestratingGeneratedGramProxy" operation="deliverNotificationFromProxy" variable="deliveredNotificationMessage">
                        <correlations>
                             <correlation set="correlationInteger" initiate="no"/>
                        </correlations>
                        <sequence>
                             <empty name="empty-2"/>
                        </sequence>
                   </onMessage>
                   <onAlarm for="'PT1H'">
                        <sequence>
                             <empty name="empty-2"/>
                        </sequence>
                   </onAlarm>
              </pick>
    When I edit this code with designer 0.9.10, it shows no error. I test my process by viewing BPEL console.
    Please help me to correct this problem.
    PS. I sure that my Axis Web servies work well.

    Hi,
    "my Axis web services can not send any asynchronous message to the process" --&gt; means when you try to invoke an Axis Web services from a BPEL process, there are no callback message from the web services, right? Did you see any exception from either the console or BPEL server DOS window?
    John

  • BPM BpmPatternCollectTime problem

    Hi,
    I've been trying to get the example pattern BpmPatternCollectTime from SAP to work on PI 7.1. This pattern waits for messages and collects them into one message. I've checked my BPM against the SAP BPM and the only difference is that I'm using XSLT mapping in the Transformation step. Is this causing the problem ?
    I've checked all the blogs I could find, searched for SDN messages, checked SXI_CACHE etc. to no avail.
    Scenario is: I'm sending multiple IDOCS from SAP HR system via PFAL, each has 200 persons in them.
    I map the IDOCs to the target format (XML) and collect them in the BPM and send to file adapter.
    Problem is I only get the first IDOC contents in target message, and the rest are missing.
    When I look at the BPM workflow log, Container tab, I can see that there are 3 messages in the MESSAGE_IN entry. I can open them and see the contents fine. This leads me to believe that my Correlation is working ok.
    Also in the Block step the COLLECTMESSAGELIST contains 3 entries as it should.
    Correlation says:
    <CorrelationKey Version="001"><ID>SAP HR</ID></CorrelationKey>
    Where 'SAP HR' is the content of the correlation XPath query I defined.
    MESSAGES_OUT in the BPM workflow log contain the same 3 messages.
    TRACE in the BPM workflow log shows that the mapping of the Transformation step executed ok. Transformation step Operations Mapping is using an XSLT mapping that is copying the input to output as is.
    When the BPM is finished the target message only contains the first IDOC data.
    How can I get the rest of the data to append to the target message ?
    Kind Regards,
    Jari Pakarinen

    Hi,
    Using this mapping XSLT I was able to get the BPM working:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://xxxx.com/xxx" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
      <xsl:template match="/">
        <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
          <ns0:Message1>
            <xsl:copy-of select="*"/>
          </ns0:Message1>
        </ns0:Messages>
      </xsl:template>
    </xsl:stylesheet>
    This means you have to wrap the mapping inside
    <ns0:Messages><ns0:Message></ns0:Message1></ns0:Messages>
    tags. This took a while to find out.
    Jari

  • BPM giving problem in Merging and Splitting

    Hi Gurus,
    Im trying to BPM scenarios,
    First i tried to Merging Two message and send to one receiver system. In that both Sender and Receiver communication channel are wokring fine.. all are showing green light.. and the files also got processed from sender side but i cant get result  the output side. i checked my abstract interfaces , interfacing mapping and Container variables in IP everthing is right.. Even  this is not 1:N or N:1 mapping , all message types are having occurance of 1:1 only. when i checked using SXMB_moni... there my two sender are succesfully sending the messages and ip getting the message.. after IP should act as a sender right. that msg not there... what would be the problem... even correlation also correct using the common filed's xpath i was combing the msg. In IP im getting the Yellow color warnin like correlating not used in sender step but no error. but i activated the correlation in sender  step and assigned the xpath of the common field.
    After that i tried to do splitting same problem occuring.. no message in receiver side.. i double checked my abstract interfaces, inbound , outbound interfaces, interface mapping and container variable everthing was assigned properly. In IP Only a blue color waring i getting like receiver determination initialized but not used but no error , but when i checked the interface determination it was fine.. i created receiver type local variabled with multiline . this is not 1;N or N;1 mapping... a simple mapping
    Please help me experts,
    Regards,
    Balaji

    Hiii experts ,
    Please help me.. i have tried many times.. still the same problem exits...
    source msg type having 5 elemtn.. first 2 element mapped first target msg type and remaining fields mapped to receiver 2 target msg type.
    IP step are configured as below
    Container Variables: send,recv1, recv2, 2 receiver type msg for receiver determination (Receiver1, Receiver2) both are multilined.
    Receiver step : sender msg type (sender abs interface type)
    Transformation : Has the interface mapping and one source msg and 2 target msg
    In fork
    Branch1:
    receiver determination1 :receiver msgtype (recv1) and  the multiline element (receiver1) type of receiver.
    sender1 step: receiver msg type (recv1) and Receiver from-> Receiver List : Receiver->Receiver1
    Branch2:
    receiver determination2 :receiver msgtype (recv2) and  the multiline element (receiver2) type of receiver.
    sender2: step.. receiver msg type (recv2) and Receiver from-> Receiver List : Receiver->Receiver2.
    But msg going to IP.. after that IP not start to send msg...
    Please tell me.. what im doing wrong here?
    Regards,
    Balaji

  • BPM Queue problem

    Hi there, i have a BPM with a Block step that has an infinite loop and collects delivery idocs, i have an exception set to 2 minutes or 500 idocs, basically when i send more than 500 idocs or it takes more than 2 minutes the first group is processed perfectly, but the remaining idocs are stuck on a queue visible under the smq2 with the status READY, does anybody has an idea of what could be the problem?,
    Best Regards,
    Roberto.

    Hi there,
    i cannot see any errors, i do have a correlation active by some region ID, but my test involves only delveries of 1 region, i don't know what could be wrong about the correlation, in addition the bpm steps goes as follow:
    - infinite loop with a receiver step inside a block step with a timeout exception
    - after that i transform those collected messages into 1
    - synchronous call to a 3rd party via webservice
    - send back the response to ECC
    Roberto.

  • IDoc Correlation Problem

    Hi All,
    I hav a scenario in BPM which recieves two IDocs and processes further. I used correlation in this. but when i triggered both the IDoc's from the R/3, i'm getting the following error:
    Unable to deliver event <b>'RECEIVED' of object 'ZXI_PROXY_DANGEROUSGOOD_A_0001'(IDoc2)</b>. I tried removing recieve for IDoc2 and it was working fine. when i introduced another recieve for IDoc2, i'm getting this problem. I tried the other way round.but, in that case i'm not getting anything(i think the IDoc is not recieved by the BPM) when i double clicked the message that is displayed in the SXMB_MONI.How can i go abt resolving this.
    any help wud b appreciated.
    Thnx
    Anil

    Hi Anil,
    Please go thru these..
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/frameset.htm
    hope these help!
    cheers,
    Prashanth

  • BPM 11g: problem initiate task from API

    Hi all,
    First of all, i have deployed a BPM process and his initiator task is a human task implementation. Then the user can click on it in teh workspace and they are redirect to my J2EE aplication, in wich i want throw a new instance of my process when the user complete the form data.
    I'm do know how to implement it, and i trying two ways:
    one: initiate a process instance with oracle.bpm.service. package the the server give me this error:
    http://kr.forums.oracle.com/forums/thread.jspa?messageID=9244238
    java.io.InvalidClassException: oracle.bpel.services.workflow.verification.impl.WorkflowContext; local class incompatible: stream classdesc serialVersionUID = 3642712178109525089, local class serialVersionUID = 1
    two: initiate a new task programmatically, is it wright? a new task of my human initiator task from java is that i need for create a BPM Process? i don't know, becouse i get this other error:
    http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10224/bp_worklistcust.htm#CIHEAFBB
    WSM-09004 Component auditing cannot be initialized
    any ideas? thank you very much in advance, and sorry for my poor english.

    I hope you have got the solution for this problem.
    will you please share the solution. as I am also facing the same...
    Thanks

  • BPM Worklist Problem After Setting Frontend Host and Port

    Hi all,
    I was following the EDG for SOA 11.1.1.5 and was encountering a problem with the BPM Worklist after setting the Frontend Host and Port. We have a topology that includes a load balancer that terminates SSL, two OHS instances, and two SOA instances on separate VMs. When BPM Worklist was loading, it was calling webservices internally through the load balancer, but WebLogic was expecting them as http://. It was not able to resolve the HTTPS port that was being sent from the load balancer through the 80 to 443 redirect.
    What the current EDG does not tell you, is that you have to also turn on "Enable Weblogic Plug-In" for WebLogic to use the OHS plug-in. I did it at the domain level, as all traffic will go through the load balancer. This essentially tells WebLogic that all URLs are https://
    Here is an exerpt from the SOA.out log file:
    <Sep 8, 2011 9:32:06 PM PDT> <Error> <oracle.soa.services.workflow.worklist> <BEA-000000> <<.> Service error.
    Internal Error; Service error occurs in IdentityService in method lookupUser.
    Refer to the log file that is configured for oracle.soa.services.identity for more details on this error and contact Oracle Support Services
    ORABPEL-10585
    Service error.
    Internal Error; Service error occurs in IdentityService in method lookupUser.
    Refer to the log file that is configured for oracle.soa.services.identity for more details on this error and contact Oracle Support Services
    Caused By: javax.xml.soap.SOAPException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=UTF-8
    What it is also missing, is that you should also set the SOA Infrastructure ServerURL mbean for the load balancer, to match the frontend host and port. Do this through Fusion Middleware Contol. Otherwise, you could encounter URL mismatches.
    I hope this helps someone else.
    I've asked Oracle to add this to the EDG for SOA. It's in the IDM guide, but not in any other EDGs.

    Thanks Josh. It helped me infact in 11.1.1.4 Enable Weblogic Plug-In is not required. But 11.1.1.5 I thing it is mandatory. Oracle should have a clear documentaion.

  • Xpath in BPM correlation. Have to pass only few characters of a field in co

    Hi All,
    Header file:
    MDk-111;1728;175;02.09.11;781961.09;0.00;0.00;781961.09;;;;;;;;;0
    MDk-112;8574;175;02.09.11;4462;1112;104098800;104102150;;;;;;;;;2
    MDk-113;1729;175;02.09.11;781962.09;0.00;0.00;781961.09;;;;;;;;;0
    MDk-114;8575;175;02.09.11;781963.09;0.00;0.00;781961.09;;;;;;;;;0
    Detail file:
    MDk-112;8574;175;02.09.11;;DEBIT;;;;;-1112;;0;02.09.11;;;;20555;;;037;
    MDk-112;8574;175;02.09.11;;CREDIT;;;;;104098800;;0;02.09.11;;;;;;;099;
    - I have to merge header and detail records into one target structure..
    - For the records which doesn't consists of detail records should pass only header record. ex: MDk-113
    - To merge the both the files, im using BPM with correlation.
    The correlation which i need to use in BPM is the first record in both the files "MDk-XXX" where XXX is the number which may or may not match in both the files.. So i need to pass only first four characters of the first filed in the correlation ie. "MDK-".
    After file content conversion, the input xml payload will be as below
    <Code>MDK-112</bankCode>
    How can I pass only first four characters of this field ("MDK-") in Xpath in the correlation tab?
    Kindly suggest.
    Thanks
    Deepthi

    Hi Deepthi,
    You can send the substring of the Code value. This is explained in the following WIKI, have a look at this.
    http://wiki.sdn.sap.com/wiki/display/XI/XpathConditioninReceiverDetermination
    regards
    Ramesh

  • Correlation Problem

    Hi guys .. M having a little problem with the correlation sets here ...here's my situation
    1. Created three Async Processes A,B and C
    2. The Reply from C should go to A directly and not through B.
    3 .This is the same thing as the Tutorial in the Sample of BPEL folder regarding Correlation Sets
    4. This channel is working properly without any problem
    5. I have another process D which calls the same operation 'receive' which Process C also calls to return data to 'A'.
    6. I have kept the two receive activities sequentially.
    7. After the first recieve is over when it comes to the second receive i m getting a null pointer exception
    8. When i remove the correlation set from the second receive it shows receive2 pending which is alright but somehow i need process D to fire the second receive as well ..it's not working ..
    9. Incase of An adapter ..file/jms etc this thing will work but i m confused why it's not working and running into null pointer..
    Any suggestion or help is highly appreciated ...
    thanks

    Hi,
    yes i did all the things ..property,property alias and all ...but still i m getting that .. i m trying to figure out how these things are working independently but when am using both in the same process ..the second receive gets the null pointer when i am adding the correlation properties on that receive..m using the Oracle soa 10.1.3.0 base version on olite for this testing..
    Edited by: andyC on Jul 7, 2010 2:15 AM

  • Correlation Problem in OpenScript with solveGroupJavaScript(String path).

    I am having problems with the correlation of solveGroupJavaScript(String path). My script is throwing the following error.
    Failed to solve JavaScript variable web.jscript.httpseformssitch...
    Does anyone know how to switch of this particular type of correlation or how I can change my script to ignore it?
    I have tried commenting out the line, this failed as I expected it would.
    With out going into too much detail my script is a record of a manager accessing an Oracle form which allows them view only of claims made by their staff.
    The scenario is
    Page 1 of script
    Access Form
    Click on view claims bar with hidden button
    Page 2
    A table drops down of claims
    A claim is selected to view
    Page 3
    Claim is shown
    Page 4
    Return to start
    Close form
    The error occurs when returning to the view claim page before closing form. I believe the problem is that the script does not find the button to view claims. On this second visit the form has reverted back to it original state with drop down table has gone. Whether it’s that that confusing the script I don’t know.
    This is the line from the script
    http.solveGroupJavaScript(http.javaScriptPath(
                                  "web.jscript.httpseformssitchris_21", 1, 3, 2, 0));
    And this is the post line
    http
                                                                     .param("source",
                                                                               "{{web.jscript.httpseformssitchris_21,form1:commandButton1}}"),
    The hidden button to view claims is called commandButton1. I refer to it as a hidden as it is hidden in a bar that runs across the form.
    Any help would be appreciated.
    Edited by: user9020510 on 09-Jul-2010 06:10

    I have found out how to edit my script
    comment out the first line and the post line should be
    .param("source","form1:commandButton1")),
         /*"{{web.jscript.httpseformssitchris_21,form1:commandButton1}}")),*/
    I do not fuuly understand this but it worked.
    I hope this may help others
    Edited by: user9020510 on 12-Jul-2010 04:53

  • Sync/Async BPM scenario : Problem at Integration Process..!!

    Hi All,
    I am doing Sync/Async BPM scenario.
    start ->Receive(Request)> Transformation(Responsemap)>Send(SendtoR/3)->Send(Send Response) ---> stop.
    When Iam trying to Activate, Integration process giving errors as
    Source parameter AA_Payment_Req | http://XXXXXXXXX.com/SAP_PI/DirectSales/Payment not set  Target parameter AA_Payment_Response | http://XXXXXXX.com/SAP_PI/DirectSales/Payment not set
    Warning: Container element Response is defined but is neither initialized nor used.
    But I am using them in the BPM. The same kind of scenario is working for another interface which is already running in production. When I tried to check that interface it is showing only Warning message as Container element Response is defined but is neither initialized nor used.
    I tried deleting and creating again and still it is showing the same error.
    Can anyone please suggest what might be the problem.
    Regards
    Deepthi

    Hi,
    could you pls let me know how its solved, while i am trying the same i am also getting the same problem..
    could you pls explain bit more on this.
    Thanks,
    Venkat.

Maybe you are looking for