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..:)

Similar Messages

  • 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,

  • 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 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

  • Analysis Authorization based on Hier node with multiple display hierarchies

    Hi guys - I've got a problem where s.o. might have an idea of how to switch on the light at the end of the tunnel, I am currently standing in:
    Requirement:
    Cost Center Authorization should be given through RSECADMIN, reporting should be possible for any hierarchy that exists for the authorization relevant info object.
    Preferred solution:
    The Cost Center Analysis Authorization should be given through RSECADMIN - Hierarchy node assignment.
    u2022     A dedicated Authorization Cost Center Hierarchy will be maintained in ECC6 as an alternative cost center hierarchy and extracted into BW.
    u2022     The RSECADMIN Hierarchy node assignment should be based on a particular node (Type 2).
    u2022     The display level will be specified as required (here: Level 7)
    u2022     The Authorization granted should be independent of hierarchy name and version (validity 3).
    Reporting Scenario and technical impact:
    As mentioned above, when designing and running a query the user should be able to freely select other (i.e. than the authorization) display hierarchies for the authorization relevant reporting object 'Cost Center' as well. The technical names of the semantically relevant hierarchy nodes could therefore vary. E.g. cost centers 1, 2 and 3, being assigned under hierarchy node u2018Au2019 of the RSECADMIN relevant authorization hierarchy, could be subsumed by hierarchy node u2018Bu2019 in another display hierarchy, which the user may want to display in accordance to his reporting needs. Ideally, the alternative display hierarchy should therefore display node u2018Bu2019.
    My findings so far (based on prototyping) turn out that this is not possible as long u2018Bu2019 (and its hierarchy) is not authorized in RSECADMIN. Can these findings be confirmed? And if not, would anyone have an idea of how to facilitate the reporting scenario?
    Would there be any other way to grant access, possibly based on RSECADMIN single values, and also enable the user to flexibly display hierarchies with only those hierarchy nodes whose single cost center values the user has been given access to?
    Thanks everyone for your input...
    Claus
    Edited by: Claus64 on Jul 13, 2009 4:10 AM

    HI CLause,
    On Jul 14 2009, you wrote in SDN and said:
    FYI: Found a solution...
    The hierarchy analysis authorization will be based on a navigational attribute of cost center.
    With analysis authorizations it is possible to declare the Auth object (e.g. 0COSTCENTER__RACCAUT0) as authorization relevant and leave the superior object 0COSTCENTER auth irrelevant.
    The auth will be given for 0COSTCENTER__RACCAUT0. This object will be placed as a filter of the query, being restricted by an Authorization variable for hierarchy nodes.
    Due to the concept of Analysis Authorizations, this variable will automatically pick up the nodes granted as part of RSECADMIN Hierarchy based Authorization.
    As mentioned above, 0COSTCENTER as the regular reporting characteristic remains auth irrelevant and can therefore take any hierarchy thatu2019s available. Reporting on single values will be possible, too. Only those nodes show up that hold the authorized cost centers in accordance to the authorization.
    If the auth relevant 0COSTCENTER__RACCAUT0 is not used in the query definition by either not taking it in as a filter or skipping the Auth variable, the query will launch the message that the authorization is missing. No data show up at all.
    Claus
    See this thread:
    Analysis Authorization based on Hier node with multiple display hierarchies
    I am also in the same situation as you and need to understadn your solution. I understand that you created a Nav Attr on 0COSTCENTER and made this auth relevant whilst ensuring that 0COSTCENTER is NOT auth relevant. This is all fine. The issue was you have multiple hierachies for 0COSTCENTER, how did the new Nav Attr help you solve your issue. When loading 0COSTCENTER what values did you load ino the new Nav Attribute and how did that link to the hierachies? Also, in RSECADMIN you created hiearchy nodes based on the Nav Attribute but I am confused as to what values you have in the Nav Attr.
    I appreciate if you can share your solution from the past in more details.
    many thanks

  • 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

  • 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.

  • 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 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

  • List with multiple objects

    Hi,
    Is it possible can we have a List with multiple Object (CustomerVO, OrderVO and AddressVO) in a single List? If so how we will define the generics for that List?
    Please clarify.
    Thanks.

    797836 wrote:
    Guys, am I correct? Please clarify.If it works, it is correct. So try it.
    I was more thinking along the line of this though according to what you described in your initial post:
    Class ParentVO{
    private CustomerVO customer;
    private OrderVO order;
    private AddressVO address;
    // with getters and setters
    }That way you don't need any list at all, if you only want to have access to these three objects. Just slap them in a ParentVO and use that.
    Looking at it again I wonder if the ParentVO is needed even, there is a strong relationship between these three objects. An order has a customer and a customer has an address / an order has a billing/shipping address...

  • 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

  • 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

  • Introduce second default gateway into policy-based routing and optimization

    Questions:
    1) How to get the second PBR_DEFAULT_GATEWAY address 10.20.20.3 into the policy-based routing for redundancy?
    2) Any optimizations as more and more traffic (policy-based routed and otherwise) goes through interface Gi1/0/1?
    Address range A.B.0.0/16 represents assigned Internet-routable addresses.
    Network also uses 10.0.0.0/8, 172.16.0.0/20, 192.168.0.0/16.
    DEFAULT_GATEWAY router participates in OSPF and injects the default routes 0.0.0.0/0 10.10.10.1 and 0.0.0.0/0 10.20.20.1 into OSPF.
    PBR_DEFAULT_GATEWAY router participates in OSPF but filters out default routes injected by DEFAULT_GATEWAY router.
    ROUTER_A participates in OSPF and receives default routes injected by DEFAULT_GATEWAY router.
    ROUTER_A contains the attached policy-routing configuration that allows the subnet A.B.30.0/24 to route anywhere on the network and uses PBR_DEFAULT_GATEWAY as the way out.

    Ok I will see if I can run out to work and try this today..
    After thinking about this, If I need to get to local ip addresses (192.168.1.0 and 192.168.128.0), I might have to change my route map to include those ranges in an ACL, then assign the 172.20.200.1 as the gateway to get to those networks, with the last statement being the traffic to be sent out the firewall
    for instance
    # Access to one of my local networks
    access-list 101 permit ip 172.20.200.0 0.0.0.255 192.168.1.0 0.0.0.255
    # Send Internet traffic to ASA/PIX
    access-list 172 permit ip 172.20.200.0 0.0.0.255 any
    route-map pix-172-20-200 permit 10
    match ip address 101
    set ip next-hop 172.20.200.1
    route-map pix-172-20-200 permit 20
    match ip address 172
    set ip next-hop 172.20.200.2
    and so on?
    I know I need to be in front of my switch to test the change from set ip default next-hop to set ip next-hop...
    I wantto make sure I can still get to the local networks I need to get to.
    I appreciate all your help, and I will test this later on today..
    Thanks
    Don Hickey

  • Spiral/Vortex with Multiple Objects

    Hi, all
    I'm trying to replicate this image from Shutterstock with multiple objects to create this spiral vortex.
    http://image.shutterstock.com/display_pic_with_logo/849265/101051014/stock-vector-card-sui t-hearts-diamonds-spades-and-clubs-playing-cards-op-art-vector-illustration-101051014.jpg
    I looked up tutorials like this: http://vectorguru.com/tutorials/how-to-distribute-objects-along-spiral.html
    Where I can put say the hearts on one spiral.
    But, the image seems to be multiple spirals in a uniform and equidistant manner. I would like to know how to go about making a "vortex" with multiple objects very similar if not the same to this fashion.
    Please advise.
    Thanks!

    Hi lotrismylife,
    I was able to get a similar effect using the following steps:
    Create a pattern brush of the 4 symbols next to each other (that way you can distribute them easily around the circle).
    Start with the outermost circle, and apply the new pattern brush to it's stroke.
    Expand the circle
    Object > Transform > Transform Each (CTRL + ALT + SHIFT + D)
    Set the horizontal & vertical scale to be smaller than 100% (you must experiment with this, depending on how big the gaps between circles must be)
    Set the rotation angle (depending on how much each circle must rotate)
    Click on Copy
    Now continually press CTRL D - this will continue to create a copy of the outermost circle that is x % smaller, and x degrees rotated.
    End result:

Maybe you are looking for