You find the Web service description for a receiver determination in the following data types. You find the data types in the Receiver Determination folder.
The external definition contains structure elements of the following table.
Data Type |
Description |
---|---|
MessageHeaderID (in Common folder) |
Specifies object key The object key consists of the following:
|
ReceiverDetermination (or RestrictedReceiverDetermination) |
Defines the receiver determination with all attributes.
|
ReceiverDeterminationRule |
Specifies the routing rule for a standard receiver determination. The routing rule consists of the following elements:
|
Condition (in Common folder) |
Specifies condition: A condition is constructed of sub-conditions ( AtomicConditionBlock ). For more information, see Structuring Conditions below. |
AtomicConditionBlock (in Common folder) |
Specifies a block of elementary conditions. For more information, see Structuring Conditions below. |
AtomicCondition (in Common folder) |
Specifies the contents of an elementary condition in a routing rule. A condition consists of the following parameters:
|
CommunicationPartnerExtractor (in Common folder) |
Specifies the receiver (party/service). You must enter the following parameters to specify a receiver completely:
|
Extractor (in Common folder) |
Describes the data structure for the entry of an expression in a condition. An expression consists of the following elements:
|
Structuring Conditions
The core of a condition is the connection of an expression ( Extractor ) with another expression by using an operator. In an elementary condition ( AtomicCondition ) you connect exactly two expressions together, a left expression and a right expression ( LeftExtractor / RightExtractor ).
You can connect elementary conditions to blocks ( AtomicConditionBlock ) using the AND operator. You can then connect this to a condition using the OR operator.
The figure shows how complex conditions are fundamentally set up when they are made up of several blocks of elementary conditions.
Structuring Expressions
You have several options for formulating an elementary condition in an expression.
Using TypeID element you specify how you want to define the expression.
Expression type |
Description |
---|---|
Entering a constant ( TypeID = Constant ) |
Enter the value in the Value parameter. |
Entering an XPath expression ( TypeID = XPath ) |
Enter the XPath expression in the Value parameter. |
Entering a Context Object ( TypeID = Context Object ) |
Enter the name and namespace of the (technical) context object or the header field from the ES Repository in the ContextObjectName and ContextObjectNamespace parameters. |
Entering a Technical Context Object ( TypeID = Technical Context Object ) |
|
Entering a field from the message header ( TypeID = Message Header Field ) |
Example of a Condition
When the AirlineID field in the message payload has the value LH , then the message is forwarded to the receiver business system BUS_100 . A context object of the same name from the ES Repository is used to access the AirlineID field in the message.
The receiver determination in this case contains just one block with an elementary condition ( AtomicCondition ) and the assignment to the receiver.
The elementary condition is expressed using the following elements (XML presentation).
<AtomicCondition> <Operator>EQ</Operator> <LeftExtractor> <TypeID>Context Object</TypeID> <Value>/p1:BookingOrderRequest/FlightID/AirlineID</Value> <Datatype></Datatype> <ContextObjectName>AirlineID</ContextObjectName> <ContextObjectNamespace>http://sap.com/xi/XI/Demo/Agency </ContextObjectNamespace> </LeftExtractor> <RightExtractor> <TypeID>Constant</TypeID> <Value>LH</Value> <Datatype>xsd:string</Datatype> <ContextObjectName> </ContextObjectName> <ContextObjectNamespace> </ContextObjectNamespace> </RightExtractor> </AtomicCondition>
Example of Expressions
Entering a Field from the Message Header
<TypeID>Message Header Field</TypeID> <Value></Value> <Datatype>xsd:string</Datatype> <ContextObjectName>SenderPartyAgency</ContextObjectName> <ContextObjectNamespace>http://sap.com/xi/XI/System</ContextObjectNamespace>
Entering a Technical Context Object
<TypeID>Technical Context Object</TypeID> <Value></Value> <Datatype>xsd:string</Datatype> <ContextObjectName>ProcessStep</ContextObjectName> <ContextObjectNamespace>http://sap.com/xi/XI/System</ContextObjectNamespace>
Entering a Context Object
<TypeID>Context Object</TypeID> <Value></Value> <Datatype>xsd:string</Datatype> <ContextObjectName>ConvContent</ContextObjectName> <ContextObjectNamespace>http://xi.com/gr/conv</ContextObjectNamespace>