Initial setup of SAP NetWeaver ABAP ICM for HTTP
SAPGui is just one way to access an SAP system. A more and more common way to interact and work with SAP is through a browser. As with all web sites, a web server must handle the browser requests. For SAP NetWeaver ABAP, the web server is ICM. ICM is integrated with NW ABAP, no need to install it as an additional package. The only task to be execute by BASIS is to configure ICM. First step is to validate that ICM is working and no errors are occurring. For a browser to be able to access NW ABAP through HTTP, ICM must be up and running and listening on a HTTP port. Without this port, no communication from a browser to NW ABAP is possible. To see the configured HTTP port of ICM, you can either look at the profile parameter or use SMICM to see the service information.
Check ICM HTTP Port configuration
- Tx: SMICM
Goto -> Services
This shows the active services handled by ICM. As you can see, HTTP is just one of several possible services. SMTP is available, as can be telnet too! For each service you can see additional information like host name, and port. Port is given a 0. Check the ICM parameters to find out why. Also, take a look at SAP Help about this.
“Default Values AS ABAP
icm/server_port_0 = PROT=HTTP , PORT=0 , TIMEOUT=30 , PROCTIMEOUT=60
Outbound connections across HTTP and SMTP are possible with default values, but no ports for inbound connections are open.”
Configure ICM HTTP Port
Security first. That`s how SAP rolls. To allow someone accessing your SAP ABAP system via HTTP, you must explicitly activate this. Gives you also a hint if or if not SAP sees HTTP based access in ABAP as an equal citizen compared to SAPGui. To see the (default) parameter used by ICM, select:
Goto -> Parameters -> Display.
This will show you the parameters used by ICM. The ICM server parameters are given by icm/server_port_X.
Default parameter for HTTP is icm/server_port_0. Value for port is PORT=0. 0 meaning no incoming communication possible. A browser won`t be able to connect to NW ABAP. You have two options to change this: temporarily or permanent.
Change the HTTP port temporarily
- Tx: SMICM
Goto -> Services
Select the service: Service -> Change.
In the dialog, enter the new parameters. For port, you can use 8080. Confirm the data to start the service.
This _should_ start the HTTP service using the informed port. In my case – obviously – this did not work.
Change the HTTP port permanently
As the above solution is only a temporary workaround, the error message can be ignored (well, not sure if it is an error message, looks green, OK, and so). To change the profile parameter of ICM, RZ10 is used. This makes the HTTP port change permanent.
- Tx: RZ10
- Profile: Default
- Type: extended maintenance
Select create parameter
Values
- icm/server_port_0
- PROT=HTTP,PORT=80$$
Copy the parameter
The comment line changes and includes a change value. Also shows who did the change (blame).
Back at the parameter list, you can now see that the added parameter is listed.
Save the changes to the profile file.
Select yes to activate the new profile.
Confirmation that everything worked.
Note that you`ll have to restart your NW ABAP server to take effect.
Restart NW ABAP.
Test ICM HTTP Port
Did it work? How to test it? Easy: take a look at ICM service and access a service using a web browser. First, let`s see if ICM is listening on port 80$$ (btw: $$ is the ID).
SMICM
- Tx: SMICM
- Path: Goto -> Services
- ICM is listening on port 8000 for HTTP connections!
SICF
Very easy to test. Just access a ICF node using your web browser.
- Tx: SICF
- Node: you do not need to access a working web app, just a single node to see if or not ICM responses. You can use icman to test, although you should not get a valid response.
-
SAP: You can also access a node and provoke an error message.
8 Comments
SOURAV DAS · April 2, 2017 at 21:20
Hi,
Excellent Post. I want to ask whether it is possible to host ICM HTTP on Localhost (For e.g using XAMPP)
In your case, it is http://nw75.tobias.de
Can i make my own localhost and acheive the same?
Dharmesh Kumar · September 18, 2019 at 15:55
Excellent work, Thanks a lot mate….
Daniel · February 17, 2020 at 16:02
very Helpful. Thnx
Justin · October 20, 2020 at 09:42
Nice blog.
Change service port with SMICM (Service->Change) function not work due to there is bug in function module ICM_CHANGE_SERV. After applying note 915204 – Changing service ports is not possible in SMICM, this function works fine.
Justin · October 20, 2020 at 09:43
Sorry for type wrong note number , it should be 2915204 Changing service ports is not possible in SMICM
Mourad · April 6, 2021 at 13:55
thanks
Anand Singh · October 5, 2021 at 20:45
Thanks Tobias, nice post.
Install your own SAP NetWeaver ABAP system | It`s full of stars! · May 16, 2016 at 10:06
[…] Initial setup of SAP NetWeaver ABAP ICM for HTTP […]