OnRamp for Commerce One MarketSite 3.5 SP1 | webMethods OnRamp for Commerce One MarketSite Adapter Documentation | webMethods OnRamp for CommerceOne MarketSite Adapter Installation and User’s Documentation | Using the Partner Manager | Building and Maintaining the Routing Rules | Components of a Routing Rule | The Routing Criteria | Routing Rule Precedence
 
Routing Rule Precedence
A routing rule is executed when its Sender, Receiver, and Message Type values match an incoming document’s values. When one or more of those values is a wildcard (*), then the routing rule is matched and executed based on its value precedence. See the following table for the default match order. The most specific rule is matched (and executed) first.
A rule with these values is matched...
Sender
Receiver
msgType
First
arbitrary string
arbitrary string
arbitrary string
Second
*
arbitrary string
arbitrary string
Third
arbitrary string
*
arbitrary string
Fourth
arbitrary string
arbitrary string
*
Fifth
*
*
arbitrary string
Sixth
*
arbitrary string
*
Seventh
arbitrary string
*
*
Eight (last)
*
*
*
Note:
If rule matching is performed by an external service via a getRule service, then the value precedence is dependent on your custom implementation. A custom getRule service uses wm.PartnerMgr.gateway.getRule:getRuleSpecification to bypass the default routing rule functionality and returns the routing rule that you want invoked. The getRule service must be specified in the server.cnf file on the watt.WmPartners.getRule parameter. Any kind of wildcards can be implemented within the getRule service.
Example 1
Suppose that you have a routing rule with the following values:
Sender=snd
Receiver=receiver
msgType=msg1
If a message arrives with the following values:
Sender=snd1
Receiver=receiver
msgType=msg1
and a routing rule does not exist with those exact values, then the message will be matched to a routing rule with the following pattern:
Sender=*
Receiver= arbitrary string
msgType= arbitrary string
Example 2
Suppose that you have a routing rule with the following values:
Sender=snd
Receiver=receiver
msgType=msg1
If a message arrives with the following values:
Sender=snd1
Receiver=receiver
msgType=msg2
and a routing rule does not exist with those exact values, then the message will be matched to a routing rule with the following pattern:
Sender=*
Receiver= arbitrary string
msgType=*
To override the default match order, see Overriding Routing Rule Match Order.