Components of SAP Communication Technology
Technical Basis
Application Examples: Synchronous Communication
Application Examples: Asynchronous Communication
Application Examples: Communication with Non-ABAP Technologies
Classical SAP Technologies (ABAP)
RFC
RFC Basics
The RFC Interface
RFC Communication Scenarios
RFC Destinations
RFC System Fields
RFC Authorizations
Maintaining Trust Relationships between SAP Systems
Technical Requirements
External Systems
SAP Systems
Code Pages
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
Parameters in Remote Calls
Calling Remote Functions Locally
Calling Remote Functions Back
RFC Call Restrictions
Things to Look Out for in Unicode
RFC Exceptions
Using 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 Remote Contexts
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
Background Communication
Queued Remote Function Call (qRFC)
qRFC Communication Model
qRFC Outbound Queue
qRFC Inbound Queue
qRFC Administration
Logon/Security
SMQ1 and SMQ2
Executing a qRFC Example Program
Outbound Queue Administration
QOUT Scheduler
Registering/Deregistering a Queue
Menu Options in SMQS
Extension in the QOUT Scheduler (Transaction SMQS)
When is a QOUT Scheduler Activated?
Restarting Blocked Queues
Configuring the Resources of the QOUT Scheduler
QOUT Scheduler Administration: Improving tRFC/qRFC Performance
Problems with "Crashing" and "Overloading"
Automatically Restarting Crashed qRFC LUWs
Exception Handling in qRFC
Checking the Queue Status
User Switch in the Inbound and Outbound Schedulers
LUW in Update Records in SM58/SMQ1
Setting RFC Bit Options in SM59
Inbound Queue Administration
The QIN Scheduler
Monitor for the QIN Scheduler (SMQR)
Queue Status in SMQ2 and Table ARFCRSTATE
Displaying the Last Changed By User in SMQR and SMQS
Authorizations for Administering qRFC
Monitoring the Inbound Queue
Registering the Inbound Queue
Displaying all Registered and Deregistered Queues
Destinations NONE and SPACE
qRFC Programming
qRFC Design
qRFC Outbound Queue
qRFC with Inbound Queue
Function Builder and ABAP Editor
Registering/Deregistering a Queue
Outbound Queue Programming
qRFC Variants
Serialization Using the Queue Counter
Mixed Mode
Transferring Queue Names
Calling a Function Module in Module in Background Task
The User Context of a qRFC LUW
NOSEND Scenario
Behavior with Update Tasks
qRFC and Using the RFC Library
Inbound Queue Programming
Working with qRFC with Inbound Queue
Transferring Queue Names to an Inbound Queue
Serialization
Handling CPIC Errors
Registering a Queue
Deregistering a Queue
Displaying all Registered and Deregistered Queues
Configuring System Resources for QIN Scheduler
qRFC API
qRFC API for the Outbound Queue
qRFC API for the Inbound Queue
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
Troubleshooting and Monitoring
bgRFC Monitor
Debugging bgRFC Units
Debugging with 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 LDQ API (Read)
Examples of LDQ API "Write" and "Read"
LDQ API "Write"
LDQ API "Read"
"Read" with Initial Confirm and Forecast
Repeated Read-and-Confirm Cycles
The RFC API
RFC with External Systems
RFC with External Systems
Technical Requirements
Contents of the classical RFC SDK
Compiling and Linking RFC Programs
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
Programming Example of Working Without Local sidei
Programming Example of Working With saprfc.ini Fil
Establishing an RFC Connection to SAP 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
Load Balancing
Programming Examples
Remote Function Calls Using SAPGUI
RFC Using the ABAP Debugger
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 Rf
RFC Server Programs Sending/Receiving Internal Tab
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
The SAPRFC.INI File
Introduction
Possible Parameters
Examples
Call-Back Feature with SAP and External Systems
Introduction
Call-Back from an ABAP Function Module
Call-Back from an RFC Server Program
Transactional RFCs and External Systems
Introduction
tRFC between SAP and External Systems
Transactional RFC Client Programs
Transactional RFC Server Programs
Function Interface: Summary
Administration
Calling and Accepting RFC Functions
RFC Calls for Manipulating Internal Tables
Transactional Remote Function Calls
Extended Remote Function Calls
Special Functions
ABAP Data Types
RFC_CHAR
RFC_HANDLE
RFC_FUNCTIONNAME
RFC_TID
RFC_NUM
RFC_INT
RFC_INT1
RFC_INT2
RFC_BYTE
RFC_BCD
RFC_DATE
RFC_TIME
RFC_FLOAT
Function Reference
Administration Function Reference
RfcAbort
RfcAccept
RfcClose
RfcConnArgv
RfcConnArgv3
RfcEnvironment
RfcConnect
RfcLastError
RfcOpen
RFC Client Function Reference
RfcCall
RfcCallReceive
RfcReceive
RFC Server Function Reference
RfcDispatch
RfcGetAttributes
RfcGetData
RfcGetName
RfcInstallFunction
RfcInstallStructure
RfcRaise
RfcRaiseTables
RfcSendData
RfcWinInstallFunction
Table-Handling Function Reference
ItAppLine
ItCpyLine
ItCreate
ITAB_H
ItDelete
ItDelLine
ItFill
ItFree
ItGetLine
ItGupLine
ItInsLine
ItLeng
ItPutLine
Transactional Function Reference
RfcCreateTransID
RfcIndirectCall
RfcInstallTransactionControl
RFC_ON_CHECK_TID
RFC_ON_COMMIT
RFC_ON_CONFIRM_TID
RFC_ON_ROLLBACK
RFC_ONCALL
Extended Function Reference
RfcAddExportParam
RfcAddImportParam
RfcAddTable
RfcAllocParamSpace
RfcCallExt
RfcCallReceiveExt
RfcOpenExt
RfcOpenExtV3
RfcFreeParamSpace
RfcGetDataExt
RfcReceiveExt
RfcSendDataExt
RfcInstallFunctionExt
Special Function Reference
RfcListen
RfcWaitForRequest
Structures and Enumerations
RFC_CONNOPT_CPIC
RFC_CONNOPT_R3ONLY
RFC_CONNOPT_VERSION_3
RFC_ERROR_INFO
RFC_ITMODE
RFC_MODE
RFC_OPTIONS
RFC_PARAMETER
RFC_RC
RFC_TABLE
RFC_ATTRIBUTES
Platform-Specific Features of the RFC API
OS/2
Windows 3.x
Windows NT/95
SAP-Based UNIX Platforms
Sample Programs
Error Handling
Debugging
Error Handling in ABAP
Error Handling in RFC Server Programs
More Information in Error Cases
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
IDoc Interface/ALE
BAPIs
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 Functions
SAP JCo Architecture (Standalone Version)
SAP JCo Application Scenarios
SAP JCo Scenario: Java/ABAP Communication in the SAP Application
SAP JCo and the VM Container
Administration of 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 Installation
SAP JCo Configuration
SAP JCo Client Programming
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 a JCO.Function Object
Executing a Function
Mapping of Java and ABAP Data Types
Type-Specific Getter Methods
Accessing Tables
Setting Scalar Import Parameters
Example Program Bapi1
Table Manipulation
Example Program Bapi2
The JCO.Field Class
Deactivating Parameters
Exception Handling
Synchronization
Debugging
SAP JCo Server Programming
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
Processing a tRFC Call
SAP Java Resource Adapter
SAP JRA for SAP Java Applications
IDoc Support for SAP Java Applications
SAP JRA Architecture
SAP JRA Configuration
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
Facades and Compilation
SAP .NET Connector
SAP .NET Connector Architecture
SAP .NET Connector Installation
Creating ASP .NET Web Applications Using the SAP .NET Connector
SAP .NET Client
SAP .NET Server
SAP .Net Connector Programmers Reference
Overview of Classes
SAP .Net Client Programming
SAP RFC Server Programming
Data Type Reference
Samples
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 the Interface IF_HTTP_UTILITY
Classes and Interfaces for the Client Role
Interface IF_HTTP_CLIENT
Attributes
Constants
Methods
ICF Administration
Administration of Server Functions
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
Administration of Client Functions
Establishing a Connection Using a Destination (SM59)
Parallel Processing Requests
Configuring Proxies
Troubleshooting and Monitoring
Troubleshooting: Procedure
External Debugging
External Debugging under Load Distribution
Traces
Parsing URL
ICF Recorder
Activating Recording
Displaying and Processing Entries
Authorization Object S_ICFREC
Maintaining the ICF Profile Parameters
Logging Error Information
Performance Measurements
Error Handling Using Central Monitoring Functions
Statistical Data for RFC and ICF
Development
Server-Side Development
The HTTP Request Handler
Developing a HTTP Request Handler
Creating a 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 an ICF Service
Creating Services
Defining the Logon Procedure
Logon Checks: Overview
Standard Logon Order
Alternative Logon Order
Logon Using Service Data
Logon with SSL Crtificates
Logon Using Basic Authentication
Logon via SAML
Determining the Client
Determining the Logon Language
Defining Service Data
HTTP Load Distribution
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 an HTTP Request Handler
Transporting ICF Services
Client-Side Developments
Example Program: Executing an HTTP Request
Parallel Requests
Redirecting Requests
SOAP Framework
Web Service Technologies in the Application Server
Example: SOAP Message
Example: WSDL File