BPM problem with correlation/loop

Hello,
I have created a scenario in which I am sending file(using flat file conversion)  to BPM to do a collect and send out to external system.  I have set up a loop which should exit out when counter ="2."  Within the loop, I have my receive step, append to multiline item, and increase counter step.  Outside of the loop I have my transformation and send step.  The problem is that my inbound message does not even enter the BPM once I put the receive step into the loop. I have verified that the inbound message meets the structural requirements.  Can anyone provide a possible explanation as to why message cannot enter BPM once receive step is in loop?
thanks

I have created a scenario in which I am sending file(using flat file conversion) to BPM to do a
collect and send out to external system. I have set up a loop which should exit out when counter
="2."
Your requirement seems to be similar to the below mentioned help section:
http://help.sap.com/saphelp_nw70/helpdata/EN/08/16163ff8519a06e10000000a114084/content.htm
Make sure that you have done the settings accordingly and also have defined correlation.....
In IR you can view the BPM under SAP BASIS ---> SystemPatterns
Regards,
Abhishek.

Similar Messages

  • Problem with correlation on QA systems

    Hi all
    i need help!!!
    I have a problem with correlation on QA systems!!!!
    I have exported file (SCVW and CS) from DEV system and imported into QAL system!
    I ve changed the parameters of CCs!!
    But messages on sxi_moni doesn't meet correlation!!!!
    The same interface on DEV system work fine, everything it's ok!!!
    Everyone can help me? What could be the problem?
    Tnx all

    Hi Prateek
    Scheduled Background Job for Event Queue has a red flag in QA, while all flags are green on Dev!!!
    What I sholud do?

  • Problem with Correlations/BPM

    Hello,
    we have a problem with our PI 7.1.
    We have created a ccBPM-Process with one correlation. The process is activated and runs quite good.
    The Problem is in the last step (its a receive-step) which uses a correlation.
    If we send the message, with the correlation into the process, we get an error of type (permanent error in inbound processing).
    Now, when we look into the queue-item (which contains the error) (smq2) we can see, that the generated proxy contains elements of an old data-type, which is already deleted.
    Thanks for your help.
    Edited by: Thorsten Gawantka on Oct 2, 2008 3:26 PM

    Hi Thorsten,
    Run RSWF_CRL_MAINTAIN to check active correlations.
    Then, run SWWL leaving blank all the fields (ID, Type, status ....)
    Check if there is any work item stuck. Delete all the items.
    Refresh all the caches.
    Go to SXI_CACHE and check That your Integration Process has the active version that you wish.
    Check return code is 0.
    Carlos

  • Qsm pc, problem with stop loop

    Hello,
    i tested queue producer/consument with event case, but i have problem with stop the both loop, can you help me with attachment ?
    Attachments:
    queue_mereni_1.zip ‏46 KB
    Global_queue.zip ‏3 KB

    thanks for your answer,
    i had problem with upload *.vi (some mistake), so when a upload *.zip it was ok, but i do not know why..
    please, when i put time out constatn, so when i push "stop" then both loops end - it is ok BUT:
    when i push "stop 2" button (for the second loop) so there is error (in attachment), please do you know why?
    i am sorry for a lot of questions but i try understand it..
    thank you
    Attachments:
    qsm.jpg ‏31 KB

  • Problem with a loop

    Hello All
    I'm working on a Flash Gallery and I'm having some issues
    with a loop and it's probably something simple I don't know so I
    thought I'd see if someone can help me.
    the problem is that once the thumbnail panel is populated the
    image I want to display from a rollover is no longer defined. As I
    mentioned I was hoping someone could shed some light on this.
    [code]
    // create the thumbnail panel
    var i = -1;
    while(++i<thumbList.length) {
    name = "item"+i;
    thumbs_mc.duplicateMovieClip(name,i);
    this[name]._x = i*spacing;
    this[name].contentPath = "children/" + thumbList
    // show the larger pic on rollover
    this[name].onRollOver = function() {
    picture.contentPath = "children/" + thumblist;
    [/code]
    by using this I get an error of: "error opening
    URL...undefined"

    mark2685 wrote:
    Well, the array of student objects is larger than 2, there are about 6 students so it would have to get the highest from TestScore 1 and the lowests from TestScore 2 out of all of the students, not just those 2. And I want the entire object stored in the chessTeam array. Does this make sense?No you're not reading my code right (BTW - add an open brace on the for loop top and set score2 to 101), or else I'm not understanding you requirements correctly. The student array can hold as many Students as needs be. You stated that you have only two scores that you care about and so that's the 1 and the 2. Based on the Student class you've shown us, this should work, but you'll have to try it before you know.

  • Probably simple problem with while loops

    I was programming something for a CS class and came across a problem I can't explain with while loops. The condition for the loop is true, but the loop doesn't continue; it terminates after executing once. The actual program was bigger than this, but I isolated my problem to a short loop:
    import java.util.Scanner;
    public class ok {
    public static void main(String[] args){
         Scanner scan = new Scanner(System.in);
         String antlol = "p";
         while(antlol == "p" || antlol == "P"){
              System.out.println("write a P so we can get this over with");
              antlol = scan.nextLine(); 
    //it terminates after this, even if I type "P", which should make the while condition true.
    }

    Thanks, that worked.
    I think my real problem with this program was my CS
    teacher, who never covered how to compare strings,Here's something important.
    This isn't just about comparing Strings. This applies to comparing ANY objects. When you use == that compares to see if two references refer to the same instance. equals compares objects for equality in the sense that equality means they have equal "content" as it were.

  • A problem with for loop..

    i have a problem with this code :
         int [] P = new int [M.length];
         System.out.println(P[0]+" "+P[15]);     
         for (int i = 0 ; i < P.length ; i++){
         for (int j = i + 1 ; j < P.length ; j++){
              if (j == (P.length - 1) && M [ i ] != M [ j ]){
                        P [ i ] = M [ i ] ;
                   else if ( M [ i ] != M [ j ] ) continue ;
                   else break;
         for (int i = 0 ; i < P.length ; i++){
              System.out.println(P [ i ]);
    this code to copy distinct values in array M and print them into array P
    M and P are both of size 16
    the problem is the previous code doesn't work for P[15]
    and i don't know way
    if i have in M {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
    P will be {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}
    could any body help ?

    I am sorry, but you are not done. May-be your code does what it is supposed to do but it is hard to understand. An important part of programming is not just to get your code to work, but to write code that is easily maintainable. You are probably quite new programming and I do not want to discourage you. Keep working hard and it will come.
    You almost had the solution a while back:
            int [] P = new int [M.length];
         System.out.println(P[0]+" "+P[M.length]);
            boolean unique;
         for (int i = 0 ; i < P.length ; i++){
             // All non-zero entries in P with index less than i are unique in M.
               unique = true; //Assume M[i] unique until contrary has been proven
            for (int j = 0 ; j < P.length ; j++){
              if (i != j && M[i] == M[j]) { //found another entry in M with the same value as M[i]
                            unique=false;
                   break;
               if (unique) { // M[i] is unique in M.
                  P[i] = M;
         for (int i = 0 ; i < P.length ; i++){
              System.out.println(P [ i ]);
         }This code executes in time O(n^2). It is possible to achieve O(nlog(n)) by
    1) copy M into P
    2) sort P
    3) iterate through P and set duplicates to 0.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Problem with correlation

    Hi ,
    I am trying a N : 1 scenario using BPM , I have used correlation for this ,
    This is the procedure i have used
    1 . Block :
                Properties of block : Block start --> New Transaction
                                              Block End  --> New Transaction
                                              Local Correlation ---> CORRELATION
               Two receive steps inside the block .
               a. Receivestep1
                       Properties of Receivestep : Start Process check box ticked.
                       Activate Correlation          : CORRELATION
                       CORRELATION
                        EMPNO
              b. Receivestep2
                     Properties of Receivestep :
                        Use Correlation : I am facing Problem Here
    I am unable to use the correlation , when ever i select it n save the Use Correlation text box appear with ? symbol , due to which i cannot activate the integration process , How can i solve it..
    Regards,
    Syed

    Hi Syed,
                Once u have activated your integration process than you want to make any changes particularly on correlation editor you will observe this kind of behaviour.
    Solution:
    Step1:  Better to copy integration process with some temp say <int.prcess_name>_temp then make changes in newly created one and activate newly created integration process.
    Step2: Delete the orginal int.process and activate change list.
    Step3: Copy the newly created int.process with name say <int.proces_name>_temp to orginal name
    i.e <int.process_name> then delete the <int.proces_name>_temp and activate the change list.
    This is work around solution for your problem.
    Regards,
    Rao.Mallikarjuna

  • Problems with adding loops

    Hey I had my Mac for awhile now (Mac Mini) and I just upgraded to Leopard a few day ago. I'm having problems transferring loops onto the loop index..I tried the drag and drop and sometimes only a few get through but not all. And when I try again a prompt comes up saying there is already a folder with that name...etc. Is there a solution to get all of my loops onto the loop index. Im pretty new to GB and I dont know the best way..help plz!

    If you want to record multiple audio tracks, you have to shift-click on each record button and make sure both are on different inputs.

  • Problem with while loops, please help!

    I am having quite a bit of trouble with a program im working on. What i am doing is reading files from a directory in a for loop, in this loop the files are being broken into words and entered into a while loop where they are counted, the problem is i need to count the words in each file seperately and store each count in an array list or something similar. I also want to store the words in each file onto a seperate list
    for(...)
    read in files...
         //Go through each line of the first file
              while(matchLine1.find()) {
                   CharSequence line1 = matchLine1.group();
                   //Get the words in the line
                   String words1[] = wordBreak.split(line1);
                   for (int i1 = 0, n = words1.length; i1 < n; i1++) {
                        if(words1[i1].length() > 0) {
                             int count= 0;
                                           count++;
                             list1.add(words1[i1]);
              }This is what i have been doing, but with this method count stores the number of words in all files combined, not each individual file, and similarly list1 stores the words in all the files not in each individual file. Does anybody know how i could change this or what datastructures i could use that would allow me to store each file seperately. I would appreciate any help on this topic, Thanks!

    Don't try to construct complicated nested loops, it makes things a
    tangled mess. You want a collection of words per file. You have at least
    zero files. Given a file (or its name), you want to add a word to a collection
    associated with that file, right?
    A Map is perfect for this, i.e. the file's name can be the key and the
    associated value can be the collection of words. A separate simple class
    can be a 'MapManager' (ahem) that controls the access to this master
    map. This MapManager doesn't know anything about what type of
    collection is supposed to store all those words. Maybe you want to
    store just the unique words, maybe you want to store them all, including
    the duplicates etc. etc. The MapManager depends on a CollectionBuilder,
    i.e. a simple thing that is able to deliver a new collection to be associated
    with a file name. Here's the CollectionBuilder:public interface CollectionBuilder {
       Collection getCollection();
    }Because I'm feeling lazy today, I won't design an interface for a MapManager,
    so I simply make it a class; here it is:public class MapManager {
       private Map map= new HashMap(); // file/words association
       CollectionBuilder cb; // delivers Collections per file
       // constructor
       public MapManager(CollectionBuilder cb) { this.cb= cb; }
       // add a word 'word' given a filename 'name'
       public boolean addWord(String name, String word) {
          Collection c= map.get(name);
          if (c == null) { // nothing found for this file
             c= cb.getCollection(); // get a new collection
             map.put(name, c); // and associate it with the filename
          return c.add(word); // return whatever the collection returns
       // get the collection associated with a filename
       public Collection getCollection(String name) { return map.get(name); }
    }... now simply keep adding words from a file to this MapManager and
    retrieve the collections afterwards.
    kind regards,
    Jos

  • BPM problem with sync interface.

    Hi
    I got one Abstract/Async and one sync interface in my BPM and I'm getting MESSAGE_NOT_USED error between them, my scenario is RFC to JDBC to RFC(response with different FM) so BPM receives data from RFC sender through Abstract/Async interface but after that interface, I'm getting the that error (MESSAGE_NOT_USED), the weird thing is I got another scenario almost same and its working, I did a new project with exactly the same interfaces, Mappings, interface det., Receiver det., senders and receivers but I'm still getting the same error, even I tried "RFC scenario using BPM--Starter Kit" Blog but same thing, btw everthing is 0 in SXI_CACHE, I'm going to go mad or something, please help..
    Thanks

    CALL FUNCTION 'Z_TSSI_INTERFACE_DUMMY'
         IN BACKGROUND TASK
          as separate unit
         DESTINATION 'TSSI_OUTBOUND1'
      EXPORTING
        jobno              = jno
        PERSNO             = pers
        BEGDA              = '20051231'
        ENDDA              = '20051231'
        ABSTYPE            = 'xx'
        ABSHOURS           = '7'
        ABSDAYS            = '1'
        FULLORHALF         = 'false'
        uname              = sy-uname
        date               = '20060201'
        time               = '110000'
      TABLES
        RETURN             = ret
        Commit Work.
    The thing is this abap is working in another scenario, but when I copy the exacly the same scenario, it doesnt work, its weird, btw I noticed that evertime I run any scenario, short dump occurs, its about RFC authorization for XIRWBUSER user but I got the OSS note for that, I applied it but it didnt solve the problem, btw this short dump happens when I run my workign scenario as well.. this is driving me crazy..

  • BPM - problem with async/sync

    Hi,
    I have created one BPM async/sync with properties below.
    RFC (async) -> BAPI(sync) -> JDBC(async)
    My RFC start the process, (next step) BPM execute BAPI and response one list of companies, in next step, JDBC insert or update the companies in SQL Server.
    RFC
    ZPI_SYNC_DATABASE
    BAPI
    ZSD_GET_COMPANY - the bapi only have EXPORTING in your definition.
    JDBC
    MI_EAI_SD_COMPANY.
    When i execute the process, not occurs errors, but in BPE Message appears the GREEN FLAG (in outbound status) with hit "Message scheduled on outbound side", sometime appears in Status one GREEN FLAG with hit "Scheduled".
    If i delete Receive of BAP (step), the BPM execute full, and not occurs the problem above.
    Then i think the problem is in BAPI(step), but i dont know what can to do.
    Can everyone help me?

    Yeap,
    Is "New Transaction" checked in Send BAPI and Send JDBC, but the problem still occur.
    See you other example:
    I have createad one new scenario.
    IDOC -> JDBC
    IDOC
    ZCLIENTE.ZCLIENTE01 interface.
    JDBC
    MI_EAI_SD_JDBC
    MAPPING between IDOC and JDBC
    Senders and Receivers configured;
    I execute IDOC and one pass for mapping, no problem.
    But the not launch JDBC Adapter.
    I see in Message Monitoring and there arent errors, but hava one GREEN FLAG in STATUS with hit "scheduled"
    The same error but now without BPM.

  • Problem with one loop in another one

    When I drag and move cursor, X scale position will be show below. And then I click “add data in array”, the data should be put into array. I can move cursor again to add the second , the third ….into array.
    My problem is:
    In block diagram, once loop2 is outside of loop 1, it works. But I really want loop2 is in loop1 regarding to the rest part of the program. However, we I move loop2 into loop1, when I move cursor, nothing happens.
    Please help to make it work or you have different way to do this job.
    Thank you very much
    Liming
    Attachments:
    yxxx.vi ‏29 KB

    Hey, no need to make it so complicated.  Just add an indicator on the CursLoc.X wire in the  "0 To 5 MHz": Cursor Move  case.
    To answer your questions:
    1) The indicator does not react because you are still within the inner while loop.  It will not change until that loop completes. I.e. the stop button is pressed.
    2) Similarly, the stop 2 button will press, but nothing will happen until the inner loop is done.
    Generally, when I am using an event structure, I try to keep all the changing UI inputs and outputs in the same while loop with the event structure, if not in the event structure itself.  Local variables and property nodes can get the job done, but they are inefficient and can be difficult to debug.  As I am sure you are discovering
    Message Edited by jasonhill on 04-07-2006 12:40 PM
    Attachments:
    cursor position indicator.PNG ‏7 KB

  • Problem with animation loop in AS3

    I'm having a problem doing an animation loop (a walk cycle in
    this case) in CS3. I never had this problem in Studio 8 and am
    wondering if I've gone crazy or if something has changed in CS3.
    The animation cycle works fine so long as I have it loop
    without using ActionScript, but when I try to loop it using
    gotoAndPlay it skips the last frame (i.e., the frame that the code
    is on). I tried adding an extra frame at the end and placing the
    code on it... it works a bit better, but there's still a bit of odd
    timing during the looping.
    Interestingly, when I save the fla as a Studio 8 file, it
    works fine (if I include that extra frame at the end). I may be
    misremembering, but it seemed to me that Studio 8 didn't require
    that extra frame before CS3.
    Has anyone else seen this? Anyone have a solution to share
    (I'm planning to use ActionScript3, so saving as Studio 8 won't
    solve my problems)?

    Sim-Enzo,
    > Interestingly, when I save the fla as a Studio 8 file,
    it works
    > fine (if I include that extra frame at the end). I may
    be
    > misremembering, but it seemed to me that Studio 8 didn't
    > require that extra frame before CS3.
    It shouldn't require that extra frame, but I wonder if
    you've somehow
    configured your FLA's publish settings for a version of
    ActionScript you're
    not actually using.
    > Has anyone else seen this? Anyone have a solution to
    share
    > (I'm planning to use ActionScript3, so saving as Studio
    8
    > won't solve my problems)?
    If your file works fine in Flash 8, then you must be using
    ActionScript
    2.0 (or lower) for the time being. Based on what you've
    described, I can't
    imagine what's going awry. Can you make that FLA available
    online
    somewhere? See if you can reproduce this issue with a
    simplified version,
    in case your company's policies (or whatever reason(s)) keep
    you from
    uploading the real file somewhere.
    I'll take a look.
    David Stiller
    Adobe Community Expert
    Dev blog,
    http://www.quip.net/blog/
    "Luck is the residue of good design."

  • [BPM] problem with

    Hi,
    I created a BPM, that split an incoming message into three parts: hardware, software and service. Then I I open a fork with three branches. Every branch is for one of the splitted parts and include a forEach-block that sends emails.
    After the fork I map the mail receipt to a message I use for closing a S/A-bridge.
    If the source messeage includes a hardware, software and service entry, it works fine, but if only one or more hardware is given, it breaks at the last mapping of the email receipt. I think this happen because no software or service is given and he try to map an empty mail receipt to the response message.
    How can I handle this??
    Thanks
    chris

    Hey,
    now I tried the function MapWithDefault, but without success.
    To understand what I want to do:
    1) receive a message from a rfc sender -> open s/a-bridge
    2) split this message to software, hardware and service container
        (splitting messages are saved in 3 different mulitline container in bpm)
    3) open a parallel fork
    4) forEach sending of the messages out of multiline container
        (in this forEach, I use XLST to map from multiline element to email message)
    5) close parallel fork and map email response to close s/a-bridge message
        (but don't know which response he uses, but doesn't matter. Don't need
        the information, just need to close s/a-bridge)
    6) at the end, close s/a-bridge
    Two problems:
    1. He crashes if only hardware, service or software is given
    2. the forEach sending only ONE email, even if 2 or more items (of hardware for example) is given.  But if I test my mapping he creates the required number of messages.
    Any idea how to debug this??

Maybe you are looking for

  • New Mac/APE 12 user Used to have Cyberlink Powerdirector 9 for video/slideshow editing.  HELP!

    I have recently purchased APE 12 to help with editing a slideshow.  Previously I used Cyberlink Powerdirector 9 on my PC.  At this point I am very disappointed in the money I spent.  There is so much less I can do with the structure of the slideshow.

  • Audio levels in exported video [Premiere Pro CS6]

    The audio level is just what I want in the actual track. However, when I export the video the exported audio is too loud. So I went back and lowered the clip by 3dB...the volume level of exported video still didn't change--it sounds like people are s

  • Adobe Design Std CS6 6.0 MLP AOO License IE FBPA 3 Pack

    We bought Adobe Design Std CS6 6.0 MLP AOO License IE FBPA 3 Pack. We downladed the s/w. We installed Adobe Acrobat X Pro on three different machines and activated them also.But after 30 days Acrobat stopped working. Those three machines work offline

  • Smart Brush Tool - Not working

    I can't use the smart brush tool (either for blue skies, whiten teeth etc.).  The following message comes up when I select the brush:  COULD NOT USE THE SMART BRUSH TOOL BECAUSE NO ADJUSTMENT WAS SELECTED.  Is this an installation issue? Note: when I

  • Whats the min seats do you have to buy for a educational insitution?

    I am trying to get my school to buy final cut pro for our A Level and BTEC students but I am unable to find any information on how many seat you have to buy as a min. OR even anything to do with buying final cut for schools. If anyone can point me in