Communication Channel Administration in ABAP
In any environment there maybe communication channels that should not be always started. Like those used for data loads or periodic activities (submitting tax, etc). Without detailed knowledge of each of the interfaces in the environment it can be tricky and time consuming to determine which comunication channels should be started following a period of downtime. To remove some of that headache I wrote this report that can be imported into your SAP system and with a few tweaks you can use your environment.
After writing the program I did a search in SCN on this topic and found a nice blog that summarises how this works in prinicple and provides some sample ABAP to achieve this. The SAP Help content in this space is also pretty clear.
The configuration is the same in that you need to ensure that the communication channels you wish to manage are set to “External” in the communication channel manager. Once complete you can then run the report.
A basic selection screen allows you to perform one of three, pretty self-explanatory actions “Check”, “Start” and “Stop”.
Result for “Check” action. Note the colour coded icon for “Activation State”.
There are also fields for Channel State Text and a traffic light icon to represent this, but they are only populated if the channel is active. You can refer to the XSD for the service for details of this and all the other fields. The screen shot below shows a couple of channels in the active state with the channel status.
Result for “Start” Action
As communication channels have not yet finished changing status, hit refresh to see any updated statuses.
And it’s pretty much the same outcome for stopping a channel.
First create a new ABAP program and copy the code from the attached text file.
Now you need to setup an RFC destination to PI, more specifically to the ChannelAdminServlet. You can copy your existing proxy connection to PI if you like. You need to set the path prefix to “/AdapterFramework/ChannelAdminServlet” and then update the path prefix and logon details.
I have a method to determine the HTTP destination name you configure in SM59 that you should replace with something that returns the name of the communication channel you just created in the above step.
Now you need to code the following method “get_comm_channels_config”. The result must return a list of the communication channel names and the business component/service to be managed externally in PI.
See the type definition.
How you choose to manage this I will leave to your discretion. For mine I used a custom maintenance table to list all the comm channels that can be started via external control. You may even like to add name and service as selection criteria to filter any list you maintain.
Finally you need to create a GUI status called “DEFAULT” to enable the refresh button.
Once all the aboove steps are complete, the report should be good to go…
If you have scheduled communication channels, you should adjust the schedule appropriately during periods of downtime. As these comm channels require automatic control, you cannot use this process to manage them.