As explained at http://help.sap.com/saphelp_nwpi71/helpdata/en/45/0c86aab4d14dece10000000a11466f/content.htm SAP PI 7.1 offers the possibility of controlling Communication Channels externally by using HTTP GET or POST request to the following URL:
This will require:
- Assign the necessary permissions.
- Enable external control of the desired Communication Channels in Communication Channel Monitor of Runtime Workbench.
Unfortunately in the help.sap.com link is not explained properly how the roles should be assigned. For that reason I found it necessary to create this document which explains in detail all the steps required.
1- Assign the necessary permissions.
At http://help.sap.com/saphelp_nwpi71/helpdata/en/45/0c86aab4d14dece10000000a11466f/content.htm are specified 2 roles that user needs:
These are not 2 roles, but 2 actions that must be assigned to a specific role, and this role to the user concerned (for that reason many colleagues could not assign the specified roles, because these roles do not exists as such).
For assigning the necessary permissions follow the instructions below:
- Enter Netweaver Administrator (http://<server>:<port>/nwa) and over Configuration Management –> Security select “Identity Manager”.
b. Select “Role” from drop-down list and select “Create Role”. In the Overview tab type a name and optionally a description.
Then on “Actions assigned” tab on Available actions search for key *xi_af_channel_admin* and select the two actions needed, then select “Add”. Actions must be transferred to Assigned Actions at right side.
Finally at “Assinged users” tab search for the user/s you want to assign the permissions and select “Add”. Then select “Save”.
2- Enable Communication Channels External Control at Runtime Workbench.
Enter Runtime Workbench (http://<server>:<port>/rwb/) and select “Display”. Then select “Adapter Engine” and finally “Communication Channel Monitoring”.
This opens a window in which we can search the Communication Channels that we must control externally. Once selected the desired Communication Channel will be seen that “External Control Off” is selected by default, for that reason it must be necessary change it to “External Control On”.
Now the channel will be enabled to be controlled externally. For doing this we use the URL:
http(s)://<host>:<port>/AdapterFramework/ChannelAdminServlet?party=party&service=service&channel=channel&action=action setting in ‘channel’ the name of the Communication channel to be controlled and in ‘action’ the value ‘start’ or ‘stop’ to activate/de-activate the channel.
When the HTTP GET/POST to the URL is made the service returns an XML with the new state of the Communication Channel.
Here is an example of how to stop a Communication Channel:
Then if we look at the state in Communication Channel Monitoring will see that the channel is stopped and we can see that the control of it is set to “External”
To start again the Communication Channel use the same URL but using the action ‘start’ instead of ‘stop’.
Now in Communication Channel Monitoring we can see that the channel is running again.
There is a third action we can use called “status” which is used to know the status of the Communication Channel. If you do not specify any particular channel in the service will return an xml with the state of all Communication Channels of Integration Directory. In addition you can perform such filters in order to check the status of all the Communication Channels that belong to a specific Communication Component using the “service” parameter.
Here is an example of status request for all Communication Channels of BS_TPI_00 Business System:
That’s all. I hope you find useful this guide.