Show TOC

Receiver DeterminationLocate this document in the navigation structure

Use

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:

  • SenderPartyID : Sender Party (optional)

  • SenderComponentID : Sender Service

  • InterfaceName : Sender interface name

  • InterfaceNamespace : Sender interface namespace

  • ReceiverPartyID : Receiver Party (optional)

  • ReceiverComponentID : Receiver Service

    Note

    The same data structure is used for the object key for receiver determinations, interface determinations, sender agreements, receiver agreements, and direct connections.

ReceiverDetermination (or RestrictedReceiverDetermination)

Defines the receiver determination with all attributes.

  • MasterLanguage , AdministrativeData , and Description ; more information: Cross-Object-Type Elements

  • ReceiverDeterminationID : Object Key

  • Rule : Specifies the condition and receiver in a standard receiver determination.

    More information: see element ReceiverDeterminationRule .

  • DynamicReceiverRule : Specifies reference to a mapping in the ES Repository (enhanced receiver determination).

  • NoReceiverBehavior : Specifies what happens if no receiver can be determined at runtime.

    Possible values:

    • Error Message : Message processing is terminated with an error.

    • Ignore : Message processing is ended as defined by your configuration settings.

    • Specified Receiver : The message is sent to a fixed predefined receiver.

  • NoReceiverReceiver : Specifies a fixed receiver (party/service) when receiver cannot be determined at runtime.

    Specify this parameter when you have entered the value Specified Receiver for the element NoReceiverBehaviour .

    If you have entered the values Ignore or Error Message for the Element NoReceiverBehaviour then the NoReceiverReceiver is ignored.

    You can find more information on how to specify the receiver in element CommunicationPartyExtractor (in the Common folder)

    Using the Integration Builder you can choose between two basic ways of receiver determination :

  • Standard Receiver Determination: Here you manually specify the receiver as well as conditions for forwarding the message to the receiver.

  • Enhanced Receiver Determination Here you specify a mapping to dynamically determine the receiver at runtime.

    Depending on which parameters you transfer, you determine a receiver determination of one of the two types. Rule parameter for standard receiver determination; DynamicReceiverRule for enhanced receiver determination.

    For a standard receiver determination you must have at least one receiver, and for an enhanced receiver determination you must specify a mapping.

ReceiverDeterminationRule

Specifies the routing rule for a standard receiver determination.

The routing rule consists of the following elements:

  • Operation : Specifies the service interface operation in the case that you want to define the receiver determination operation-dependently.

  • Condition : Specifies the condition for forwarding a message to a specific receiver.

    For more information see element AtomicCondition .

  • Receiver : Specifies the receiver of the message.

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:

  • Operator : Specifies the operator to link left and right operands.

    You can enter the following values:

    • EQ for equal (=)

    • NE for not equal (≠)

    • CP for contains pattern (≈)

    • EX for exist

  • LeftExtractor / RightExtractor : Specifies the expression for left/right operand.

    More information, see Structuring Conditions below and the description of the Extractor element.

CommunicationPartnerExtractor (in Common folder)

Specifies the receiver (party/service).

You must enter the following parameters to specify a receiver completely:

  • CommunicationParty : Specifies the expression for the name of a communication party.

  • CommunicationPartySchema : Specifies the expression for the identification schema of an identifier for a communication party.

  • CommunicationPartyAgency : Specifies the expression for the identification schema of an agency for a communication party.

  • CommunicationComponent : Specifies the expression for a service (obligatory entry).

    All parameters are based on data type Extractor .

    More information see Extractor data type.

Extractor (in Common folder)

Describes the data structure for the entry of an expression in a condition.

An expression consists of the following elements:

  • TypeID : Specifies whether an expression is displayed as an XPath expression or by entering a context object.

    Possible values: XPath , Context Object , Technical Context Object , Constant , Message Header Field .

    Which further parameters you specify depends on the expression type.

  • Value : You can specify a simple value with this parameter.

  • Data Type : You can specify an XSD data type with this parameter. This is useful when a particular format is needed for the expression (for example the entry of a date in a fixed predefined date format).

    Possible values: xsd:string , xsd:integer , xsd:date , xsd:time

  • ContextObjectName / ContextObjectNamespace : Specifies the name and namespace of the context object.

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.

Note

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>