Fork in BPM

Would some one explain me the Fork step in BPM with a SIMPLE example please?
Thanks

Hi,
You use fork to do your processing in different branches, which maybe independent of each other. You also have an option of specifying the required number of branches.
Fork examples:
http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/77/0737133012b24b9d0a12c6df2b1054/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
These will help you understand.
Regards,
Chandra

Similar Messages

  • Fork and BPM

    Hi
    I am using Fork in the BPM to collect and merge 3 messages. This is same as STD pattern "BpmPatternCollectMultiIf". It is working fine, it collects--> transforms --> sends. But always two PE are in "In process" state with a "clock" indicator. I tried putting Fork step inside a Block but no help. All receive steps uses a correlation to collect the messages.
    I am manually deleting the process instance in SWWL and processing next set of messages. We are using XI which is on Netweaver 2004s.
    Appreciate your help on this issue.
    Regards
    Prahllad

    Hi Murthy
    I have given the condition necessary branches =3, let me explain you how it is behaving.
    The first message arrives the PE instance is created and waits for another two messages. Once other two messages arrive the PE created by the first message goes to successful state and also all the message comes out merged into one message.
    But the second and third messages have also created the PE instance and they will be waiting for other two messages each..
    Where the end condition is for this, if necessary branches are 3 then all PE instances should end once merged message comes out of the BPM (or when the send step is executed).
    Please let me know any further help to resolve this issue.
    Regards

  • Error with fork step in BPM

    Hey guys
    i m trying to collect three different IDoc's in a BPM and using fork for that,when i try to enter 3 in the Necessary branches property of Fork,its giving me and error sayin that maximum value permitted is 2.
    any idea why i m getting this error?
    thanx
    ahmad

    Hi,
    Are You the correlation
    This might Help you
    Fork and BPM
    Fork is not working - BPM
    Regards
    Agasthuri Doss

  • How we need to use fork to merge three files into one in BPM

    Hi Friends,
                    Please send me some example that has three files merged to one      using fork in BPM.
    Thanks & Regards,
    Vinaiy Yadav

    Hi Vinay,
    go to software component SAP BASIS, than to namespace http://sap.com/xi/XI/System/Patterns.
    You will find there several BPM patterns which you can examine/reuse.
    The following ones will give you an answer to your question.
    - BpmPatternCollectMultiIfCondition
    - BpmPatternCollectMultiIf
    Regards,
    Andras

  • Do we need to use fork to merge three files into one in BPM

    hi friends ,
                         I have to merge three files to produce one file in (multiplesenders to inbound scenario) ,dowe need to use fork in BPM if yes then how to use it please explain to me ,if not then what may be the solution.Please reply at the earliest.
    Thanks & Regards,
    Vinay Yadav

    Hi Vinay
    To Collect Files from one Sender:
    There is ne need of using fork. U have a loop in the BPM and give the condition as counter 'notequals' 3 and have the receive step in it. Also have a two container variables within the loop one container variable is to collect the 3 files and the other container should be ur counter that determines the termination condition of ur loop.
    To Collect File from Multiple sender:
    U should have 3 receive steps within fork to collect the three files and also u should have a correlation to match the files.
    To know more about correlation go thru the following link:
    http://help.sap.com/saphelp_nw04/helpdata/en/a5/64373f7853494fe10000000a114084/frameset.htm
    Making Correct Use of Correlations :
    http://help.sap.com/saphelp_nw04s/helpdata/en/6d/94364296f1b26be10000000a155106/frameset.htm
    Blogs:
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
    Regards
    Santhosh
    *If Info was useful Reward Points*
    Properties of 'counter; container variable:
    Operator:+
    Expression:1

  • BPM's not sequencial

    I have an existential question regarding BPM's...
    If message 1 starts a BPM and message 2 starts another instance of the same BPM later.
    If the calls to the BPM are done using EOIO... will this assure me that the BPM's will run in sequence ?
    This means, if a step in BPM instance 1 takes a long time and BPM instance 2 goes faster... it should wait for BPM 1 to go before continuing...
    If not, why have EOIO ????
    Is this actually stated somewhere in the documentation... ?
    Edited by: Thierry Dagnino on Jul 21, 2009 5:36 PM

    Hi ,
    To achieve this we are having the FORK in BPM , Parallel processing and you can break this by using a codition
    Regards,
    Jude

  • File-XI-File BPM Split Question

    Iam using BPM to split the 1 file into 2 files. I have to use BPM due to requirement.
    Iam sending file to BPM
    In BPM:
    receive step
    transform Step - Here message split is performed
    Fork Start
    Send Message 1
    Send Message 2
    Fork End ( end condition is 1=1 )
    Stop.
    Only 1 file is written and 2nd file no information
    When I looked at SXMB_MONI_BPE
    Send1 Workflow system logically deleted
    Send2  Workflow system completed
    I dont know whats happening for Send 1
    Where can I look for potential errors ?
    In the request message mapping of SXMB_MONI ( 2 payloads are as follows )
    1st Payload ( Maindocument ( Application/xml))
    <?xml version="1.0" encoding="utf-8" ?>
    - <ns1:MT_State xmlns:ns1="http://www.test.com">
    - <State>
      <State_rec>NYC</State_rec>
      <State_rec>FLA</State_rec>
      <State_rec>CAN</State_rec>
      <State_rec>CAS</State_rec>
      </State>
      </ns1:MT_State>
    2nd Payload (XI_Context(text/xml))
    <?xml version="1.0" encoding="utf-8" ?>
    - <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
    - <asx:values>
    - <CONTEXT>
    - <RMS_CONTEXT>
      <NAMESPACE>http://sap.com/xi/XI/System</NAMESPACE>
      <NAME>ProcessStep</NAME>
      <VALUE />
      </RMS_CONTEXT>
      </CONTEXT>
      </asx:values>
      </asx:abap>
    Anyone have any suggestion for me how to fix this issue?
    Thanks a lot.

    Ram,
    Since Iam going to add more process steps ( such as synchronous calls) i really wanted to finsih the sending of both SEND steps in the FORK. If I dont give end condition, am I sure that those SENDS are processed before next process step following fork ?
    BPM will come out of FORK only when all steps in all branches are executed succesfully.
    If you give an END condition to the fork, then this is used when you are not sure for how long the steps in the fork should run, and so on.
    http://help.sap.com/saphelp_nw04/helpdata/en/24/e2283f2bbad036e10000000a114084/content.htm
    +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.+  
    Earlier when you gave condition as 1=1 one of the steps was executed and it came out of the fork. So, do no give any condition and it will execute all steps in the FORK and come out as you want.
    Regards,
    Bhavesh

  • Collect mailmessages with attachments (xml)

    I am getting some problems to collect a mail message with a XML attachment.
    For this scenario I use the Sender Mail adapter and I would like to collect several mail messages with attachments for 10 minutes and put them together in one file with the File Adapter (NFS).
    To make it not to complicated I started to read one mail message with attachment.
    From the mail message I would like to use the message text in the mail. The attachment is an XML file with 3 fields (Name, Adress, ID).
    The output file is based on :
    - Message  (input is the text in the mail message)
    - Name  
    - Adress
    - ID 
    My CC Mail Sender settings are:
    Transport protocol: Pop3
    Message protocol: XIPayload
    Mailattributes :  Use Mail Package = yes
                Keep Attachments  = yes
    Based on several how to’s from this website, how to import mails with attachments.
    When this message is send to XI  the substance tells me in the monitor that I use 2 Payloads:
        - Mail Message (text/xml;charset=utf-8)
        - MailAttachment-1 (text/xml;name=”testattachment.xml”)
    Because I would like to combine those 2 messages into 1 file. I use a fork in BPM.
    To create relation for BPM I added after the inbound receiving for each input message a field “relation”, which is needed for correlation in BPM.
    But my problem is, because the payload exist of 2 messages and it is only possible to reach only on at the same time..
    In my message mapping I have two inputs: Mail and Attachment and my output is one message.
    Is their a solution how I can combine those 2 payloads into one, before it’s getting into the BPM scenario or where I can use more payloads at the same time?
    I already tried looking for this at post  on SDN, but I could not find anything similar.
    null

    Hi Venu,
    When I try to use your suggestion, I get a problem with my message interface.
    In my communication channel (CC) for the Mail Adapter (Sender) you need to set the Default XI parameters with a default interface name.
    In my case I have the input of one interface of the mail message
    and one interface of the attachment. But in CC you can only work only with one  message interface.
    When I try to work with only one, only one message will be processed. So just the mail message not the attachment, or the other way around.
    Is their another solution, to prevend this?
    Grtz Roy

  • Correlation already in use

    Hi,
    I am using multiple start process steps, using a fork in BPM. Hence i have the same correlation name being used in both the Receive steps. However i am getting the message Correlation <correlation name> already in use message when i try to activate.
    Any reason for this ?
    Regards
    Ganesh

    u need to use different coorelation id for the second recver inside bpm.....<b>uniqueness</b> is the key point
    refer:
    <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/6d/94364296f1b26be10000000a155106/content.htm">Checklist: Making Correct Use of Correlations</a>

  • Proxy to JDBC scenario data to be fetched from two dB

    Hello all,
    we have a  requirement in which  the data is sent from an abap program and using PI it will fetch the data from DB at client side,
    and we need to display the data in the report program.
    As we need the real time data and need to be displayed back in the Report program the processing time should be less than 30 sec.
    We have tried the scenario using synch Proxy-synch jdbc and we are getting the data with in time but we tried this with 1 DB.
    But now we have requirement change and  we need to look the data in 2 Data bases.
    we need to pass data through  client proxy(Synch) to PI and it should check the data in 2 DB and send back the data.
    the data sent back from the DB, we need to show in our ABAP program.
    Please send in your inputs so that i get some pointers regarding this requirement.
    Thanks
    Karandeep Singh

    HI Vijayashankar,
    Thanks for your reply.
    Please brief me the steps for using fork in BPM.
    Thanks
    Karandeep Singh.

  • Fork is not working - BPM

    I have done 2 samples using fork and in both the cases it is not working. For each message new BPM is triggered and only one step (branch) gets completed and other branch steps remain in ready state forever.
    1) I have tested standard BPM pattern BpmPatternCollectMultiIf
    2) Simple process using fork - two branches using different inetrfaces (having different message types)
    Integration process return code is 0 - runtime cache
    I am testing on local sandbox (XI 3.0) with SP17.
    Under SAP help only brief description available about fork. Please share if you have good references/samples about fork (BPM).

    Jai,
    1)I expect following result in case of standard BPM pattern "BpmPatternCollectMultiIf"
    Note: Here same message type for all 3 interfaces ( branches), no end condition, no of branches = 3
    As all message types are same when I send first message only one branch will be executed and outbound status under sxmb_moni with be clock (Message being sent). When I send 2 message, second branch will be completed and status will be clock again. And when I send 3 rd message all branches will be completed and outbound status will be success flag (Message successful on outbound side). Under one process id three messages will be displayed
    Actual result is every time status as clock. and for each message new fork instance is created. below are the processids for 3 messages
    133721
    133726 -
    unexpected
    133731 -
    unexpected
    Ideally when you send 3 messages all should be process under process ids 133721 to 133725
    2) I have tried fork with 3 branches with different message types. When I send 3 messages ( here each payload is different as per message type ) I expect success flag after 3rd message. But in this case also always the status as clock. and every time new fork instance.
    Is anybody  successful to test BPM pattern -> BpmPatternCollectMultiIf?

  • BPM process switch/fork is not processing!!

    Hi Guys,
    I have scenario for 1:n multi mapping using BPM. In my BPM just I have got 5 steps, the first one is receiver,  next step is transformation (workinig fine), switch with 2 branches, on branch one Sender 1 to SNC (Prod Active Notific) and on second branch has got Sender 2 for (ProductDemandInfluencingEventNotification) to SNC. The process is coming upto Switch, the process is not coming into Swithch step to send these messages to sender? what is the condition for Switch step? I put it like (1=1), message is not processing completely.
    Any valuable inputs for this please?
    Many Thank in advance
    San

    Hi biplab das ,
    Many thanks for very quick reply. I have tried both. Let me explain you my scenario, please give me your inputs on that!!
    Sender side xml messages comes with couple of messages. What I need this xml has to split into two message types "Product Activity Data" and "Product Influence Demand", each message goes with multiple messages, as follows:
    <Root>
       <output>
       <output>
       <output>
       <output>
       <output>
    </Root>
    Each output message got multiple submessags. Couple of submessages has go under "Product Activity Data" and Couple of other messages has go under "Product Influence Deman"
    Mapping is working fine. Messages are splitting.  I have configure BPM as follows:
    Setp 1---- Receiver --- > Receive the message
    Setp 2 -
    Mapping -
    > Messages are splitting
    Step 3 -
    Fork Step ---> with 3 Branches , Branch 1 for, 1 Receiver Determination and 1 Sender --> Product Acitivity Data
                                                                           Branch 2 for , 2nd Receiver Determination and 2nd Sender --> Product Influence D
                                                                           Branch 3 for throw Alert
    I can this message is failing on Moni, I opened PE, the graphical represenation shows error on Sender1 and Sender2.
    Please can you advice me in this.
    Many Thanks
    Regards
    San

  • BPM Fork Processing without receiving all required messages

    Hi
    I  am developing a BPM which receives 5 different messages.
    I am putting a block with Local Correlation with Block Start = New Transaction and Block End = New Transaction.
    Inside this block, I am using Fork with Necessary Branches = 5  , using local correlation for each receive step with Use Correlation and Activate Correlation.
    When I am adding Receive Steps to Fork, there  is an extra branch getting added to the Fork. So now I have 5 Receive steps with Abstract Interfaces and one extra step without having anything. I couldn't figure out how to get rid of this extra step. I know there is way to get rid of this extra step in Fork...but not sure how
    Now, when I am testing, after receiving any 4 messages process is coming out of the Fork block and going to the next block.
    As in the next block I use all the 5 messages, I am getting error there.
    Can you please give your inputs what could cause this problem?
    How do we get rid of extra branch in Fork which we do not use..
    Thanks for your help in advance.
    Regads,
    Ramesh

    Hello  Ramesh,
    When you Drag-Drop any process step in the Fork, it will create a new branch and will sit inside that branch. If you want to put the step on some specific branch then Drag the process step and take it to the desired branch and only drop when [ ] appears on that branch. To insert new branch in fork you can use Right click on Fork->Insert->New Branch.
    Now for ur problem, you have set the necessary branches as 5, when u receive the 4 message(4 branches executed) and fifth branch(empty branch) will make total count to 5. Therefore, ur fork step will be executed and will not wait for the fifth msg.
    HTH,
    Regards,
    Sami.

  • 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

  • BPM - two FORKS and a Transformation issue

    my scenario is File - BPM - Proxy
    input file has multiple records and each record has 1 field that we put a validation logic in.  There will be one message created for each record, so this is a 1:N Integration Process
    I used two Forks:
    Fork #2 has two branches: Branch 1 --> Transformation Step 3;     Branch 2 ---> Fork #1.
    Validation#1 = if the validation field has null value then it will go to Transformation Step3 along Fork#2 (end receiver is Proxy-C)
    validation#2 = if the field has value then it will go inside Fork#1 which has 2 branches: Transformation Step 1 (goes to Proxy-A) and Transformation Step 2 (goes to Proxy-B)
    I am testing a file with only the null value, so I am doing validation#1 only.
    I can see the message in BPE engine  (Outbound status = Processed successfully) but the message is stucked in the BPE
    I checked on the workflow log and here is what i see:
    1) Transformation Step 3 is executed (all mapping steps 1-4 completed so this is successful)
    2) Transformation Step 2 is executed (but mapping encounters an exception so this is not successful)
    3) Transformation Step 1 is not executed already because of the exception, and therefore Send Alert is triggered.
    It seems that all records of the file passes through all the branches, which is not intended.
    My intention is that when the validation field has null value that record will only pass thru Transformation Step 3,   if it is not null then record will pass thru Transformation Step 2 & 1.
    I already created a mapping for this validation, and when I test the Interface Mapping for Transformation Step 3 (consisting of 4 mapping steps) using an actual payload  it is successfuly generating the message.  - so no problem in this Interface Mapping.
    But on Runtime, BPM triggers exception due to validation#2 failing which again is because all records of file seem to pass on both Forks.  I want that when Validation#1 is true that specific record only passes in Fork#2   and not in Fork#1 also.
    I am using ParForEach.
    Can you kindly advise how to correct this issue?

    that was a very detailed explanation!
    But on Runtime, BPM triggers exception due to validation#2 failing which again is because all records of file seem to
    pass on both Forks. I want that when Validation#1 is true that specific record only passes in Fork#2 and not in Fork#1 also
    problem with your design...Fork seems to be working fine....you need to have a Switch block which will perform the validation and then route the message accordingly.
    I already created a mapping for this validation, and when I test the Interface Mapping for Transformation Step 3
    (consisting of 4 mapping steps) using an actual payload it is successfuly generating the message. - so no problem in this
    Interface Mapping.
    Mapping success does not mean that the BPM processing will be success.

Maybe you are looking for

  • Report Builder 2.0 User Password Change Issue

    A user changed her password (domain account) this morning and can no longer open the query designer (we are using an SSAS data source) or run a report in Report Builder 2.0.  She can still access the SSRS front end report manager reports with no issu

  • How to change language in HealthVault downloaded from Win8 store

    After installing HealthVault on my Windows phone (wp7.8) I also installed the app from Win8 store. BUT it installed in some strange language (indonesian?); Could you help, pls, how to change it? btw after logon the app still connects correctly to the

  • Wrong day on answerphone on BT Synergy 5500

    Can anyone tell me how to change the actual day on the base station.  The time and date are correct but I cannot find any insruction in the manual how to change the day.  The recorded (incoming) messages are announced either as 5 days late or 2 day e

  • 12 inch won't shut down

    My daughter has a PB 12 inch that has never shut down correctly from day 1. I always figured an update would take care of it and sent her off to school with it. Well, here we are at probably the last Tiger update and no go. When you shut down the com

  • Dead insect behind glass on iMac

    I have a 27 iMac (late 2012) that has what looks like a dead insect behind the glass (Excel is shown behind the bug). I have no idea how it got there and it wasn't there a week ago. I was under the impression that nothing could get in there based on