Components of SAP Communication Technology
Basic Technical Concepts
Example Applications: Synchronous Communication
Application Examples: Asynchronous Communication
Application Examples: Communication with Non-ABAP Technologies
Classic SAP Technologies (ABAP)
RFC
RFC Basics
RFC Interface
RFC Communication Scenarios
RFC Destinations
RFC System Fields
RFC Authorizations
Code Pages
Maintaining Trust Relationships between SAP Systems
RFC Administration
Configuration of System Resources for RFC
RFC Resources on the Application Server
Monitoring RFC Resources on the Application Server
Configuring the SAP System for Parallel RFCs
Dynamically Configuring RFC Quotas
rdisp/rfc_check
rdisp/rfc_use_quotas
rdisp/rfc_max_queue
rdisp/rfc_max_login
rdisp/tm_max_no
rdisp/rfc_max_own_login
rdisp/rfc_min_wait_dia_wp
rdisp/rfc_max_own_used_wp
rdisp/rfc_max_comm_entries
rdisp/max_comm_entries
rdisp/max_arq
rdisp/rfc_max_wait_time
Calculating Resources for Asynchronous and Transactional RFC
Local Check
Detailed Check
Triggering the RFC Client Resource Check
Problems with RFC Resource Assignment
Limit Values for Resource Allocation for Asynchronous RFC
Configuring Resources for bgRFC
Checking RFC Authorizations
Maintaining Remote Destinations
Displaying, Maintaining, and Testing Destinations
Connection Types
Entering Destination Parameters
Technical Settings
Logon and Security
Settings for Code Pages
Preconfigured Code Pages
Special Options
Maintaining Group Destinations
Maintaining Trust Relationships between SAP Systems
Analyzing RFC Statistical Data
Monitoring tRFC
Writing RFC Programs in ABAP
Calling RFC Function Modules in ABAP
Introduction
RFC Calls
Parameter Handling in Remote Calls
Calling Remote Functions Locally
Calling Remote Functions Back
RFC Call Restrictions
Characteristics Using Unicode
RFC Exceptions
Class-Based RFC Exceptions
Class-Based RFC Exceptions
Semantic Considerations for Classic Exceptions
Class-Based Exceptions in Asynchronous RFC
Classic RFC Exceptions
Usnig Pre-Defined Exceptions for RFC
Exceptions That Cannot Be Handled
RFC Variants
Synchronous RFC (sRFC)
Asynchronous RFC (aRFC)
Call Properties of Asynchronous RFCs
Receiving Results from an Asynchronous RFC
Keeping the Remote Context
Parallel Processing with Asynchronous RFC
CALL FUNCTION - STARTING NEW TASK
RECEIVE
WAIT UNTIL
aRFC Programming Example
Transactional RFC (tRFC)
CALL FUNCTION - IN BACKGROUND TASK
Queued RFC (qRFC)
Writing Remote Function Modules in ABAP
Steps for Implementing Remote Function Modules
Programming Tips
Debugging Remote Function Modules
Displaying, Maintaining, and Testing Destinations
Background Communication
Queued Remote Function Call (qRFC)
qRFC Communication Model
qRFC Outbound Queue
qRFC Inbound Queue
qRFC with Outbound and Inbound Queue Process Flow
qRFC Administration
Authorizations for Administering qRFC
Outbound Queue Administration
The QOUT Scheduler
Configuring System Resources for QOUT Scheduler
Registering/Deregistering a Destination
Optimize performance
Monitoring the Outbound Queue
Restarting Blocked Queues
Testing the qRFC Connection
Inbound Queue Administration
QIN Scheduler
Configuring System Resources for QIN Scheduler
Inbound Processing Details
Executing qRFC Calls Locally
Registering the Inbound Queue
Monitoring the Inbound Queue
Checking Queue Status
Specifying Logon Data for RFC Destinations
Display Management Data
qRFC Programming
qRFC Design
qRFC with Outbound Queue
Transferring Queue Names
qRFC with Inbound Queue
Transferring Queue Names to the Inbound Queue
qRFC Variants
Update Task Behavior
Mixed Mode
NOSEND Scenario
Using qRFC with the RFC Library
qRFC API
qRFC API for the Outbound Queue
qRFC API for the Inbound Queue
qRFC API: Example Program
bgRFC (Background Remote Function Call)
bgRFC Architecture
bgRFC Configuration
Creating a Supervisor Destination
Creating Inbound Destinations
bgRFC Scheduler: System-Specific Settings
bgRFC Scheduler: Application Server-Specific Settings
bgRFC Scheduler: Destination-Specific Settings
bgRFC Administration
bgRFC Authorizations
Authorization Object S_BGRFC
Debug Authorizations for bgRFC
Troubleshooting and Monitoring
bgRFC Monitor
Debugging bgRFC Units
Debugging Using the bgRFC Monitor
Debugging with External Breakpoints
Migration
Outbound Scenarios
Inbound Scenarios
bgRFC Programming
API of bgRFC Type t and bgRFC Type q
Calling a Function Module
Creating a Destination Object and Unit Objects
Manipulating a Background Unit
Using Queues to Lock and Unlock Units
RFC Client-Side Runtime Control
RFC Server-Side Runtime Control
New Data Types
Exception Handling
Examples for Inbound and Outbound Processing
Locking a bgRFC Type t Unit
Locking a Queue
Filling Multiple Units in Parallel
Local Data Queue (LDQ)
LDQ: Administration and Monitoring
LDQ Monitor
LDQ Programming
LDQ: Overview and Architecture
Class Description
Classes in LDQ API (Write)
Classes in the LDQ API - "Read"
Examples for LDQ API "Write" and "Read"
LDQ API "Write"
LDQ API "Read"
"Read" with Initial Confirm and Forecast
Repeated Read-and-Confirm Cycles
RFC API: Classical & NetWeaver
Classical RFC SDK
Features in Detail
Contents of the classical RFC SDK
Compiling and Linking RFC Programs
The SAPRFC.INI File
Introduction
Examples
Possible Parameters
Error Handling
Debugging
Error Handling in ABAP
Error Handling in RFC Server Programs
More Information in Error Cases
Call-Back from an ABAP Function Module
Call-Back from an RFC Server Program
tRFC between SAP and External Systems
Transactional RFC Client Programs
Transactional RFC Server Programs
RFC and SAProuter
Introduction to SAProuter
RFC Client Program and SAProuter
Starting an RFC Server Program Via SAProuter
Using the Registering Feature
Program Start by Application Server
Program Start by SAP Gateway
Program Start by SAPGUI
RFC Between External Programs
Using A Local sideinfo File
Using the saprfc.ini File
Platform-Specific Features of the RFC API
OS/2
SAP-Based UNIX Platforms
Windows 3.x
Windows NT/95
Programming with the RFC API
Technical Description
Supported Data and Transfer
Basic Functionality
Components of the RFC API
RFC Client Programs
Introduction to RFC Client Programs
Establishing an RFC Connection to R/2 Systems
Programming Example of Working With Local sideinfo File
Programming Example of Working Without Local sideinfo File
Programming Example of Working With saprfc.ini File
Establishing an RFC Connection to SAP Systems
Programming Example of Working With Local sideinfo file
Programming Example of Working With saprfc.ini File
Programming Example of Working Without Local sideinfo File
Load Balancing
Programming Examples
RFC Using the ABAP Debugger
Remote Function Calls Using SAPGUI
RFC Server Programs
Introduction to RFC Server Programs
Registering Server Programs with the SAP Gateway
Programming Examples
RFC Server Program Working With RfcDispatch
RFC Server Program Working With RfcDispatch and RfcListen
RFC Server Programs Sending/Receiving Internal Tables
Establishing an RFC Connection from an R/2 System
Establishing an RFC Connection from an SAP System
Passing Parameters
Writing an RFC Function in C
Using Multiple-Client Server Programs
Classical RFC SDK Reference
Classical RFC API Data Types
Function Reference
NetWeaver RFC SDK
Introduction
Architecture
Data Processing and Transfer
Security Issues
Contents of the NW RFC SDK
Administration
Supported Platforms
The SAPNWRFC.INI File
Examples
Parameter Overview
RFC API and SAProuter
RFC Client Program and SAProuter
Starting an RFC Server Program Via SAProuter
Using the Registering Feature
Program Start by Application Server
Program Start by SAP Gateway
Programming with the RFC API
Working with the NW RFC SDK Files
Getting Connected
Passing Parameters
RFC Client Programs
Calling a Function in SAP Systems
Starting a SAP GUI
Passing Structures and Tables
Executing a Call-Back from an ABAP Function Module
Load Balancing
RFC Server Programs
Establishing an RFC Connection from an SAP System
Registering Server Programs on the SAP Gateway
RFC Server Programming Example
Executing a Call-Back from an RFC Server Program
tRFC between SAP and external Systems
Transactional RFC Client Programs
Transactional RFC Server Programs
Error Handling
Debugging
Error Handling in ABAP
Error Handling in RFC Server Programs
NetWeaver RFC SDK Reference
NetWeaver RFC API Handles, Structures, Enumerations
RFC API Handles
handle RFC_HANDLE
handle RFC_TYPE_DESC_HANDLE
handle RFC_STRUCTURE_HANDLE
handle RFC_FUNCTION_DESC_HANDLE
handle RFC_FUNCTION_HANDLE
handle RFC_TABLE_HANDLE
handle RFC_TRANSACTION_HANDLE
RFC API Enumerations
enum RFCTYPE
enum RFC_DIRECTION
enum RFC_RC
RFC API Structures
struct RFC_ERROR_INFO
struct RFC_CONNECTION_PARAMETER
struct RFC_PARAMETER_DESC
struct RFC_FUNCTION_DESC
struct RFC_FIELD_DESC
struct RFC_STRUCTURE_DESC
struct RFC_ATTRIBUTES
NetWeaver RFC API Functions
Administrative Functions
RfcInit
RfcSetTrace
Connection Handling
RfcCloseConnection
RfcGetConnectionAttributes
RFC Client Functions
RfcOpenConnection
RfcOpenClient
RfcInvoke
RFC Server Functions
RfcStartServer
RfcRegisterServer
RfcListenAndDispatch
RfcInstallServerFunction
RfcInstallGenericServerFunction
Transactional Functions
RfcGetTransactionID
RfcCreateTransaction
RfcInvokeInTransaction
RfcSubmitTransaction
RfcConfirmTransaction
RfcDestroyTransaction
RfcInstallTransactionHandlers
Function-Handling Functions
RfcInvoke
RfcSetFunctionDesc
RfcGetFunctionDescHandle
RfcCreateFunction
RfcDestroyFunction
RfcGetParameterValue
RfcSetParameterValue
RfcSetParameterActive
RfcGetFieldValue
RfcSetFieldValue
Table-Handling Functions
RfcCreateTable
RfcCloneTable
RfcDestroyTable
RfcAddNewRow
RfcInsertNewRow
RfcAddRow
RfcAppendRow
RfcAppendNewRow
RfcInsertRow
RfcDeleteRow
RfcDeleteCurrentRow
RfcDeleteAllRows
RfcMoveToFirstRow
RfcMoveToLastRow
RfcMoveToNextRow
RfcMoveTo
RfcMoveToPreviousRow
RfcGetCurrentRow
RfcGetRowCount
RfcGetRowType
Structure-Handling Functions
RfcSetStructureDesc
RfcGetStructureDescHandle
RfcGetStructureDes
RfcCreateStructure
RfcCloneStructure
RfcDestroyStructure
Field-Handling Functions
RfcGetChars
RfcGetNum
RfcGetDate
RfcGetTime
RfcGetString
RfcGetBytes
RfcGetXString
RfcGetInt
RfcGetInt1
RfcGetInt2
RfcGetFloat
RfcGetDecF16
RfcGetDecF34
RfcGetStructure
RfcGetTable
RfcGetStringLength
RfcSetChars
RfcSetNum
RfcSetDate
RfcSetTime
RfcSetString
RfcSetBytes
RfcSetXString
RfcSetInt
RfcSetInt1
RfcSetInt2
RfcSetFloat
RfcSetDecF16
RfcSetDecF34
RfcSetStructure
RfcSetTable
RfcDescribeFunction
RfcDescribeTable
Metadata and Repository Functions
RfcGetFunctionDesc
RfcGetCachedFunctionDesc
RfcAddFunctionDesc
RfcXXXTypeDesc()
RfcCreateTypeDesc
RfcAddTypeField
RfcSetTypeLength
RfcGetTypeName
RfcGetFieldCount
RfcGetFieldDescByIndex
RfcGetFieldDescByName
RfcGetTypeLength
RfcDestroyTypeDesc
RfcCreateFunctionDesc
RfcAddParameter
RfcEnableBASXML
RfcGetFunctionName
RfcGetParameterCount
RfcGetParameterDescByIndex
RfcGetParameterDescByName
RfcIsBASXMLSupported
RfcDestroyFunctionDesc
RfcGetRcAsString
RfcGetTypeAsString
RfcGetDirectionAsString
IDoc Interface/ALE
BAPI
General Introduction to BAPIs (CA-BFA)
BAPI User Guide CA-BFA)
BAPI Programming Guide (CA-BFA)
Communication Between ABAP and Non-ABAP Technologies
SAP Business Connector
SAP BC Functions
SAP BC Architecture
SAP BC Routing
SAP Java Connector
SAP JCo Funktionen
SAP JCo Application Scenarios
SAP JCo Scenario: Java/ABAP Communication in the Application Ser
SAP JCo and the VM Container
Managing Work Processes in the VM Container
In-Process and Out-of-Process Communication
Logging and Tracing for Using SAP JCo with VMC
Profile Parameters for Logging and Tracing
SAP JCo Scenario: SAP BC
SAP JCo Scenario: Online Invoice
SAP JCo Configuration
SAP JCo Standalone Version
SAP JCo Architecture (Standalone Version)
SAP JCo Installation
SAP JCo Migration 2.x-3.0 (Standalone)
General Coding Changes
Replacing JCo Classes
Adapting Connection Management
Stateful Connections
Exception Handling
Changes to the Metadata Model
Server Adaptations
SAP JCo Client Programming
Client Programming SAP JCo 2.x
Establishing a Connection to an SAP Server
Direct Connections
Open Connection
Calling a Function and Closing a Connection
Result of the Function Call
Example Program Connect1
Connection Pools
Creating a Connection Pool
Utility Class OrderedProperties
Acquiring and Releasing a Connection
Example Program Connect2
The SAP JCo Repository
Creating a Repository
Creating JCO.Function Objects
Executing Functions
Mapping of Java and ABAP Data Types
Type-Specific Getter Methods
Access to Tables
Setting Scalar Import Parameters
Example Program BAPI1
Table Manipulation
Example Program BAPI2
The Class JCO.Field
Deactivating Parameters
Exception Handling
Synchronization
Debugging
Client Programming SAP JCo 3.0
Establishing a Connection to an SAP Server
Defining Destinations
Establishing a Connection
Executing Stateful Calls
Executing Functions
Starting SAP GUI
Access to Tables
Setting Scalar Import Parameters
Using Multi Threading
Example Program JCo Client
The SAP JCo Repository
Setting up a Repository
Creating JCo Function Objects
Mapping of ABAP and Java Data Types
Type-Specific Getter Methods
Table Manipulation
Interface JCoField
Deactivating Parameters
Exception Handling
SAP JCo Server Programming
Server Programming SAP JCo 2.x
Inbound RFC Connection (from the SAP System)
Java Program for Establishing a Server Connection
Server Connection to a Unicode Backend System
Exception Listener
Server State Change Listener
Processing an ABAP Call
tRFC Call
Server Programming SAP JCo 3.0
Inbound RFC Connection (from the SAP Server)
Java Program for Creating a Server Connection
Exception Listener
Monitoring Server Connections
Processing an ABAP Call
Processing a tRFC/bgRFC Call
Example Program JCo Server
StatefulCalls
SAP Java Resource Adapter
SAP JRA for SAP Java Applications
SAP JRA Architecture
SAP JRA Configuration
SAP JRA Configuration: Procedure
Parameters for SAP JRA Configuration
Managing Calls from Multiple SAP Systems
SAP JRA Development Guidelines
SAP JRA Configuration on the Application Server Java
Client Programming Model
Transactions for the Client Programming Model
LocalTransaction
UserTransaction
Container Managed Transaction
Security for the Client Programming Model
BasicPassword
Kerbv5 (SSO)
DefaultAuthentication
Application Managed Authentication
Secure Network Connection (SNC)
Server Programming Model
Callback
Stateful Communication
Security for the Server Programming Model
SSO
SNC
Handling Records
Exception Handling
Facades and Compilation
IDoc Support for Java Applications
Example Program IDoc Client
Example Program IDoc Server
Internet Communication Framework
Architecture
Server Architecture
Client Architecture
Classes and Interfaces for the Server Role
IF_HTTP_SERVER
Attributes
Constants
Methods
IF_HTTP_RESPONSE and IF_HTTP_REQUEST
Methods for IF_HTTP_RESPONSE and IF_HTTP_REQUEST
IF_HTTP_ENTITY
Attributes for IF_HTTP_ENTITY
IF_HTTP_EXTENSION
Attributes
Constants for Describing the Control Flow
Constants for Describing Lifetime Control
Methods
IF_HTTP_UTILITY
Methods for Interface IF_HTTP_UTILITY
Classes and Interfaces for the Client Role
Interface IF_HTTP_CLIENT
Attributes
Constants
Methods
ICF Administration
Server Function Administration
Authorizations
Authorization Object S_ICF
Authorization Object S_ICF_ADM
Authorization Object S_ICFREC
Restricting Authorizations for Transaction SICF
Determining Authorizations in the Target System
Client Function Administration
Establishing a Connection Using a Destination (SM59)
Parallel Requests
Configuring a Proxy
Error Handling and Monitoring
Fehleranalyse: Vorgehen
External Debugging
External Debugging under Load Distribution
Traces
Parsing URLs
ICF Recorder
Activate Recording
Displaying and Processing Entries
Authorization Object S_ICFREC
Maintaining the ICF Profile Parameters
Managing Error Information
Performance Measurements
Troubleshooting Using Central Monitoring Functions
Statistical Data for RFC and ICF
Development
Server-Side Development
HTTP Request Handler
Developing a HTTP Request Handler
Creating an HTTP Request Handler
Accessing Header Fields
List of the Pseudo Header Fields
Accessing Form Fields
Accessing Cookies
Accessing HTTP Body Data
Accessing HTTP Multipart Data
Stateless/Stateful Communication
Terminating a Session
Code Page in ICF
Compression Techniques
Creating and Configuring ICF Services
Create Service
Maintaining Logon Procedures
Logon Checks: Overview
Standard Logon Order
Alternative Logon Order
Logon Using Service Data
Logon with SSL Certificate
Logon Using Basic Authentication.
Logon via SAML
Specifying the Client
Determining the Logon Language
Defining Service Data
HTTP Load Distribution
Defining Security Requirements
Setting Up Error Pages
Format and Parameters of the Error Document
Inserting an HTTP Request Handler
Activating and Deactivating ICF Services
Creating Virtual Hosts
Virtual Hosts: Application Example
Internal Aliases
External Aliases
Testing the HTTP Request Handler
Transporting ICF Services
Client-Side Development
Example program: Executing an HTTP Request
Parallel Processing Requests
Redirecting Requests
SOAP Framework
Web Service Technologies in the Application Server
Beispiel: SOAP Message
Example: WSDL File