‎2012 Jan 04 1:56 PM
Hello All,
I have created a ITS based transaction.However, I am getting a URL page cannot be found message since we have used reverse proxy and the original link to the app is - http://<hostname>:<port>/sap/bc/gui/sap/its/zsbwp?sap-client=020
and the reverse proxy link we use is - http://<proxy_name>/sap/bc/gui/sap/its/zsbwp?sap-client=020
It launches the login page which is perfect. Howver the ITS application automatically generates a session and the redirect URL looks like -
Now this URl cannot be found. How can reverse proxy be maintained for this, since what I understand is everytime WebGui iview creates a new session ID, so I am not able create exact prefix for ITS requests in mapping. Can some help me with this issue
Appreciate all your help.
Thanks and Regards,
Samta
‎2012 Jan 04 5:33 PM
Hi,
You should read this wiki [http://wiki.sdn.sap.com/wiki/display/BSP/Using+Proxies] which gives excellent information about using reverse proxies with SAP applications.
Your problem seems to come from URL mangling. I don't know how to deal with it when using IIS but, with Apache you have to use a rewrite rule with a regular expression to instruct all URI beginning with /sap( to be directed to the SAP server.
Something like :
RewriteRule ^/(sap\(.*) https://ITSserver/$1 [P,L]
If you use the SAP Web Dispatcher as reverse proxy, this works automatically with nothing special to configure.
Regards,
Olivier
‎2012 Jan 04 5:33 PM
Hi,
You should read this wiki [http://wiki.sdn.sap.com/wiki/display/BSP/Using+Proxies] which gives excellent information about using reverse proxies with SAP applications.
Your problem seems to come from URL mangling. I don't know how to deal with it when using IIS but, with Apache you have to use a rewrite rule with a regular expression to instruct all URI beginning with /sap( to be directed to the SAP server.
Something like :
RewriteRule ^/(sap\(.*) https://ITSserver/$1 [P,L]
If you use the SAP Web Dispatcher as reverse proxy, this works automatically with nothing special to configure.
Regards,
Olivier
‎2012 Jan 04 7:51 PM
Hello Olivier,
Thank you so much for your prompt response. You are right this is something gotta do with URL. But not sure how to handle this one.
The original applicaton link is http://host:port/sap/bc/gui/sap/its/zsbwp and ITS redirection gives this link -
Now when accessed with proxy the original app link launches login screen for url -
http://proxyname/sap/bc/gui/sap/its/zsbwp but the redirected url gives error -
It basically has the session id. How do I define the source and target for such a scenario for redirection.
Please assist.
Thanks and Regards,
Samta.
‎2012 Jan 05 9:15 AM
Hi Samta,
Why do you repeat exactly your question ? I had understood the first time...
I told you that I don't know how to use IIS for this requirement (never used it) but I gave you enough information for you to eventually find a solution with IIS or decide instead to use Apache or the SAP Web Dispatcher.
Regards,
Olivier
‎2012 Jan 04 7:31 PM
It is as Olivier says (use a SAP Webdispatcher) but if you can get your code in between then you can also decode_url yourself using the service by the same name.
I had the same issue a few years ago. There are also some background infos and "how to" instructions in it. See
Cheers,
Julius
ps: How about using a Webservice instaead?
‎2012 Jan 04 8:53 PM
Hey Julius,
I implemented this class for BSP URL mangling, the URL still remains the same with so many characters, but now the applicaiton dumps with -
400 Session timed out - please log in again
-
Error: -11
Version: 7000
Component: ICM
Date/Time: Wed Jan 4 15:47:48 2012
Module: icxxthr_mt.c
Line: 1705
Error Tag: {-}
Detail: Session does not exist
Please assist.
Regards,
Samta.
‎2012 Jan 25 1:27 AM
Going back many years, when I used a IISProxy (an ISAPI filter) to do rev proxy for something similar, the rule in the XML file was:
<mapping name="webdynpro">
<source>
<protocol>http</protocol>
<prefix>/sap</prefix> >>>>>>>>>>>>>>>>>*Note the prefix is not /sap/ but /sap (without the closing /)
</source>
<target>
<protocol>https</protocol>
<host>myportal.mycompany.com</host>
<port>50001</port>
</target>
<protocol-header>ClientProtocol</protocol-header>
...
</mapping>
Regards,
Srini
Edited by: Srini Tanikella on Jan 25, 2012 2:28 AM