MuleSoft London Community October 2017 - Hybrid and SAP Integration
Sap interface overview
1. SAP Interface Overview
Introduction
A number actions have been provided for the SAP interface to provide for SAP transaction
management that may span multiple RFC or BAPI method calls, as well as BAPIs that require a
commit statement. Full support is provided for start/commit/rollback of these function calls.
The “cookie” parameter created by the SAP BC Start Session action must be linked to the
corresponding input parameter on any SAP BC Connector (BC) calls and to the commit and
rollback actions to enable this functionality. A summary of the SAP Interface actions is found
below.
Action Description
This action is used to reference a particular BAPI, IDoc, or RFC
SAP Interface Repository
XML interface structure
SAP Business Connector This is the action that you use to execute an interface call
If your specific interface(s) require commit or rollback capabilities,
SAP BC Start Session you must first use the Start Session block to acquire a cookie to be
used for each call within the "block."
This action is used to commit one or more interface calls. Note:
SAP BC Commit Some transactions can be committed directly from the SAP
Business Connector action. This is individual BAPI dependent.
This action allows you to roll back one or more interface calls
SAP BC Rollback
based on a start session action.
As of Release 4.7, the SAP Web Application Server can be used
for transaction execution. The SAP Web AS Action block allows
SAP Web AS Interface
for the browsing & selection of any remote-enabled function
module through the Web AS SOAP Interface.
Additionally, the SAP Interface Repository block has been provided to allow access to reference
documents for the wide range of RFC, IDoc, and BAPI messages and functions. These are
particularly useful with IDoc handling, and are also valuable when interfacing to intermediate
EAI software applications.
Common Property Definitions for all SAP BC Interface
Actions
A number of predefined global variables are installed in order to facilitate the SAP Actions.
They are provided to facilitate the population of the common parameters found in the following
table.
Property Name Data Type Description
2. This is the IP address or server name where the SAP
BCServer String
Business Connector (BC) is running
BCServerPort Integer This is the port number that BC is listening on
This is the server name in BC that represents the SAP
instance you wish to connect to (under
SAPServerAlias String
Adapters/SAP/SAP Servers in the BC administration
tool)
This is the logical system named defined in the R/3
SAPLogicalSystemName String
instance that points to itself.
This is the logical system name defined in R/3 that
BCLogicalSystemName String
points this the BC that you are using as an interface.
BC user name with proper permissions to execute
BCUserName String
transactions to SAP
BCPassword String Password associated with above BC user name
Amount of time to wait in seconds before ending the
Response Timeout Integer
request to the BC server
SAP Action Usage
At a high level, there are two basic use cases for the SAP actions. The first is retrieving data
from R/3, such as a list of production orders for a plant. The second is issuing data through a
transactional interface into R/3, such as recording material consumption against a specific
production order.
When retrieving data through the Business Connector, you need to perform two primary tasks.
The first is to configure the connection information to point to the correct BC server, and the
second is to retrieve the correct interface document and populate it. The first task is
accomplished with the Interface Repository action. Using this block, you pick the specific
interface you wish to call. You can then link the specific values for the transaction into the
appropriate XML elements/attributes for execution. Then you can link that document into the
SAP BC action block as the request document. The SAP BC action is the block that needs the
correct connection information. Once that action executes, you can handle the response as
appropriate for your needs.
Inserting data into R/3 through the SAP BC transactional interfaces can be slightly more
complex. In addition to the two tasks, and two actions, described above, some interfaces require
a Commit in order for the data to be made available in R/3. There is more than one way to
perform a Commit. The SAP BC action has a check box available on the configuration dialog
labeled "Auto Commit This Transaction?" - checking this to true causes the action to perform a
commit after the interface call. This typically works well when there is a single interface call,
with a single XML document, sent to the BC. When you have more complex transactional
interfaces, such as multiple documents, you may want to use the BC Start Session, BC Commit,
and BC Rollback actions.
3. In the more complex scenario, you would typically use the BC Start Session action in a sequence
before any SAP Business Connector interface actions are called. The action has an output of a
"cookie" received from the BC server. This cookie can then be linked via the Link Dialog Editor
to all subsequent intra-transaction BC Interface actions that need to be committed or rolled back
as a single lot. Depending on returns and/or errors, you would then use the Commit to Rollback
action to close out the R/3 communication, also linking in the original cookie. See the individual
action user guides for more information.
The SAP Web AS Interface is similar to the BC Interface. It also uses XML documents for
sending and receiving messages from SAP. The primary differences are the technology
infrastructure and the namespace browsing. The Web AS interface does not require the Business
Connector to be installed, but does require the SOAP interface of the SAP Web Application
Server (WAS) to be enabled. The Web AS interface allows namespace browsing of the local
SAP instance, including custom RFCs that are remote enabled, while the BC interface only
browses standard interfaces that have been published in the SAP Interface Repository. While
custom RFCs may be used with the BC interface, you need to generate a reference document and
load it into the transaction.
Methods Of Interface
Communications Interfaces provided for integrating SAP Systems and External Applications
Synchronous Description
Interface Methods
OLE Automation An ABAP program can call up an OLE Automation Server (such as Excel) on the desktop. The
ABAP OLE Automation Controller consists of a set of ABAP language elements that an ABAP
client program can use to drive an OLE Automation server on either Windows or Apple
Macintosh front-end. Special OLE functions contained in the SAPGUI are called via RFC.
SAPGUI represents the actual OLE client that calls the server program.
Communications interfaces provided for integrating External Applications and SAP Systems
Synchronous Description
4. Interface Methods
GUI Using the GUI interfaces to R/3 you can write a client program that accesses the data stream that
is communicated between the R/3 application server and its SAPGUI.
By using the GUI interfaces your external client program can provide an alternative interface to the
standard SAPGUI. This alternative interface can be either graphical or non-graphical (for example,
it can be voice driven or Web-based).
Programming using the GUI interfaces also allows your client program to monitor or record an end
user interaction with SAPGUI screens.
RFC External programs using RFC�s can either make or receive remote function calls to or from an
SAP system. Therefore, using RFC�s an external program can act as either the client or the
server to an SAP system. Conversely, the SAP system can take the role of either the client or the
server to the external application.
SAP Automation PROVIDES products for programming of RFC�s from languages such as C,
C++, Java, or COM-compliant languages, such as Visual Basic and applications such as Excel.
BAPI SAP Business Objects provide an object-oriented view of SAP data structures and functions. The
Business API (BAPI) is an interface that allows you to call the methods of these SAP Business
Objects.
A-Synchronous Description
Interface Methods
IDoc Intermediate Document (IDoc) interface is an SAP standard format for exchanging data between
SAP systems and between an SAP system and an external application. An IDoc document defines
a SAP standard data container (template) for sending or receiving data from an SAP system.
External programs can use the IDoc method of communicating data to and from an SAP system
Batch Input Allow you to feed data into R/3 using R/3 transactions.
6. SAP Tools For Interface Development
Tools Description
RFC API The RFC API is a C API (Application Programming Interface) for programming applications that use
the RFC interface, that is, it allows external programs written in C to call RFC function modules in an
SAP system. Using the RFC API you can develop client/server applications that act as both the client
and the server to the SAP system.
SAP DCOM The SAP DCOM Connector uses services from Microsoft MTS to provide a DCOM interface for
Connector working with SAP RFC function modules and BAPI�s. It provides a C++ template library for creating
COM objects from the SAP business objects. Using the DCOM Connector allows you to take
advantage of the distributed computing, resource sharing and other benefits of using MTS when
integrating your application with a SAP system.
SAP Automation SAP automation is a suite of ActiveX components, class libraries, and other tools to help you develop
applications that integrate with a SAP system from outside.
The various SAP Automation tools allow you to take advantage of the various interface types as
mentioned above (GUI, RFC, BAPI, IDoc, Batch input). The different tools offer a variety of
functionality with some overlap of functionality for the different programming languages.
Several of the SAP Automation tools allow you to program using the GUI interfaces to an SAP
system.
Other SAP Automation tools expand the functionality of the RFC API to support programming with
RFC function modules, business objects methods (BAPI�s), IDoc interface, or batch input.
Some of the SAP Automation tools that are based on the RFC API are also based on the SAP
DCOM Connector to support distributed programming when using business objects methods
(BAPI�s) and RFC function modules.
SAP Automation GUI Interfaces
Tool Type Function Language
GUI Library C API Like C
"screen-
scraping"
programs,
the GUI
Library
takes the
contents of
R/3
7. SAPGUI
screens and
makes them
accessible
through
standard
data
structures
and function
calls.
Allows you
to write
programs
that provide
an
alternative
user
interface to
the
standard
R/3
SAPGUI.
This
alternative
interface
can be GUI
or non-GUI.
Also allows
you to write
programs
that record
the
interaction
between an
end user
and
SAPGUI
screens.
GUI ActiveX Exposes a Any COM-compliant application
Component Server subset of
(both in the GUI
process Library to
8. and out of COM-
process) compliant
programs
and
applications.
Simpler to
use but also
less flexible
than using
the GUI
Library
directly.
GUI Code Stand- A code Produces VB, HAHTtalk Basic, or Delphi�s Object Pascal language
Generator alone generator
code.
executable for the GUI
Component.
Can act as
a macro
recorder
allowing you
to generate
Visual Basic
and other
code as you
or an end-
user work
with the
SAP
system.
Also lets
you capture
SAP
screens as
Visual Basic
forms.
SAP Automation RFC and BAPI Interfaces
Underlying Library
Tool Type Function Language
RFC API C API A set of C routines that allows you to write external C
9. applications that communicate with an SAP system
through remote function calls (RFC�s).
The external application can act as either a client or a
server to the SAP system.
SAP Automation RFC-based Class Libraries
Tool Type Function Language
RFC C++ Class Class library Provides a framework for the RFC API. C++
Library
Makes it easier to use RFC�s in C++ programs by
providing pre-built functions for some common tasks,
such as establishing a connection to R/3.
Java RFC Class Class library Provides an object oriented Java view over the RFC Java
Library API.
Makes it easier to use RFC�s in Java programs by
providing pre-built functions for some common tasks,
such as establishing a connection to R/3, or
performing data type conversion.
IDoc C++ Class Class library Provides a framework for processing inbound and C++
Library outbound IDOC�s.
Makes it easier to use IDoc technology in C++
programs by providing pre-built functions for some
common tasks, such as creating and appending IDoc
segments, accessing segments and fields by names,
and working with fields.
ActiveX Controls and Components
Tool Type Function Language
Logon Control ActiveX Control Allows you to create a connection object with which Any COM-
(OCX) you can establish a connection to R/3. compliant
application
Function Control COM Server Provides COM objects for handling RFC functions and Any COM-
their parameters. This allows you to create external compliant
applications that call RFC function modules in an SAP application
system.
Table Control COM Server Allows you to create a Table object representing a Any COM-
table parameter of an RFC function. compliant
application
10. Works with the Function control to manage tables
attached to Function objects.
Transaction COM Server Exposes R/3 batch input capability to COM-compliant Any COM-
Component programs and applications. compliant
application
Allows an external program to send input field values
to an R/3 screen (output field values are not returned).
Makes using batch input easier by eliminating the
need to populate the fields of the BDC table, which is
a prerequisite to using the standard R/3 batch input
method.
BAPI ActiveX Control ActiveX Control Allows you to develop external client/server Any COM-
(OCX) applications (with R/3 as a server) that access compliant
business functions in the SAP system by calling application
BAPI�s (Business APIs) through OLE Automation.
Achieves this by allowing you to create (on the client)
local instances of business objects, which act as proxy
objects for the business object in the SAP system.
DCOM Connector-based Components and Tools
Tool Type Function Language
IDoc Connector for COM Server Provides an XML interface for working with IDoc Any
XML documents. COM/DCOM-
compliant
The IDoc Connector for XML component accepts your application
XML documents and sends them as inbound
IDOC�s to a specified R/3 system. Conversely, it can
receive outbound IDOC�s and it translate them into
XML documents for your application to use.
DCOM Connector COM Server Helps programs that use the SAP DCOM Connector Any
Logon Component handle the connection parameters of the COM objects COM/DCOM-
created by the SAP DCOM Connector. compliant
application
The DCOM Connector Logon Component provides a
logon dialog with which you can get the necessary
connection parameters from an end user. It also
allows the end user to create and maintain destination
definitions.
The DCOM Connector Logon Component also allows
11. you to easily copy connection parameters into a
DCOM Connector COM object.
Repository Services COM Server Provides read access to the metadata of business Any
objects, RFC function modules, tables and structures COM/DCOM-
in an R/3 system to COM-compliant programs and compliant
applications. application
Also allows you to save a copy of the metadata in a
local database. Using a local database allows you to
access the same metadata faster and without
connecting to R/3.
BAPI Gateway COM Server Allows you to dynamically call BAPI�s and RFC�s Any
COM/DCOM-
through the DCOM Connector, that is, it allows you to
compliant
determine at run time which BAPI�s or RFC�s you application
call.
Eliminates the need to use the SAP DCOM Connector
wizard for creating a DCOM Connector proxy
component.
Repository Browser COM Server A control that can be hosted by any ActiveX container. Any
It consists of a window with two panes for browsing COM/DCOM-
SAP BAPI and RFC metadata information. compliant
application
Allows online calling of RFC functions from within the
control.
Also exposes several methods to enable the container
application to control and automate metadata
browsing.
Allow you to export metadata information to an Excel
spreadsheet.
SAP Assistant Stand-alone A tool for browsing (viewing and searching) the You can use the
executable metadata of SAP RFC functions and SAP business code generated
objects and their methods (BAPI�s). Uses the SAP with the BAPI
Wizard tool for
Browser Control (see above).
Java or C++
programming.
Allow you to call RFC functions directly online.
The SAP
Also allow you to generate either Java or C++ classes
Assistant window
for working with SAP business objects and their itself is not
BAPI�s. programmable
12. This page's content provide by Jude Lobo.
Evolutionary Consulting, Inc.
We have been in the SAP, Internet, E-commerce and Network Management Consulting industry since
1995. We will only provide you with quality, knowledgeable, certified and experienced consultants.
Our success depends on your success and your reference is invaluable to our future business. Our
mission: To provide excellent quality consulting, to accurately provide solutions, to provide timely
service. We can service you in the following:
SAP Consulting in various modules
RF Barcoding SAPConsole
Wireless Local Area Networks (WLANs) Wi-Fi hardware and software implementations with
Wireless Security
Web Development and E-Commerce