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-Programmierung in ABAP
RFC Basics
The RFC Interface
RFC in SAP Systems
RFC Destination
RFC Performance Profile
RFC Context
RFC Exceptions
RFC System Fields
RFC Authorization
RFC Trusted/Trusting Systems
RFC Restrictions
Technical Requirements
External Systems
SAP Systems
Code Pages
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
Maintaining Trust Relationships between SAP Systems
Calling RFC Function Modules in ABAP
Introduction
Parameter Handling in Remote Calls
Characteristics Using Unicode
Calling Remote Functions Locally
Calling Remote Functions Back
CALL FUNCTION - RFC (RFC Variants)
Synchronous RFC (CALL FUNCTION-DESTINATION)
Using Pre-Defined Exceptions for RFC
Using Transactional Remote Function Calls
CALL FUNCTION - IN BACKGROUND TASK
Transactional Integrity of tRFCs
The qRFC Communication Model
Using Asynchronous Remote Function Calls
Calling Requirements for 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
RFC Example
Writing Remote Function Modules in ABAP
Steps for Implementing Remote Function Modules
Programming Tips
Debugging Remote Function Modules
Configuration of System Resources for aRFC, tRFC, qRFC
RFC Resources on the Application Server
rdisp/rfc_check
Monitoring RFC Resources on the Application Server
Configuring the SAP System for Parallel RFCs
Dynamically Configuring RFC Quotas
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
Determining Resources for Asynchronous and Transactional RFC
Local Check
Detailed Check
Trigger Resource Check as RFC Client
Problems with RFC Resource Assignment
The RFC API
Introduction to the RFC API
RFC with External Systems
Technical Requirements
Contents of the 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
RfcOpenEx
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
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
QOUT Scheduler
Configuring System Resources for QOUT Scheduler
Registering/Deregistering a Queue
Optimizing 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 the Queue Status
Specifying Logon Data for RFC Destinations
Display Management Data
qRFC Programming
qRFC Design
qRFC Outbound Queue
Transferring Queue Names
qRFC with Inbound Queue
Transferring Queue Names to an Inbound Queue
qRFC Variants
Behavior with Update Tasks
Mixed Mode
NOSEND Scenario
Using the qRFC with the RFC Library
qRFC API
qRFC API for the Outbound Queue
qRFC API for the Inbound Queue
qRFC API: Example Programs
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
Transactional Consistency Check
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
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 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 Client Applications
SAP JRA Architecture
SAP JRA Administration
SAP JRA Deployment
SAP JRA Configuration Using Visual Administrator
SAP JRA Development Guidelines
SAP JRA Configuration on the SAP J2EE Application Server
Client Programming Model
Transactions for the Client Programming Model
LocalTransaction
UserTransaction
User Managed Transaction
Security for the Client Programming Model
BasicPassword
Kerbv5 (SSO)
DefaultAuthentication
Application Managed Authentication
Secure Network Connection (SNC)
Handling Records
SAP .NET Connector
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 Procedure
Logon Using Service Data
Logon with SSL Crtificates
Logging On Using Tickets
Logon Using Basic Authentication.
Logon using 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