A Configuring SAP for Inbound and Outbound Processing
During inbound (client) processing, IDocs are transferred to the interface and stored
in the R/3 System. The document data is generated in a second step, also in the
course of a workflow.
Outbound processing in SAP involves event handling. An event in SAP is defined as
an occurrence of a status change in an object. Events are created when the relevant
status change occurs. The following topics describe how to enable inbound and
outbound SAP processing.
Configuring SAP Inbound Processing
Configuring SAP Outbound Processing
Configuring SAP Inbound Processing
SAP inbound processing requires the upstream system to transfer an IDoc to
the IDoc interface through the R/3 System port. For this reason, you do not have to
specify a port in the inbound partner profiles; the IDoc interface only must recognize
the upstream system as a port. A port definition, which provides a unique ID for the
upstream system, must be available for the port. The technical parameters of this
port definition can (and usually are) overwritten by the upstream system.
If the upstream system is recognized, then the IDoc is saved in the database. If a
partner is defined with the corresponding message in partner profiles, the IDoc is
then processed further. This is done independently in the second step. This ensures
that the external system can receive the data quickly and reliably (automatically).
You must perform the following steps to configure SAP for inbound IDoc processing:
1. Configure a logical system.
2. Configure a distribution model.
3. Define an inbound partner profile.
Configuring a Logical System
In any distributed environment, each participating system must have a unique ID to
avoid confusion. In SAP, the name of the logical system is used as the unique ID.
This name is assigned explicitly to one client in an SAP system.
Defining a Logical System
To define a logical system:
1. Run the sale transaction.
Description of the illustration ale_saletransaction.gif
The Display IMG window is displayed.
Description of the illustration ale_inbound1.gif
Perform the following steps:
a. Expand Sending and Receiving Systems.
b. Expand Logical Systems.
c. Select Define Logical System.
2. Click the IMG - Activity icon.
A message window is displayed. It indicates that the table is cross-client.
Description of the illustration ale_imgmessage.gif
3. Click the check mark icon to continue.
The Change View "Logical Systems": Overview window is displayed.
Description of the illustration ale_inbound2a.gif
4. Click New Entries.
The New Entries: Overview of Added Entries window is displayed.
Description of the illustration ale_inbound4a.gif
5. Enter the Logical System, for example, ORACLETDS, in
the [Link] column and provide a description in the Name column.
6. Click Save.
The Prompt for Workbench request dialog box is displayed.
Description of the illustration ale_inbound4.gif
7. Click the Create Request icon.
The Create Request dialog box is displayed.
Description of the illustration ale_inbound5.gif
8. Enter a name and description for your request and click Save.
The logical system you configured, for example, ORACLETDS, is now added to
the list.
Description of the illustration ale_logicalsysdisplay.gif
Configuring a Distribution Model
A distribution model is used to describe the ALE message flow between logical
systems. Business objects are distributed to connected recipients according to a
unique distribution model that can contain rules of varying complexity depending on
the type of business objects involved.
Defining a Distribution Model
To define a distribution model:
1. Run the bd64 transaction.
Description of the illustration ale_nbd64.gif
The Display Distribution Model window is displayed.
Description of the illustration ale_distmodel1.gif
2. Click Distribution Model from the menu bar.
Description of the illustration ale_distmodel2.gif
3. Select Switch processing mode.
The Display Distribution Model window is switched to Change Distribution
Model.
Description of the illustration ale_distmodel3.gif
4. Click Create model view.
The Create Model View dialog box is displayed.
Description of the illustration ale_inbound7.gif
5. Enter a model view name in the Short text field and a name in
the Technical name field, which also serves as a description.
6. Click the check mark icon to enter the information.
You are returned to the main Change Distribution Model window. The
distribution model you configured is now added to the list.
Description of the illustration ale_distmodel4.gif
7. Click Add message type.
The Add Message Type dialog box is displayed.
Description of the illustration ale_inbound8.gif
Perform the following steps:
a. In the Sender and Receiver fields, enter the logical system you
configured, for example, ORACLETDS.
You can click the icon to the right of each field to browse from a list of
logical systems.
b. In the Message type field, enter the message type you want to use,
for example, MATMAS.
You can click the icon to the right of each field to browse from a list of
available message types.
8. Click the check mark icon to enter the information.
You are returned to the main Change Distribution Model window.
9. Click Save.
Defining a Partner Profile
Partner profiles are a prerequisite for data exchange. This involves defining who can
exchange messages with the SAP system and using which port.
Defining a Partner Profile
To define a partner profile:
1. Run the we20 transaction.
Description of the illustration ale_we20.gif
The Partner profiles window is displayed.
Description of the illustration ale_pprofile1.gif
2. In the left pane, expand Partner type LS and select the logical system you
configured from the list, for example, ORACLETDS.
In the right pane, the [Link] field refers to the name of the logical
system.
Description of the illustration ale_pprofile2.gif
3. Click Save.
4. From the Inbound parameters table, click the Create inbound parameter
icon.
The Partner profiles: Inbound parameters window is displayed.
Description of the illustration ale_inbound11.gif
5. In the Message type field, enter the message type you want to use, for
example, MATMAS.
You can click the icon to the right of each field to browse from a list of
available message types.
The Inbound options tab is selected by default.
6. In the Process code field, enter the process code you want to use, for
example, MATM.
You can click the icon to the right of each field to browse from a list of
available process codes.
7. In the Processing by function module area, select one of the following
options:
o Trigger by background program.
In this case the adapter writes IDocs to the SAP database, which is
processed immediately.
o Trigger immediately.
In this case, the adapter waits for the SAP system to process IDocs.
This can take anywhere from 1 to 15 minutes.
Click Save.
Configuring SAP Outbound Processing
Event creation must be implemented by you or by SAP. An event is created from
specific application programs (the event creator) and then published systemwide.
Any number of receivers can respond to the event with their own response
mechanisms. An event is usually defined as a component of an object type.
SAP pseudo events are not processed by the SAP Event manager, but are called
from an ABAP program or Remote Function Call (using the Destination parameter).
Related Concepts and Terminology
The following topic lists and defines specific terminology related to SAP and SAP
event handling.
Client and Server Programs
RFC programs for non-SAP systems can function as either the caller or the called
program in an RFC communication. There are two types of RFC programs:
RFC Client
RFC Server
The RFC client is the instance that calls the RFC to run the function that is provided
by an RFC server. The functions that can be called remotely are called RFC
functions, and the functions provided by the RFC API are called RFC calls.
SAP Gateway
The SAP Gateway is a secure application server. No connections are accepted unless
they have been preregistered previously from the SAP presentation Client. A server
connection presents itself to the Gateway and exposes a Program Identifier. If the
Program Identifier is found in the list of registered Program IDs, the Gateway server
then offers a connection to the server, which "Accepts" a connection. This
ProgramID is then linked with an RFC Destination within SAP, which enables SAP
Function Modules and ALE documents (IDocs or BAPI IDocs) to be routed to the
destination. The RFC Destination functions as a tag to mask the Program ID to SAP
users.
An RFC server program can be registered with the SAP gateway and wait for
incoming RFC call requests. An RFC server program registers itself under a Program
ID at an SAP gateway and not for a specific SAP system.
In SAPGUI, the destination must be defined with transaction SM59, using connection
type T and Register Mode. Moreover, this entry must contain information on the SAP
gateway at which the RFC server program is registered.
Program IDs and Load Balancing
If the Gateway Server has a connection to a particular server instance and another
server instance presents itself to the gateway, then the gateway offers the
connection and then begins functioning in Load Balancing mode. Using a proprietary
algorithm, the Gateway sends different messages to each server depending on
demand and total processing time. This may cause unpredictable results when
messages are validated by schema and application.
When configuring multiple events in the Oracle Application Server using a single SAP
program ID, SAP load balances the event data. For example, if multiple remote
function calls or BAPIs use the same program ID (for example, ORACLETDS) and
multiple SAP listeners are configured with this progamID, then SAP sends one
request to one listener and the next to another listener, and so on.
There is a load-balancing algorithm present in the SAP Gateway Server. This
mechanism is proprietary to SAP application development and might work by
comparing total throughput of the connection, the number of times in wait state,
and so on. This means one connection might receive nine messages and a second
connection might receive one message. If five of the nine messages are rejected for
schema validation and the one message on the other connection is rejected for
schema validation, you might suspect that you are missing SAP event handling
messages.
Load balancing in server (inbound to adapter from SAP) situations is handled by
connecting multiple instances of the adapter to the SAP system. The SAP system will
then load balance the connections. You cannot tune this performance.
Load balancing in client (outbound from adapter to SAP) situations is handled only
by the SAP application design. If your system supports a Message Server, then you
can load balance in client situations. If you have only one application server, you
cannot load balance except by application server tuning, such as maximum number
of connections permitted or time of day limits on connections.
The SAP system default limit is 100 RFC (communication) or adapter users. Each
user takes up more than 2 MB of memory on the application server of the SAP
system, and more or less on the adapter depending on the workload.
Connection Pooling
A connection pool is a set of client connections to a specific destination. The pool
may automatically create new connections to the specified remote system or return
an already existing connection. It also provides methods to return a connection back
to the pool when it is no longer needed.
A connection pool can check which connections are no longer in use and can be
closed to save system resources. The time period after which the pool checks the
connections as well as the time after which a connection will time out can be
configured by the calling application.
A pool is always bound to one user ID and password, meaning that all connections
taken from this pool will also use these credentials. An SAP connection is always
bound to an SAP user ID and an SAP Client number.
If you log on with a pool size that is set to 1, no connection pool is created (1 userid
– 1 process thread). If you log on with a pool size that is greater than 1, a pool is
created with a size of n, which is the number you specified.
For more information about connection pooling, see the SAP JCO API
documentation.
Registering Your Program ID in SAPGUI
To enable your SAP system to issue the following calls or interfaces to the SAP event
adapter, you must register your program ID under an RFC destination.
Remote Function Calls (RFC)
Business Application Programming Interfaces (BAPI)
Intermediate Documents (IDoc)
The RFC destination is a symbolic name (for example, ORACLETDS) that is used to
direct events to a target system, masking the program ID. The Program ID is
configured in both SAPGUI and the event adapter.
Registering Your Program ID
To register your program ID:
1. Launch the SAP GUI and log in to the SAP system.
2. Select Tools, Administration, Network, and then RFC destination.
3. Run the SM59 transaction.
The Display and maintain RFC destinations window is displayed.
Description of the illustration iway_sapu_tcpipconnect.gif
4. Select TCP/IP connections and click Create.
The RFC Destination window is displayed.
Description of the illustration iway_sapu_rfcddestination.gif
Provide the following information:
a. In the RFC destination field, enter a name, for
example, ORACLETDS.
The value you enter in this field is case sensitive.
b. In the Connection type field, enter T for destination type TCP/IP.
c. In the Description field, enter a brief description.
5. Click Save from the tool bar or select Save from the Destination menu.
The RFC Destination ORACLETDS window is displayed.
Description of the illustration iway_sapu_iwaydest.gif
Perform the following steps:
a. For the Activation Type, click Registration.
b. In the Program field, enter ORACLETDS.
6. Click Save from the tool bar or select Save from the Destination menu.
7. Ensure your event adapter is running.
8. Verify that the SAP system and OracleAS Adapter for SAP are communicating.
9. Click TestConnection.
Testing the SAP Event Adapter
In the SAP Server, the SE37 transaction enables you to send an RFC (Remote
Function Call) or a BAPI (Business Application Programming Interface) to any RFC
destination. For more information on RFC destination, see Registering Your Program
ID in SAPGUI.
Testing the SAP Event Adapter by Sending an RFC or a BAPI Manually
To test the SAP event adapter:
1. In the Function Builder, select a function module, for
example, RFC_CUSTOMER_GET.
Description of the illustration iway_sapu_functionbuilder.gif
2. To choose single test, press F8 and click the Single Test icon or
choose Function module, select Test and then Single Test.
3. Enter an RFC target system, for example, ORACLETDS.
4. Enter input data for the particular RFC modules, for example, AB*.
5. To execute, press F8.
The Test Function Module: Initial Screen window is displayed.
Description of the illustration iway_sapu_testfunctionmod.gif
6. Enter data into the SAP GUI and click Execute.
The function name and input data are transferred through RFC to create an
XML document on the Oracle Application Server with the parameters input in
SAPGUI.
Application Link Embedding Configuration for the Event Adapter
The SAP event adapter receives IDocs (Intermediate Documents) from SAP. To
configure an SAP system to send IDocs to the SAP event adapter, use the ALE
(Application Link Embedding) configuration to:
1. Register your program ID in SAPGUI.
2. Define a port.
3. Create a logical system.
4. Create a partner profile.
5. Create a distribution model for the partner and message type.
6. Test the SAP event adapter.
Defining a Port
A port identifies where to send messages. This port can be used only if an RFC
destination was created previously.
Defining a Port
To define a port:
1. In the ALE configuration, choose Tools, Business Communications, IDocs
Basis, IDoc, and then Port Definition.
You can also run the WE21 transaction.
The Creating a tRFC port window is displayed.
Description of the illustration iway_sapu_defineport.gif
2. In the left pane under Ports, select Transactional RFC and click Create.
3. Select Generate port name.
The system generates the port name.
4. Enter the IDoc version you want to send through this port.
5. Click the destination you created, for example, ORACLETDS.
6. Save the session, making note of the system-generated RFC port.
Creating a Logical System
One type of partner is a logical system. A logical system manages one or more RFC
destinations.
Creating a Logical System
To create a logical system called ORACLETDS:
1. In the ALE configuration, enter the area menu selection SALE transaction.
2. Select SAP Reference IMG.
3. Expand the following nodes: Basis Components, Application Link
Enabling (ALE), Sending and Receiving Systems, Logical Systems,
and Define Logical System.
4. Click the check mark beside Define Logical System.
The Change View "Logical Systems": Overview window displays a list of
logical systems and their names.
Description of the illustration iway_sapu_iwaylog.gif
5. Click New entries.
The New Entries: Overview of Added Entries window is displayed with
[Link] and Name columns for new log system.
Description of the illustration iway_sapu_newentries.gif
6. Type an entry for Log System, for example, ORACLETDS.
7. In the Name column, enter a name (description) for the partner profile.
8. Click Save to save the session.
Creating a Partner Profile
A partner profile is a definition of parameters for the electronic interchange of data
with a trading partner using the IDoc [Link] communicate with a partner using
the IDoc interface, you must create a partner profile.
Creating a Partner Profile
To create a partner profile:
1. In SAP GUI, choose Tools, Business Communication, IDoc Basis, and
Partner profile.
You can also run the WE21 transaction.
The Partner profiles: Outbound parameters window is displayed and shows
fields for specifying details for the partner profile.
Description of the illustration iway_sapu_partnerprofile.gif
Perform the following steps:
a. Select Partner type LS (Logical system).
b. Press F5 (Create).
2. For Type, enter USER.
3. For Agent, enter the current user ID, or you may select another agent type.
4. Under the outbound parameter table control, select Create outbound
parameter.
Partner type is LS, and the Message type is DEBMAS, which is the IDoc
document type.
5. Leave [Link] blank.
6. Click the Outbound options tab.
Provide the following information:
a. Depending on your performance requirements, click Transfer IDoc
Immed or Collect IDocs.
b. For the IDoc, enter a message type, for example, DEBMAS.
c. Enter a receiver port, for example, A000000036.
7. Click Save to save the session.
The Partner profiles summary window is displayed. It contains information for
the logical system that you created.
Description of the illustration iway_sapu_savedsession1.gif
Collected IDocs
When using collected IDocs on any platform during inbound processing (service
mode), if the DOCNUM field does not have a unique document number for each
IDoc, the system creates an IDoc for each header record in the collected IDoc file
and duplicates the data for each IDoc.
Make sure the DOCNUM field is included in the EDI_DC40 structure and that each
IDoc has a unique sequence number within the collected IDoc file.
Creating a Distribution Model for the Partner and Message Type
You must create a distribution model for the partner and message type you
designated.
Creating a Distribution Model
To create a distribution model called ORAMOD:
1. In SAP GUI, choose Tools, AcceleratedSAP, Customizing, and then
Project Management.
You can also run the BD64 transaction.
The Display Distribution Model window is displayed.
2. Select Create model view.
If required, switch the processing mode to edit within Distribution
Model/Switch Processing Mode.
3. Enter a short text string and a technical name for your new model view.
4. Click Save.
The Distribution Model Changed window is displayed, showing a tree
structure of the distribution model.
Description of the illustration iway_sapu_distributemodel.gif
Perform the following steps:
a. In the Distribution Model tree, select a new model view.
b. On the right, select Add message type.
The Add Message Type box is displayed. It contains fields for specifying the
sender and receiver of the message, as well as the message type.
Description of the illustration iway_sapu_addmessagetype.gif
Provide the following information:
c. In the Sender field, provide the sender that points to the SAP system,
which sends the IDoc, for example, I46_CLI800.
In this case, the sender is an SAP 4.6B system.
d. In the Receiver field, provide the logical system, for example,
ORACLETDS.
e. In the Message type field, provide the type of IDoc, for example,
DEBMAS.
5. Click the check mark icon.
6. Click Save.
The Change Distribution Model window displays the new model view to use to
send message type, DEBMAS, from the I46_CLI800 SAP system to the
ORACLETDS logical system.
Description of the illustration iway_sapu_changedistmodel.gif
You are now ready to test the connection to the logical system.
Testing the SAP ALE Configuration
In the SAP Server, the BD12 transaction enables you to send IDocs to any logical
system, for example, to an event adapter.
Testing the SAP ALE Configuration
To test the SAP Application Link Embedding (ALE) configuration:
1. In the Send Customers window, enter the IDoc message type, for example,
DEBMAS in the Output type field.
Description of the illustration iway_sapu_sendcustomers.gif
2. In the Logical system field, enter the logical system, for example,
ORACLETDS.
3. Click Run.
The SAP event adapter receives the IDoc in XML format. No response is
expected from the event adapter.
A confirmation window is displayed.
Description of the illustration iway_sapu_testcomplete.gif