Query - Content Based Routing - File to File

Hi,
  I'm trying to create a scenario which sends a file (multiple records) to multiple receivers based on the Header(System) of the record.
File format:
<System,Name,Age,Qualification>
If the System value is "Sys1" then it should be written into the file A, else into the file B.
Please let me know the different ways of doing it.
Is BPM mandatory for this scenario?
Thanks,
Rakesh.

Hi Rakesh,
This scenario you are trying can be done using CONDITIONAL RECEIVER DETERMINATION and RB SPLIT
To do this without using a BPM.
1. Create your mapping program that will map the information from the source file
into the destination idoc. This has to be a 1:N split. Just make sure that the destination message type and message interface are are of occurrence N.
2. Also, you will have 2 destination interfaces and 2 interface mapping, one for the IDOC and one for the mail.
Now, there are a few essential steps in your configuration,
1. In the receiver determination, specify the 2 receiver systems, one for your IDOC and the other for your MAIL.
2. Now, you will have a condition window. Just type the condition on the basis of which the receiver has to be determined for the mail and the idoc business system. Just remember that the condition can be specified only for the source message.
2. In the Interface Determination, you have an option called RB CLASSIC and RB SPLIT. To do a 1:N split, you will have to do a RB_SPLIT.
Thus, your solution can be devised without a BPM wich I guess is preferred because of performance issues.
You can also go through the following to understand the step by step procedure to have 2 receivers:
<a href="/people/suraj.sr/blog/2006/01/05/multiple-inbound-interfaces-within-a-service Inbound Interfaces within a Service</a>
<a href="/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers receiver Scenario</a>
I hope I have answered your query.
Regards,
Abhy

Similar Messages

  • Content based Routing?

    Hi Forum,
    I've looked through the messages regarding content based routing or similar's but the answers did not satisfy my needs. I have an XSLT mapping from a flat file structure to an IDOC. To qualify the receiving system I have to do a database lookup in my XSLT mapping by a Java extension function with combining some of the inputfields. The result of this database lookup is the Receiver System. How can I use this result in the condition Editor for the receiver determination. I can only use here the Nodes from the inputmessage. Are there other ways to have access to a "global Container" where I can store the results from the databaselookup to use them here?
    Thanks for you patience
    Manfred Schmidt-Voigt

    Hi,
    If the outbound adapter is a j2ee adapter, you can write a module which performs the lookup in a database or what ever. Then alter the message and add the information looked up.
    The easy way would be to add an extra attribute on the root node and add the content of the lookup in this field.
    I whould though prefere to use add the information to my root node.
    If you are not that keen on adapter development, the send the message into a bpm where you perform a lookup. This could probably be performed useing one of SP13's lookup functions.  The BPM should only consist of a recieve and a send step. When sending the message you should be able to perform the routing.
    /daniel

  • Sender SMTP Adapter / Content Based Routing / Mapping of an attachement

    Hi all,
    I'm still working on my SMTP --> PI --> Proxy scenario (asynchronous). I've tried several different properties of my sender communication channel (type = mail), but I didn't find the correct configuration. Hopefully it exists.
    I'm working with PI 7.0 SP10.
    I get an inbound message via Mail using sender SOAP Adapter. The message payload itself is an attachement. Now I'd like to do the following:
    a) Content Based Routing in Receiver Determination based on the message subject
    b) Mapping of the Attachement XML message to my inbound proxy interface
    Now, trying to do so, I didn't get it work. When I use XIPAYLOAD with keep attachements, I get two attachements in my inbound message (one in XI mail package format having the subject within, one with the IDoc structure I'd like to map). How can I assign the second attachement to be used for my message mapping?
    When I use XIALL instead of XIPAYLOAD, I think the mapping will work but my subject for content based routing will be lost, right? That one I didn't get running because of another failure, so I don't know the exact behaviour of the adapter for that configuration.
    Anybody out there who know the correct configuration for the sender mail adapter for my small scenario above?
    BR
    Holger

    Hi Stefan,
    sorry for misunderstanding, for sure I'm using the mail adapter, not the SOAP Adapter. I'm actually on the same direction. I'm using XIPAYLOAD as message protocoll (having the attachement as the content for the mapping --> correct). Furthermore I've also found the predefined context objects for the content based routing receiver determination.
    What I missed was setting the following properties in the communication channel:
    To store adapter attributes in the message header of the XI message, set the Set Adapter-Specific Message Attributes indicator.
    The following attributes are added to the XI message header if the sender makes them available, and if the Variable Transport Binding indicator is set.
    Now it's working
    BR
    Holger

  • Content based routing in PI 7.1?

    Hi Guys,
    For the normal content based routing in PI 7.1 in the receiver determination step once i select the conditin and in the condition editor to choose the filed, i dont see any interface under the xpath.
    I dont have any search help option in the xpath column
    any help or suggestions would be appreciated
    Thanks,
    Raj

    Hi Raj,
    Try the steps which I am giving below, although it's a workaround and don't know the exact reason why it is failing.
    1. Open your Outbound Message Interface (which you are using in your Receiver Determination) in IR, edit it and change the Interface pattern (which is there just below the category "Outbound") to "Stateless (XI30 - Compatible)" , save it activate it.
    2. Follow the same step for your Inbound Message Interface. Change the Interface Pattern from "Sateless" to "Stateless (XI30 - Compatible)" .
    3. Go to ID. Remove your Outbound and Inbound Message Interface from their respective Business Service/Comp and add it again.
    4. Create your your receiver determination again using the Outbound and Inbound MI you have changed.
    5. Open condition editor of your receiver determination.You should be able to see your Message Interface and can choose the XPath.
    Follow the above steps carefully. It took me an hour to find this workaround. Let me know if it works.
    Thanks
    Amit

  • Oracle ESB - Message routing support & content based routing

    Hi Friends,
    Can anyone please let me know how message routing and content based routing is happening in Oracle ESB.

    Check this...
    http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/tasks.htm#i1116351
    And this...
    https://forums.oracle.com/forums/ann.jspa?annID=893

  • Content based routing and XML with multiple objects

    I have some structure:
    <contracts>
      <contract>
         <department>1</department>
      </contract>
      <contract>
         <department>1</department>
       </contract>
      <contract>
         <department>2</department>
       </contract>
    </contracts>
    I need to route contract to 2 system based on <department> value:
    contracts/department = 1 --> System1
    contracts/department = 2 --> System2
    Will XI split my XML (based on Content Routing rules in ID) into 2 structures (with departmet=1 and department=2 accordingly) ?
    Or I have to perform 1ToN mapping? I don't like it bacause it will be diffucult to monitor hundred of messages.

    Alternatively if you donot like 1:n mapping and BPM.
    Create two message mappings in the IR
    1.Source :<contracts>
    <contract>
    <department>1</department>
    </contract>
    <contract>
    <department>1</department>
    </contract>
    <contract>
    <department>2</department>
    </contract>
    </contracts>
    Target:
    <contracts>
    <contract>
    <department>1</department>
    </contract>
    <contract>
    <department>1</department>
    </contract>
    Basically mapping generates a target structure which has only department 1.
    2.Same like step1 but the mapping should generate the XML with department = 2.
    Once requires steps are done in the ID , do the content based routing in the reciever determination and give the appropraite message mapping in the interface determination.
    That should your problem and also you will like doing it as it does not involve any split level mapping..:)

  • Content Based Routing in ESB

    Hi All ,
    I needed some help on the content based routing feature in ESB .
    I have an ESB Process in which Data is extracted from a Database(using Select operation) and I have a column X based on whose content I want to invoke the next set of target services . I had assumed having 3 different routing rules with the Filter expression based on the content of X will do the work .This works only when I have one record for a batch of records it doesnot work .
    Wanted to know how does it evaluate for a scenario where we have multiple records in a payload with the value of the column on which we are doing content based routing varrying across the payload ?
    Thanks in advance.

    Hi,
    As James stated esb is processing the incomming recordset as one message so it applies your xpath expression to that message as a whole. Anyway, in your case, if you want to process records from a database table one record at the time i would go for the db polling mechanism and change my database model to include a logical delete column (eg a column processed which contains a Y or a N). You can not split a multiple record message in esb itself into separate messages for each record.
    Kind Regards,
    Andre

  • Content based routing in receiver determination.

    hi,
            how to do content based routing in receiver determination based on value of  of a variable of target structure?
    Miten.

    ths is what you are looking for
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers

  • Split messages while using content based routing

    Hi gurus,
    We are using content base routing by checking the value of field F1 in our scenario. If the value is V1, then route to system A; If the value is V2, then route to system B.
    There are two layer in the send message type: layer1 and layer2. Both layer1 and layer2 can occur many times.
    As you know,  The field maybe existed many times in the real messages. Sometimes with the value V1, sometimes with the value V2.
    If F1 is in the layer1, can we split into two messages by judging the value of F1?
    If F1 is in the layer2, can we split into two messages by judging the value of F1?
    Thanks in advance.

    Hi Grzegorz,
    Thanks for your reply.
    Actually my case is as follows:
    (send messge)
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
                   <DATA>
                        <F1>V2</F1>
                   </DATA>
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
    Then in system A, we should receive( suppose no mapping):
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
    While in system B, we should recieve:
                   <DATA>
                        <F1>V2</F1>
                   </DATA>
    If we only use content based routing, both A and B will receive all 3 DATA.
    Any ideas? Thanks in advance.

  • Where do you perform Content based Routing?

    Where do you perform Content based Routing?
    Edited by: I AM NEW TO XI on Jan 8, 2009 5:11 PM

    Hello,
    Although jayson has answered, just to help you more, in the receiver determination in ID, you will see conditional routing, there if you click, you will see your source message structure, you can select a perticular field and set conditions and the corresponding reciever if those conditions are met.
    Hope this helps.
    Thanks
    -Kulwant
    Award score if useful

  • Content based Routing Vs Message based Routing

    Hi friends,
    Can u plz differentiale Content based Routing and Message based Routing?

    Hi,
    Content based routing is when the receiver is determined based upon some value in message i.e for a field 'a' receiver is A but if its 'b' receiver is B.this is determined at runtime.
    While message based is normal routing
    Regards,

  • Does OpenESB support "Content-based Routing"?

    Hi,
    support OpenESB the "Content-based-Routing"? e.g is there JXPath SE or Groovy SE or any service engine for this issue? if yes which is please?
    thanks in advance
    Younes

    There's an Apache Camel service engine, and Camel's rather neat when it comes to routing
    edit: groan :-( I just noticed the date on this post
    Edited by: georgemc on Jul 7, 2010 1:59 PM

  • Content Based Routing, but same receiver Business System

    Hello experts,
    I'm working with SAP PI 7.11 and I need to process different incoming EDI messages.
    These EDI messages have the same name (except for the timestamp), so I really need to read the files.
    Based on 2 fields in the message, a different ABAP mapping must be chosen. The final receiver is always the same, the SAP backend system.
    So I checked the Receiver Determination, but adding receiver rules doesn't make any sense because the sender is always the same and only 1 interface determination can be created in that case. Thus only 1 ABAP mapping can be referenced.
    Please advice.
    Thanks a lot
    Dimitri

    Thanks for the tip!
    I moved my xpath expression from my receiver determination to my interface determination because there I cannot should the source structure.
    Did a quick test and it looks fine. I my trace I see different ABAP mappings are being taken.
    Thanks again.
    Dimitri

  • Design suggestion for content based routing

    Hi All,
    I have the following scenario.
    Based on one field in the file I have to take the following decisions.
    1)If field is 'R'. Then I should send a mail with some data to the concerned person.
    2) If filed value is 'V' . Then I should create file with the  input XMl.
    Venu.

    hi,
    just use condition editor in directory to
    do it (receiver determination)
    if r then one service which will send mail
    if v then another service with mapping etc
    it's all standard
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Content based routing on anyxml payload

    Hi guys,
    I try to do the next.
    I have a anyxml type proxyserver which polls on a queue.
    From the queue i can receive different types of xml messages.
    <message1>some info</message1>next messsage
    <message2>some info</message2>They both have different handlers so i try to do the next thing.
    added Conditional Branch.
    selected path : ./*[position()=1]/name() (this gives me the name of the first element (so in this case message1 and message2))
    and this string i want to use to branch to the different handlers.
    but the selected path expects a node-value and no string-value.
    An error was reported compiling the XPath expression: XQuery exception: line 25, column 19: {err}XP0004 [{bea-err}XP0004b]: Found type mismtach in expression. Only empty sequence satisfies type checking rules. Expected type: node*. Actual type: {http://www.w3.org/2001/XMLSchema}string* for expression: declare namespace ws = 'http://www.bea.com/wli/sb/transports/ws';when i add './*[position()=1]' it validates
    any idea how to be able to route based on the text-value of an element instead of browse through the payload itself ?
    Thanks!
    Eric

    Are you using dynamic route, documented at
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1081507 . ?

Maybe you are looking for

  • How to delete data in table control

    Hi, I am doing module pool programming. After the user enters the data in table control after saving the data. if the user wants to  remove the line item the line item shd be removed from the screen and data base. Please Give me vaulable Suggestions

  • Itunes 7 and Quicktime HATE ME

    I have tried to install itunes 6 and it worked fine until a couple weeks ago when it would not get to my ipod and quicktime didn't work at all, Now itunes 7 is out and it still won't let me download itunes and quicktime because of the activex control

  • Problem in configuring SSO using SAML for applications hosted on diff m/c

    Hi Techies, I am stuck in a weird problem for past month or so without any resolution. Not much help by googling. So I hope i get the answer from the mouth of the horses - I am trying to use SSO using the sample application appA and appB as stated in

  • Triggering workflow through an upload file

    Hello All, My requirement is: If transaction ZGUPACCR is started, it is based on an upload text file. The transaction should start a WF for approval before it posts the document. The text file that was approved would have to be stored as an attachmen

  • RFC function to get the WBS Element formatted string

    Hi, Is there an RFC function I could use which would do what the CONVERSION_EXIT_ABPSN_OUTPUT does? We are using Project IDOC to replicate WBS element in our procurement system. The IDOC only provides the unformatted version of the WBS Element id. Th