Operations on RFCs in SAP
You can use theMicrosoft BizTalk Adapter for mySAP Business Suite both as an RFC client and as an RFC server. In RFC client scenarios, your application invokes RFCs on the SAP system by invoking RFC operations on the SAP adapter. In RFC server scenarios the SAP system invokes RFCs on the SAP adapter, which, in turn, invokes the RFC as an operation on your application.
RFC Operations
RFCs are surfaced by name as operations under the RFC metadata category node by the SAP adapter. (You can browse or search for RFCs under the RFC node when you use the Add Adapter Service Reference Plug-in or the Consume Adapter Service Add-in.)
The SAP adapter can surface only those RFCs for which it can retrieve metadata from the SAP system. The adapter uses the RFC SDK to retrieve this metadata, so it cannot surface RFCs that contain parameters with data types that are not supported by the RFC SDK. For example, the adapter cannot surface RFCs that contain ITAB II type structures or tables.
The SAP adapter supports the following on RFCs:
IMPORT parameters
EXPORT parameters
CHANGING parameters
For more information about the message structures and SOAP actions used for RFCs by the adapter, see Message Schemas for RFC Operations.
Invoking RFCs on an SAP System
The SAP adapter surfaces RFCs as individual operations that take the name of the RFC on the SAP system. To invoke an RFC on the SAP system, you invoke the appropriately named RFC operation on the adapter.
For more information about:
Invoking an RFC using BizTalk Server, see Invoke RFCs by Using BizTalk Server.
Invoking an RFC using the WCF service model, see Invoke RFCs in SAP using the WCF Service Model.
Invoking an RFC using the WCF channel model, see Invoke Operations on the SAP System by Using the WCF Channel Model.
Receiving Inbound RFC Calls from an SAP System
It is possible for SAP to act as a client and invoke function modules on an external RFC server. This functionality enables:
SAP to push notifications to external systems without the external systems having to continuously poll SAP for notifications by calling RFCs.
The implementation of business logic outside the SAP system. The SAP system can then call the external program on the RFC server.
The SAP adapter can act as an RFC server to receive such inbound RFC calls from the SAP system. When the adapter receives an RFC call from SAP, it invokes that RFC operation on your application.
For the adapter to perform as an RFC server:
The RFC must be declared on the SAP system. This is so the adapter can retrieve metadata that describes the RFC from the SAP system. The RFC is actually implemented in your application.
The adapter must register with an RFC destination on an SAP gateway. The registration is based on a logical name called a program ID. You supply parameters in the connection URI to specify the PROGRAM ID, SAP gateway, and SAP server for this registration.
The following example shows the ABAP code required to invoke an RFC through the PROGRAM ID, MYDEST.
CALL FUNCTION ‘ABC’ DESTINATION ‘MYDEST’
For more information about:
Receiving an RFC server call using BizTalk Server, see Receive Inbound RFC Calls by Using BizTalk Server.
Receiving an RFC server call using the WCF service model, see Receive Inbound RFC Calls in SAP using the WCF Service Model.
Receiving an RFC server call using the WCF channel model, see Receive Inbound Operations from the SAP System by Using the WCF Channel Model.
Special RFC Operations
The SAP adapter can also perform certain special RFC operations on the SAP system. One such operation is RfcGetAttributes.
RfcGetAttributes. The SAP adapter uses this operation to get information about the RFC connection parameters such as system ID, partner code page, and language. This operation is available under the RFC node when using the Add Adapter Service Reference Plug-in and Consume Adapter Service Add-in.
For more information about message structure and SOAP action for invoking an RfcGetAttributes operation on the SAP system, see Message Schemas for RFC Operations.