** Exception Throw in Fork Step - How to inform ?

Hi Friends,
Customer sends 2 IDoc DEBMAS, ADRMAS. The conditions is when both the IDocs is having the same customer no we need to send to the outside system.  (DEBMAS - E1KNA1M - KUNNR) equals to (ADRMAS - E1ADRMAS - OBJ_ID).
I have designed BPM for this : Start --> Fork Step --> 2 Receive Step --> Correlation mentioned in 2 receive step --> Next Block --> Fork --> Transformation Step & Send Step (Two sets : 1 is for DEBMAS & 2nd is for ADRMAS)
I have checked the design. It is semantcially correct. But, I have the following doubts.
1) If no matching records found in first block (DEBMAS customer no is not equal to ADRMAS) how much time the fork will wait ?
2) To effect this, 'Exception Branch' is inserted. After Fork which contains 2 receive steps, one control step is inserted to trigger an exception. Question here is, after how much time, this control step will trigger an exception
3) What is the purpose of 'End Condition' Property in Fork Step ? Is it required.
Could you kindly help me friends to clarify the above 3 points. If those clarified, my BPM will be complete.
Thanking you.
Kind regards,
Jegathees P.

>
Jegatheeswaran Pitchaimuthu wrote:
> Hi Friends,
>
> Customer sends 2 IDoc DEBMAS, ADRMAS. The conditions is when both the IDocs is having the same customer no we need to send to the outside system.  (DEBMAS - E1KNA1M - KUNNR) equals to (ADRMAS - E1ADRMAS - OBJ_ID).
>
> I have designed BPM for this : Start --> Fork Step --> 2 Receive Step --> Correlation mentioned in 2 receive step --> Next Block --> Fork --> Transformation Step & Send Step (Two sets : 1 is for DEBMAS & 2nd is for ADRMAS)
>
> I have checked the design. It is semantcially correct. But, I have the following doubts.
>
> 1) If no matching records found in first block (DEBMAS customer no is not equal to ADRMAS) how much time the fork will wait ?
> 2) To effect this, 'Exception Branch' is inserted. After Fork which contains 2 receive steps, one control step is inserted to trigger an exception. Question here is, after how much time, this control step will trigger an exception
> 3) What is the purpose of 'End Condition' Property in Fork Step ? Is it required.
>
> Could you kindly help me friends to clarify the above 3 points. If those clarified, my BPM will be complete.
>
> Thanking you.
>
> Kind regards,
> Jegathees P.
your design should be Fork with two receive steps and correlation should be the customer number field for both. This will ensure that only when the customer numbers are equal the BPM will process further.
Now you need to handle the exception using a block step around the fork step. You can define a time of your choice until how long should the BPM process wait to receive the different idoc with the same customer num. If within the specified time it is not received then you can raise a exception, trigger alerts etc. as u need.

Similar Messages

  • How to catch exception throw bc4j

    Dear Forum
    I am user of JDeveloper Swing application.
    while exception throw from bc4j some particular
    type error such as (oracle.jbo.DMLException) JBO-26041
    message display.
    i want to catch error no 26041 inorder to display own
    messageBox.
    There is two methods
    1-:
    i used messageBundle class i overite message string but unable to change dialogBox,i want to use own dialog.
    2-:
    And i fund ,DML exception message return from JUErrorHandlerDlg class.So using this subclass how
    to catch and throw own message.
    Plase send me some code to write sub class of JUErrorHandlerDlg.

    You want this method System to throw an exception if the String[] is empty?
    public void system( ObjectOutputStream output, String cmd []  ) {
       if (cmd.length == 0)
          throw new IllegalArgumentException("Hey! This is an empty array!");
    //...rest of your method
    }You can choose for yourself which exception type is most appropriate. You can in theory always use the base Exception but is not very specific nor recommended. In this case, I think an existing unchecked exception such as IllegalArgumentException would be the most appropriate.

  • Fork Step in BPM scenario PI 7.1

    Hi All,
    I have a requirement where in i will have to collect 3 different messages coming from the source and then combine these 3 messages to a single message and sent it to Target System .
    To achieve this i came up with a BPM where in fork step was used and inside the fork step i added 3 branches with 3 receive steps to receive 3 different messages from the source .
    Problem i am facing here is , the source system might send all the 3 messages or it might send only 2 messages or 1 message as well depening on the scenario .
    So when we get only 2 messages frm the source system , fork step goes into waiting state since its waiting for the 3rd message also to come in . In this case i want the BPM to go ahead with 2 messages after a certain specified time (say 2 min) .
    I tried adding wait step, deadline branch . Nothing seems to be working .
    Please suggest what needs to be done here .
    Waiting for your inputs
    Regards
    Vinay P.

    Set Necessary Branches  to 1 in the Fork properties. Use the fork inside a block with time out. In timeout branch throw an exception. Define an exception branch for that exception. It should work..!!
    VJ

  • Handling Java Mapping Exception in BPM Transformation step

    Dear SDN members,
    I have developed a File to File scenario using BPM as follows.
    Step 1:
    Sender file adapter picks the file from FTP server and using file content conversion mapped to XML structure.
    Step 2:
    BPM will recieve the XML payload , immediately in the block a transformation step is called with an interface mapping. In the interface mapping a Java mapping will be executed with certain data validations on the XML payload. If found any invalid data is there a suitable excptions will be raised . Here the transformation step should be catch the error and control should be sent to exception block to place the recived file as a error file.
    else if the transformation is executed with out any issues, the file will be placed in success folder.
    But in the transformation step, though java mapping thorwing exceptions, the control not going into exception block, instead it is continuing to next step i.e the file is placing in the success folder.
    Can anybody tell me, how to handle the exceptions raised in java mapping in the BPM transformation step?
    I have refered all the SDN blogs, forums related to this issue, but could not able to find the answer. Please help me?
    Thanks & Regards
    Vijayanand Poreddy

    Hi Abhishek,
    Once the file is picked from FTP server then sent to BPM,
    the BPM steps
    Step1:
    -->Recive
    Step 2:
    Block Starts
       ---Block Start: New Transaction
       ---Block End : New Transaction
       ---Exception : Error
    Step 3 
    Inside the Block
    Transformation Step
       --Interface Mapping: <IM Name>
       -- Check box ticked for Create New Transcation
       -- Exceptions
          --System Error: Error
       --Source Message: Message recieved in Recieve Step (Step 1)
    Step 4:
      --Send
      --Source Maessage: Output message from the Transformation Step
    Block End
    Inserted a Exception Branch for Block
    Steps inside Exception Branch
      -Control
        --Throw Alert
       --Alert Name
    In the above scenario
    The transformation step is not throwing error even my interface mapping going to error. The same transformation step if i place outside the block next to recieve step, then the transformation step is throwing error and BPM stops the process.
    Also, when transformation is inside the block, i have used the exception handling on the send step inside the block. here it is throwing error as the source message payload is empty. because in the preceding transformation step the interface mapping is failed due to which there the target will not be filled. But even though it is not entered into exception block.
    Regards
    Vijayanand Poreddy

  • Error in Fork Step causing issue in generating next work items

    All,
    We have ECC 6.0 with the following SP:
    SAP_BASIS     700     0012     SAPKB70012     SAP Basis Component
    SAP_ABA                     700     0012     SAPKA70012     Cross-Application Component
    I have this strange issue. In one of my custom workflows, i am using a Fork step with 02/ 02 necessary outcomes. In branch 1, i am sending a mail to a user's e-mail id. In branch 2, i have 3 activity steps for another user. Step 1 is to display an invoice and step 2 is a user decision to apprve/deny this invoice.
    I know that during runtime, at the Fork step, the work item for branch 1 and the 1st work item for activity step 1 in branch 2 get generated almost simultaneously(though with some small time difference). This is OK. But the issue is, when the sendmail in branch 1 errors out due to some error, and when step 1 is finished successfully by another user, the work item for 2nd activity step in branch 2 is not getting created.
    As i understand, in the Fork, the 2 branches, execution should be independent of each other, that means, the work item creation and execution of branch 1 and 3 steps in branch 2 should be happening independently. But, this doesn't seem to be the case.
    I understand when the sendmail in branch failed, the wflow is set to 'Error' Status.But there is already an open workitem for step 1 of branch 2. When this workitem is completed successfully, I expect the work item for 2nd step should get generated.But this is not happening. But, when i restart the whole workflow using SWPR, it generates the witem for 2nd step in branch 2. And still the wflow is in 'Error' status.
    When the user finishes the 2nd workitem of branch 2, the next work item for 3rd step is not getting generated. Instead i needed to restart the whole wflow again and this time, it generated the 3rd witem in ranch 2.
    To my understanding, when a Fork is there, if i specify 02/02 outcomes necessary, these 2 branches should go in parallel, both creation and execution of workitems, until they are joined. And at this point, if the whole Fork step is successful, then workflow will proceed further with steps below the Fork. Shouldn't this be the case ?
    Anybody had similar issue? Pl share your thoughts on this. I'd really appreciate if somebody can clarify whats going on in the above case and how to fix this.
    Thank you in advance
    Regards,
    venu
    Edited by: Venugopal Jogi on Jun 10, 2009 5:58 PM

    Hi Arghadip,
    Thanks for your reply. You said
    "When a Workflow goes into error the processing should stop whether it is in same branch or in different.".
    If this is correct, then as i explained earlier, when i restart the workflow without fixing the errored branch, then also, the next work item should not be created..Right ? But, it is. I didn't fix the errored branch but simply restarted the workflow. Then it created the witem for 2nd step, in the branch 2 that is not errored.
    How can this be, the branch 1 is still in ERROR status only. So, can you pl clarify if something else might be going on here.
    Also, fixing the issue is fine. But, the SendMail step in branch 1 is just an information only and per business requirement, this should not be holding up the approval process. And if we don't process the invoice in time, just because of some informational mail errored out, this will not be a feasible solution to the client,Right ? That's the whole reason i am using Fork step, so that they both proceed parallelly (independently).
    If step 1 is a pre-requisite for step 2, then it makes sense to fix error in step 1 so that we can proceed with step 2.
    Any other thoughts on this.....
    Regards,
    venu

  • Fork Step in BPM

    Hi,
    When i am using more than one receive steps(each can start the process) in a fork then if i dont use the correlation it throws me a semantic error that "step does not use any correlation".
    according to me if i declare the necessary branches property in the fork step then the fork step will wait until that many branches completes, means it will proceed only after the branches receive the message.
    here i need not any correlation becuz the messages i am receiving are totally independent of each other.
    still it forces me to declare a dummy correlation.
    for what reason it is necessary?

    Hi
    A fork step is used for parallel processing of a(single) message in N number of branches. For example, if you design a fork with 4 branches, each branch receives a msg and then the steps in each branch is carried out.
    Follow the below procedure:
    The fork by default comes with two branches when you first place it into your process. You need to insert another branch before it allows you to increase the max and so on.
    Just check these links,
    http://help.sap.com/saphelp_nw04/helpdata/en/24/e2283f2bbad036e10000000a114084/content.htm
    Collecting and Bundling vendor records from different multiple interfaces (file system,Peoplesoft ) and sending to SAP-R/3 system.  part-1
    regards,
    Surya

  • End condition in FORK step

    HI Experts,
    I am working on BPM scenarios.Anybody plz explain about how end condition works in FORK step.
    Please provide examples for that end condition in FORK step.
    Regards,
    Bhuvan.

    Hi,
    Refer this links...
    http://help.sap.com/saphelp_nw04/helpdata/en/24/e2283f2bbad036e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/77/0737133012b24b9d0a12c6df2b1054/content.htm
    /people/prasadbabu.nemalikanti3/blog/2006/02/24/collecting-and-bundling-vendor-records-from-different-multiple-interfaces-file-systempeoplesoft-and-sending-to-sap-r3-system-part-1
    Hope it helps..
    Thanks,
    Kumar.

  • Exception throwing

    I have a situation when a runtime exception should be thrown and an utility class is used
    for the exception throwing.
    Example:
    public class ErrorUtils {
    public static void throwARuntimeException(Exception e) throws ARuntimeException {
    throw new ARuntimeException(p1, p2, p3, p4, p5);
    I think such technique is wrong because:
    1. When an exception is thrown the programmer will see ErrorUtils.throwARuntimeException() in the top of the stacktrace.
    2. It allows to write incorrect code. For example:
    try {
    // do somethink that can throw an exception
    catch (Exception e) {
    throwARuntimeException(e);
    e.printStackTrace(); // this line will be never reached but compiler allows to do that
    Maybe somebody can tell me more arguments why it is not good to throw an exception in a separate method?

    I have a situation when a runtime exception should be
    thrown and an utility class is used
    for the exception throwing.
    Example:
    public class ErrorUtils {
    public static void
    oid throwARuntimeException(Exception e) throws
    ARuntimeException {
    throw new ARuntimeException(p1, p2, p3, p4,
    p3, p4, p5);
    I think such technique is wrong because:
    1. When an exception is thrown the programmer will see
    ErrorUtils.throwARuntimeException() in the top of the
    stacktrace.
    2. It allows to write incorrect code. For example:
    try {
    // do somethink that can throw an exception
    catch (Exception e) {
    throwARuntimeException(e);
    e.printStackTrace(); // this line will be never
    ver reached but compiler allows to do that
    Maybe somebody can tell me more arguments why it is
    not good to throw an exception in a separate method?You're real problem here is not so much a question of what you're doing, but how you're doing it.
    Consider the following
    public void someMethod() throws RuntimeException {
      try{
        // ... Do something here that throws a RuntimeException
      catch(Exception e){
        e.printStackTrace(System.err) ;
        throw new RuntimeException(e.toString()) ;
    }Ok, looks better, I reversed the order of operations in the catch block so that the stack trace would print before it throws the exception, but there's still a problem, and that's one of lost granularity.
    If you cast or convert a double to an int, you lose precision because you lose the decimal places. The same is true if you cast from a more specific class to a more general class. So rather than catching a generic Exception, catch a RuntimeException.
    However, the only thing you've gained by doing that is a bit of precision, and you're duplicating effort.
    In dealing with exceptions, the question is WHERE should it be handled. If the code that generated the exception can deal with it that's fine, there's no need to throw it. This is the situation where you want a try catch block to handle it. But if you can't deal with it at that point, then you have to throw it to a higher level for disposition.
    What I'm driving at here is that if all you're going to do in your catch block is print the stack trace and then throw the error upstream, why bother with catching it here at all. In the code where your method is called you're going to have to handle the exception anyway, so you have a catch block for something that you're going to have to do again anyway.
    So, what I would do is the following (Assuming all I want to do is report the error to a higher level).
    public void callingMethod(){
      try{
        myMethodThatThrowsARuntimeException() :
        someOtherMethodThatMightThrowAnotherTypeOfException() ;
      catch(RuntimeException re){
        messageTheUserWithTheProblem(re) ;
        doSomethingSpecificAboutTheRuntimeException ;
        re.printStackTrace(System.err) ;
      catch(Exception e){
        messageTheUserWithTheProblem(e) ;
        e.printStackTrace(System.err) ;
    public void myMethodThatThrowsARuntimeException() throws RuntimeException{
      // ... Code that causes a RuntimeException to occur
    }There are other ways of doing it, but I find that this 1) allows me to write less code and that's always a good thing as far as I'm concerned, and 2) makes the handling of exceptions by my application more predictable.
    Of course your milage may vary.

  • Abt Fork step

    Hi frnds,  Can u explain me about the FORK step .
    what is the difference between FORK step and SWITCH step.

    Hi,
    In switch , one condition or one Branch will be true  at a time only that can be Processed.
    In Fork, how many branch you are giving will process simultaneous.
    For Example. for situation, if you want to trigger workflow only during Created or  change always you want to Re-trigger the workflow.
    In one Parallel put one wait for change event, this will wait till the workflow is complete or any change event Occurred.
    For further clarification reply me
    regards,
    Surjith

  • Fork step type.

    Hi Experts,
                     i am learning workflows. could you please explian me the significance of FORK step type with real time example so that i can understand it better.

    Hi,
    By using fork you execute several process in parallel.
    While creating Fork, you have to enter no of parallel branches and necessary branches.
    Parallel branches signifies that how many parallel branches you need to meet your requirement.
    Necessary branches. signifies that how many branches need to complete to move next step in worklfow.
    For example,
    You need 3 approval from 3 manager for your leave.
    Now create fork with 3 parallel branches and necessary branches 3.
    This signifies that after the completion of three branches workflow will process to next step.
    If you have made and necessary branches 1 then workflow will proceed to next step if any branch completed.
    Thanks and regards,
    SNJY

  • How the information goes to the supplying plant in Inter com Billing

    Hi friends,
                    I know the configuration of Inter company billing process in a standard system(IDES).
    Also I know we have to change the delivering plant in VA01 and shipping point in VL01n and twice we hav to do the VF01 to get the customer invoice & Intercompany invoice in IDES system.
    But
    1st Q.  In real life scenario
    How the information goes( i mean the media, out put determination) from the receiving company code(Sales Org) To the supplying company code(plant)
    that the delivery should happen from the plant belongs to a different company code.
    I mean is there any special output determination process happens for inter company billing process?
    2nd Q.
    How the Internal Inter company  invoice goes from the supplying plant belongs to different comp code to the sales org of different company code.
    3rd.Q
    As an end user of a receiving company code what should be the step by step process  &
    As an end user of a delivering company code what should be the step by step process ?
    I expect the answer should be question specific. Correct answer will be rewarded. No unnecessary answer pls. Thanks with regards
    Kartik

    Hi Kartik,
    I don't know the reason why you are using words like .....(given below) in  your post. Please remember that members are not crazy about points. It doesn't earn any money or recognition. Do we know great gurus who earned thousands of points earlier in these forums. Once they are inactive, nobody remembers them. We are not favouring others by assigning points. It is a way of expressing your thanks for getting the help. People are not wasting your time, they are spending their time trying to help you. It is not compulsory for you to go thro all the posts and hence you shouldn't comment on the posts made. If you are not happy, please donot use this forum.
    Please look into the sentences you have used in this thread.,
    1.I expect the answer should be question specific. Correct answer will be rewarded. No unnecessary  
       answer pls
    2.i dont think this is the answer of my question...Pls go through the question again & answer, based on a real life scenario & from an end user view .
    3.My sincere request, Pls dont reply..if you dont know the exact SAP process
    4.I am sorry, that was not my answer....Again telling pls go through the question & answer.
    5.Where is the answer to my questions ? And how can i give you points?
    Please donot take it in a negative way. It is just a suggestion.
    THanks,
    Ravi

  • HT204406 iTunes match is stuck on Step 1: Gathering Information about your iTunes Library

    iTunes match is stuck on Step 1: Gathering Information about your iTunes Library.
    It will not progress past step 1.
    I have tryed re-installing iTunes, resetting everything and all that. No luck in getting it to work.
    Any suggestions on how I get it to work?

    Hi..
    "A status indicator will allow you to track progress. You may also manually pause and resume iTunes at any time by clicking the Stop or Start button."
    From here >  iTunes Store: Troubleshooting iTunes Match
    Can you click the Start button?
    Sounds like the internet connection is timing out.
    Try turning off your router for a few minutes, then turn it back on. Restart your Mac, launch iTunes and try again.
    edited by:  cs

  • ITunes Match gets stuck on Step 1: Gathering information

    For about 2 months now (that I noticed) my iTunes Match doesn't work...it gets stuck on Step 1: Gathering information and keeps cycling and never gets to step 2.
    I have to STOP the Matching.... click STORE>Turn off iTunes Match
    then.. STORE>Turn on iTunes Match.. re-add my computer.. and then it works properly.
    Anything wrong with my settings or is this a known issue/bug that will be fixed in a future release?
    Overall I'm satisfied with Match....
    Thanks,
    David Murphy

    This should fix it (hopefully you'll only have to do steps 1 and 2):
    1. If you are using wireless networking, try connecting directly to your modem with a cable. Connections to the iTunes servers are a bit on the sensitive side and the occasional glitch can throw off matching if it has a lot of work to do. I have a "perfect" setup so I initially dismissed that as a solution (or part of one), but it does make a difference. Once it's working correctly you can switch back to a wireless connection and it should be fine from there.
    2. In iTunes, hold down the Option key (or the Shift key if you're using Windows) while you click Store, Turn Off iTunes Match. Hold down the same key again and close iTunes. Since there may be some things cached, restart your computer. Open iTunes and Turn On iTunes Match again.
    3. If Match does not complete, try a couple more times just to be sure. Note that Match completing doesn't mean everything is done - some changes trickle back over time, but it should report success.
    4. If you still have problems, you can do a complete reset by contacting Apple's iTunes Store team and ask them to cancel your Match subscription and refund it so that you can purchase and start Match again from scratch. Wait until your iTunes account shows the credit before doing this (just to be sure the entire cancellation process on the Apple side has completed). 
    I hope this works for you - it did for me and it's so nice to have it working perfectly.

  • My calendar on my iPhone 4 erases all data over a month old except for recurring events.  How Do I get it to keep the info and not erase calendar events?

    My calendar on my iPhone 4 erases all data over a month old except for recurring events.  How Do I get it to keep the info and not erase calendar events?

    Settings>Mail, Contacts, Calendars>Calendars>Sync>All Events.
    Note: If you're using a work Exchange account, the administrator my have restricted your options for this setting.

  • In popup step how do I get the "text on the button" in the report rather than button index?

    (1)
    How do I configure the POPUP step in "SEQ MAIN.seq" to execute the second
    step (IS OUT PUT IS 20?) in "SEQ 1.seq" when "IS OUT PUT IS 20?" button
    hit and execute the third step (IS OUT PUT IS 30?) in "SEQ 1.seq" when "IS
    OUT PUT IS 30?" button hit.
    (2)
    In popup step how do I get the "text on the button" in the report rather than button index?
    File attached
    Attachments:
    test_stand.zip ‏32 KB

    The handle to the Step.Button1Label gets you the data, but there are several ways to get it into the actual report.
    The easiest is to use the reporttext.
    In a post expression, you can use something like
    Step.Result.ReportText = Evaluate("Step.Button" + Str(Step.Result.ButtonHit) +"Label")
    and then the default report generation will include it in the report. Otherwise, you need to get the text into the Resultlist by various means (check the user manual, or the TestStand II customisation course) and handle the report generation yourself inside of the appropriate sequence in the process model.
    Just my 2cents
    S.
    // it takes almost no time to rate an answer
    Attachments:
    IncludeButtonTextInReport2_0.seq ‏18 KB

Maybe you are looking for

  • ITunes 11.0.3 Songs view, show artwork + sort by that column = a bit of chaos

    I have in recent months recreated my iTunes library, in iTunes 11, partly from backups from older libraries and partly with higher quality rips from CD. In the various views, everything looked great and organized. All songs neatly grouped in their Al

  • How can I display a constant 1 hour of data in my VI

    I am currently designing a VI which reads data from a spreadsheet which is being updated from another source. I currently have my VI reading the information and displaying it on waveform charts. I have 13 sample points each of which has a chart of it

  • Two Cards/3 Monitor Setup w/ Vista + Bootcamp, 7300 GT problems

    Hello all, I have a Mac Pro 32-bit OS running with Intel Xeon 5150 2.6 x2, 5 GB RAM, and originally, it came with the XT1900 video card. NVidia 7300 GT won't install in Vista! I wanted to run 3 displays, so I read around that people were adding an ex

  • Report Painter variance analysis

    Hello All, Client has requested a report painter report which would display different variance categories in columns for different order or material whatever the user may wish to choose. I want to know how should I define the columns ie. what charact

  • Report Builder can't setup RDS

    When trying to setup RDS in the report builder for CF8 I get an http 1.1 404 Object not found error. Windows authentication is off and I can use RDS with Dreamweaver. Any thoughts?