How to push ABAP system data to a Java only SLD
I have seen several unanswered questions on the SDN forum about putting a SLD connection in place in ABAP in transaction RZ70 towards a Java only SLD. An example of such configuration is a BW SAP system landscape where ABAP part and Java part are different SAP systems according to the recommendations of SAP.
There is documentation available but it seems people are confused when it comes to the configuration and I must say it looks a bit confusing when you look at it. Let’s do something about that.
The SLD host and gateway you place in transaction RZ70 will help determine where data is pushed to (write).I t doesn’t determine where the ABAP SAP system goes to read if SLD data is to be read, reading is determined by the settings maintained in transaction SLDAPICUST.
RFC destinations SLD_UC and SLD_NUC
Most will know that there are TCP/IP RFC connections (transaction SM59 – TCP/IP) SLD_UC and SLD_NUC (UC for Unicode, NUC for Non-Unicode). These RFC connections are created when you configure the target SLD in transaction RZ70 in ABAP.
If you would delete SLD_UC and SLD_NUC from SM59, repeat the activation and execution in transaction RZ70, you would see that those RFC destinations were created again automatically.
When you open one of the RFC destinations in transaction SM59 in ABAP you will notice the Registered Server Program on the Technical Settings tab. What is this registered program about? When another application (it can even be non SAP) registers a connection on the SAP Gateway using the TCP/IP protocol, a Program ID is used. Using the Program ID the SAP system knows which RFC destination is the connection to which application.
You can view the registered Program ID in transaction SMGW by clicking Goto ‘ Logged on Clients in the upper menu (see picture 1.2).
In the overview you get there you can find the registered Program ID by checking the entries which have Registered Server as value in column Syst. Type (see picture 1.3).
In the TP Name column you will see SLD_UC which is the Program ID that is registered (see picture 1.4).
Don’t create a JCO destination with program ID SLD_UC or SLD_NUC
I have seen suggestions on the forum to create JCO destinations in the Visual Administrator or in the Netweaver Administrator but please don’t do this. I can understand it sounds logical to do so if the SLD_UC or SLD_NUC is not registered in the SAP gateway but it’s not the correct procedure and it will throw errors when you execute the configuration in transaction RZ70.
How is it done then?
SLD parameter configuration
Here comes the actual solution to such issues. If you want to connect an ABAP only SAP system to a Java only SLD you have to maintain the gateway that is to be used on the Java SLD.
Log on to the SLD through the URL http://<hostname SLD>.<domain>.<ext>:5<instance number>00/SLD using a user that has administrative rights (SLDDSUSER if sufficient rights or Administrator).
Now click on Administration (see picture 1.5).
There click on Profile (see picture 1.6)
Now in the selection drop down box choose ALL.
Now look for the GatewayHost and GatewayService parameters. These should contain the ABAP SAP system where you want to register the TCP/IP connection (remember SLD_UC, SLD_NUC). Adjust these parameters so it matches the hostname of the ABAP system and its gateway.
After changing this you will have to stop/start the SLD to apply the changes. Click on Administration in the top navigation bar of the SLD (see picture 1.9).
Now click on Stop Server to stop the SLD server (see picture 2.0).
Next click on Start Server to start the SLD server again (see picture 2.1). Once you see Status: Running again as in picture 2.0 you should find the registered program SLD_UC in the logged on client in the gateway of the ABAP SAP system.
You can check the section Registered Program which you can find above in this blog if you want to check if it’s the case.
Now we still haven’t pushed any data so let’s take a look at RZ70.
Now normally you fill in the SLD Host and Service in RZ70 where the SLD is actually running. If you point it towards a Solution Manager (dual stack) you would fill in the Solution Manager hostname and its gateway.
However, here it’s different. You fill in the ABAP SAP system itself and its gateway. This looks strange but it makes sense, previously the configuration of the SLD was changed so that the registered program SLD_UC registered to the gateway of the ABAP SAP system. The registration takes place when the SLD server is stopped/started. This means the gateway of the ABAP SAP system now knows where the TCP/IP connection is pointing to. So in RZ70 we give the location of the hostname and the gateway where the Program ID has been registered.
The program will find the registered Program ID in the ABAP gateway and it will know that it originated from the Java only SAP system (as the Java only SAP system registered it there).
Once you have the configuration in place, click on activate and execute in transaction RZ70 (see picture 2.2).
After you press execute, you will get a summary of the actions that were performed and you should see a successful RFC call (see picture 2.3) there and not an error message.
Checking if the SLD content is updated
Once the execution has taken place the SLD content is updated on the SLD server. Let’s take a look where you can see this.
Go back to the SLD server and click on home.
Now under the Landscape header click on Technical Systems.
From the dropdown box Technical System Type choose Web AS ABAP. Now navigate to the ABAP system you used or use the filter option and fill in the SID there and click go.
!https://weblogs.sdn.sap.com/weblogs/images/251804053/lastupdate.jpg|height=41|alt=Last update date time stamp|width=94|src=https://weblogs.sdn.sap.com/weblogs/images/251804053/lastupdate.jpg|border=0!</body>