Skip to Content
Author's profile photo Katan Patel

Communication Channel Administration in ABAP

Motivation

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.

 

http://scn.sap.com/community/pi-and-soa-middleware/blog/2011/05/24/startstop-a-communication-channel-from-an-abap-program-using-the-external-control-switch

 

User Guide

 

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”.

 

image 1.png

Result for “Check” action. Note the colour coded icon for “Activation State”.

 

image 2.png

 

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.

 

image 3.png

 

Result for “Start” Action

 

image 4.png

 

As communication channels have not yet finished changing status, hit refresh to see any updated statuses.

 

image 5.png

 

And it’s pretty much the same outcome for stopping a channel.

 

 

Initial Setup

 

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.

 

image 6.png

 

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.

 

image 7.png

 

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.

 

image 8.png

 

See the type definition.

 

image 9.png

 

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.

 

image 10.png

 

Once all the aboove steps are complete, the report should be good to go…

 

Caveat

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.

 

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi Katan, i know this post is quite old, but i can't see the attached source code, and it really looks good, can you share it?

      Thanks!