Initial setup of SAP NetWeaver ABAP ICM for HTTP

Published by Tobias Hofmann on

4 min read

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.

Let the world know

Tobias Hofmann

Doing stuff with SAP since 1998. Open, web, UX, cloud. I am not a Basis guy, but very knowledgeable about Basis stuff, as it's the foundation of everything I do (DevOps). Performance is king, and unit tests is something I actually do. Developing HTML5 apps when HTML5 wasn't around. HCP/SCP user since 2012, NetWeaver since 2002, ABAP since 1998.

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 […]

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.