Web UI has provided numerous bsp components to simulate nearly all the transactions in CRM GUI. But there might still be chances that it is not enough. And this is also a problem if the system we would like to call is a non CRM system. To solve this, the most straight forward way is to launch SAP GUI transactions directly in Web UI, so that we are complete. Here comes ITS and Transaction Launcher.
This article introduces some basic knowledge about ITS which might be unfamiliar for CRM consultant. And then talk about some basic settings and info about transaction launcher.
[Question 1]: what is ITS?
ITS, Internet Transaction Server. There are Standalone ITS and Integrated ITS. Starting from SAP Basis release 6.20, we are having Integrated ITS instead. Thus for recent CRM release we are using Integrated ITS only. For the detailed difference between the two, please check online documentation:
[Question 2]: How to Check ITS version?
Depends on Standalone ITS or Integrated ITS, different concept of ITS version applies. Please check Note 366052 ITS versioning for detailed info. Let me put some highlight of the note here. The standalone ITS has its own version while Integrated ITS shares the same version with SAP kernel ("kernel release" and "patch level").
Let’s use one of the method to check Standalone ITS version introduced in note 366052 to make an investigation on Integrated ITS. Let’s start an ITS page from a CRM 7.0 system without CRM web ui (how to start it will be detailed in Question 3) which launches the crmd_order transaction. We can see the page itself contains nearly all the elements available in SAP GUI.
Now please use Ctrl + Mouse right click, this will call the IE context menu instead of SAP GUI context menu. Click View Source
In the very beginning of the source, we can see, the ITS we are using is SAP Integrated ITS. If you are using a standard alone ITS, the ITS version info will be displayed here
It is possible to get to know the ITS version in another very easy way. When you start ITS, there will be a loading page similar to the following. The ITS integrated or not, and the kernel version is all there.
[Question 3] How to test with ITS?
Sometimes, we might have to identify whether this is an ITS issue or CRM Web UI issue. The easiest way is to test the ITS without Web UI and see whether the problem could be reproduced. If the ITS URL cannot work by himself, this should be an ITS issue. Then how to start ITS without Web UI? Let’s start from CRM consultant point of view firstly. We have a transaction CRMS_IC_CROSS_SYS in CRM system for the transaction launcher customizing:
In which we can see several entries, OWNLOGSYS is defined for CRM system itself, and another link for linked ERP system. Let’s test for CRM system firstly, copy the URL for ITS in the above customizing transaction and put it directly into a browser, after enter logon data, you find the following screen. Which shows an error. Please ignore it at the moment (We will discuss it in Question 4), and expand the transaction field by click on the grey triangle:
Type in /ncrmd_order, and press Enter
This will bring us to the crmd_order screen again. This is a successful ITS testing. The same steps apply to ERP ITS, we can copy the URL from CRMS_IC_CROSS_SYS for mapped ERP, and test /nva01 for example.
Then if we forget about CRM, how can we test for ITS? From online documentation we can see that the URL for ITS is always
Then what is icman-host and icman-port? Please execute transaction smicm, which is not only within CRM system. Menu: Goto->Parameters->Display, we are interested in the following parameters
The icman-host is the value for icm/host_name_full. And our system is configured for HTTP only, thus, we take the PORT in icm/server_port_0 as icman-port. This leads to the full ITS URL as
Let’s verify this URL with the setting in transaction CRMS_IC_CROSS_SYS, they are the same regarding the starting part. We should be on the right road. Then let’s copy this URL into a browser, we can see the SAP Easy Access menu, just like what we do after logon to the SAP GUI interface.
This is even better than our testing before, since there is not any error message. We can continue to test crmd_order for example. This is another successful ITS testing.
And still another way is to test from transaction sicf, we can search service webgui, and right mouse click and choose Test Service, the URL loaded should be the same as
http://iwdfvm3088.wdf.sap.corp:8000/sap/bc/gui/sap/its/webgui which we tested before.
If let’s compare the URL from CRMS_IC_CROSS_SYS and the URL we composed based on online documentation. We can have a brave guess can we replace the words after ~transaction=? Let’s test withhttp://iwdfvm3088.wdf.sap.corp:8000/sap/bc/gui/sap/its/webgui?~transaction=crmd_order
This leads us to the crmd_order in browser without any error message. Great!
[Question 4] How is ITS fits into Web UI as transaction Launcher?
We have two options to display a GUI transaction into Web UI using ITS technique. First is to create a URL pointing to ITS link as non BSP link. This is just like to call the link directly in a browser.
The other option is to use configure transaction launcher wizard
We will not detail the above in this article. Please check article regarding how to configure the transaction launcher for more detail.
Within this article it talks about using httpwatch to record the transaction launcher page loading from CRM IC Web UI, and locate genericpostexecution.htm, and copy the content of the page. Let’s try to make it here also, and do bit more steps after that.
Here we use the option 2 which is to configure the transaction launcher using wizard. I start the CRM IC Web UI, start the recording of HTTPWatch and click on one link which was configured as transaction launcher. According to the above article, we search for genericpostexecution.htm as URLs in the HTTPWatch result.
Click on Content tab, and notice the following underlined values
Let’s goto SAP GUI, type in transaction code IC_LTX, it will show like this
If we click on execute without entering anything, the screen will show error as what we test the link in CRMS_IC_CROSS_SYS directly (see pic 5), let's solve this.
If I enter data according to the info seen in HTTPWatch as following in transaction ic_ltx:
Then click on execute (the green tick icon), or enter ICEXECUTE in the command field, it will show crmd_order, which looks like in normal SAP GUI. But actually it was called via transaction ic_ltx.
For this test, SAP support do NOT have to open HTTP connection which simulates customer's intranet environment. By testing with ic_ltx directly in GUI, we are able to test directly without browser regarding correct or incorrect input for transaction launcher. For example different BOR Object Type, different method, and different transaction code (the smaller cases of the transaction code, which is discussed in article Almost Everything About SAP CRM Transaction Launcher - Part I ).
The above SWCONT* hidden parameter were filled by method IF_CRM_IC_ACTION_HANDLER~PREPARE_DATA_FLOW of each handler class of the transaction launcher itself. It will look like
iv_name = '<*MAINOBJ*>'
iv_object_key = ICWEBCLIENTBORKEYPARAMETER
iv_object_type = gv_bortype ).
Author: Hongyan Shao
Role: Support Consultant - SAP China
Date: Aug. 26th, 2011
Here we will put the question raised from readers, and try to put answer later on
Sep. 1st, 2011, from sumit mittal:
How to pass data back from transaction launcher? For example CRM web ui call ERP va01 transaction launcher, can the sales order number be passed back?
Sep. 2nd, 2011:
This is possible, and similar solution has been provided in standard CRM already. Please start the wizard of creating transaction launcher, and you will get the following flag: Save Data in Activity Clipboard, If you select it.
And the transaction launcher handler class will have extra coding generated in method IF_CRM_IC_ACTION_HANDLER~PROCESS_RETURN(core coding has been highlighted with red):
Here the important method is
You may also reference the coding in
for necessary context coding needed. And you can make your own coding in the method
<Z transaction launcher handler class>
You are able to find the handler class quickly by transaction CRMC_IC_ACTIONPROF.
Another issue you might take notice is you have to ensure the object you are reading can be recognized by CRM, here some standard provided objects are available in table bsp_dlc_obj_type. If yours is missing, you may need to add into customizing of table bspc_dlc_obj_typ. Debugging into
will tell you the necessary object type.
Hope this has answered your request!
Author: Hongyan Shao
Role: Support Consultant - SAP China
Session Date: Aug. 26th, 2011
Publish Date: Sep. 2nd, 2011