Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
vbalko-claimate
Active Participant



Introduction:


The SAP Integration Suite provides a comprehensive set of tools and services for integrating different systems and applications. While SOAP or OData services cover a wide range of functionality, there are still instances where the good old RFC function modules in the ABAP system offer unique capabilities.


In this blog post, we will explore how to call RFC function modules from the SAP Integration Suite using the RFC receiver adapter, providing you with the necessary steps to set up the integration.



Overall setup


To successfully call RFC function modules from the SAP Integration Suite, there are three main parts that need to be configured:




  • setting up the RFC connection and resource on the SAP Cloud Connector

  • creating a destination

  • configuring the iFlow (XML + Adapter)


Let’s delve into each of these parts in detail.



Setting up RFC Connection and Resource on SAP Cloud Connector:


Start by creating a new RFC connection on the SAP Cloud Connector (SCC), which will establish a new endpoint to the connected subaccount.



System mapping for RFC Connection

Tip: To easily identify the correct connection, it is advisable to include the term “RFC” in the URL.

Once the RFC connection is created, add a new system connection to the subaccount using the RFC protocol.




Additionally, create a resource within this connection, naming it either after the exact function module or using a prefix if desired. Remember to add all the required function modules as resources.



Creating the Destination:


The next step involves creating a destination, which provides the connection data to the backend system.



RFC Destination

This is a standard RFC destination with the following essential properties:




  • jco.client.ashost (URL from the cloud connector)

  • jco.client.client (ABAP system client)

  • jco.client.lang (language of the connection)

  • jco.client.sysnr (system number).


These properties must be configured accordingly to ensure successful communication with the backend system.



iFlow Configuration:


The final step focuses on the iFlow configuration, which requires several actions to be performed.


First, obtain the WSDL/XSD file that describes the interface of the targeted function module. This file can be accessed as the output of a service hosted on the ABAP server.


To retrieve it, use the following URL format:


https://<host>:<port>/sap/bc/soap/wsdl11?services=<FM name>



Tip: Replace <host> and <port> with the appropriate values, which can be obtained by running a webdynpro tcode like SOAMANAGER and modifying the path accordingly.

Once you have the WSDL/XSD, you can proceed to prepare the XML with the input data.


This can be done through mapping or by hardcoding the XML structure.



Tip: Alternatively, you can import the WSDL into a SOAP tool like SOAPUI, which can generate a sample XML from it.

Tip: Another option is to leverage the WSDL for message mapping, which will generate a valid XML input automatically.

The final step is to configure the RFC adapter in the iFlow and set the RFC destination that was created earlier.



Tip: To achieve dynamic destination naming, you can utilize the expression ${property.<name>}.

Conclusion:


In this blog post, we explored the process of calling RFC function modules from the SAP Integration Suite. By setting up the RFC connection and resource on the SAP Cloud Connector, creating the necessary destination, and configuring the iFlow, you can seamlessly integrate the functionality provided by RFC function modules into your integration scenarios.



Disclaimer: This blog post can be found also on my other blogs - medium and blogspot
3 Comments
karstenvoigt
Participant
0 Kudos

Hi,

thanks for your good blog. I have an little issue with the language (jco.client.lang): how can this value be changed dynamically in the IFlow itself? We use same BAPI's that return messages and I'd like to set the consumer language as "input parameter", so message are returned in the "correct" language. Do you see a chance to pass the language from the IFlow to the ERP system? (The BAPI's don't have an input parameter for the locale.)

 

Thanks.

Regards

Karsten

vbalko-claimate
Active Participant
0 Kudos

Hello @karstenvoigt,

if you set language in a destination, then it is permanently set, and you dont have option to change it dynamically.

If there would be http call (which isnt unfortunatelly), then we would be able to call service with parameter

sap-language=<lang code>

 Only workaround which came in my mind is to create several destinations - each one with different lang parameter and create logic in iflow, which will call RFC with the right destination.

karstenvoigt
Participant
0 Kudos

Hi,

thanks for the answer. 

I was afraid of the answer 🙂 We have 10 different ERP systems and currently have to support 5 languages. Copying the destinations is somehow not nice, but it is the last chance. Unfortunately, I can't wait out the problem until all ERP systems have been migrated to S/4.

Regards

Karsten

Labels in this area