Disable URL-Mangling in BSP Runtime

Hi Experts,
we decided to provide some web applications für mobile devices. Currently (and maybe never) WD ABAP does not support mobile devices. Therefore we are looking for alternatives.
There are a lot of threads in the net where other people discussed the same topic and several decided to use BSP. We wanted to use BSP and jQueryMobile but we noticed that there are some problems because of URL-Mangling / rewriting.
Do you have any idea if it is possible to disable URL-Mangling without modification? We already thought about an own request handler in TA SICF but in this case we also need an own CL_BSP_RUNTIME (to disable the coding in method on_check_rewrite). However this is difficult because some standard BSP runtime classes (RUNTIME, NAVIGATION...) are marked as final, so it isn't possible to inherit from them and we don't want to copy / redevelop all relevant classes.
Furthermore there are other disadvantages like:
- many redirects (problematical with low-bandwidth connections)
- client cookie handling is more difficult
Do you have any idea?
Kind regards
Danny

Hello!
I've done quite a lot of BSP development together with and without javascript frameworks like jQuery. It's possible to create a scenario without URL mangling if you set the system architecture in a specific way. I could speak a lot about this setup as it works really well! Here is a quick guide to get started:
Step 1:
The BSP runtime isn't really used at all. Create a BSP application but only store MIME objects in it. The MIME objects isn't URL mangled! The drawback is of course you can't do server side ABAP in your HTML documents. On the positive side, any Web Developer can create the HTML and javascript without ABAP programming skills. SAP functions as a static web server with all the benefits of the ICM cache and transport system.
Step 2:
Add an external alias in SICF for the BSP application. Like pointing "/myapp" to "/sap/bsp/sap/zmyapp_v001". The external alias is configured with a service account (without any authorizations) with authentication set to "Required with Logon Data". All fields should be specified (Client, User and Language). Now, any anonymous user can request the HTML files without interfering with logon data.
You don't need an external alias, but they come in handy to have nice-looking URLs; the possibility to change their target when you have multiple versions at the same time; and you can create multiple alias for the same application with different logon data. Like "/myapp/english" if you want. Or "/myapp/client800". Or "/myapp/latest", "/myapp/version1" etc.
Step 3:
Create a custom HTTP handler for your business data and assign it to a node in SICF. For example "/customers/orders/get" or whatever you find appropriate for your app. Since you now have your own handler, the BSP runtime isn't involved and no URL mangling exists.
The handler returns data in a suitable format for Web Developers (read: JSON).
Protect this node with security that matches the flexibility required from the frontend. I usually set another service account for this service and handle authorization myself; returning HTTP status codes like 403, 200 to the Web Developer (but not 401 as it's quite difficult to handle in AJAX scenarios). In it's most simple form you can provide username and password as form fields and perform a user switch in the handler for every request, effectively changing SY-UNAME in the handler ensuring that the correct user context is used.
Best regards,
Mikael Gurenius
SAP Solution Architect (Mobility)
PS: MIME objects are of course served with URL Mangling if referenced relative to the BSP application. You can avoid this (for example for the Apple icons) by always linking your MIME objects from the root. Get the application path using code or type manually. Like
  <link rel="apple-touch-icon-precomposed"
sizes="57x57"
href="<%= lv_path %>/icon_57x57.png" /> where lv_path is "/myapp/images" or "/sap/bc/bsp/myapp/images". If you do this, you can have URL Mangling (and do ABAP development) in your BSP pages but still have "clean" URLs for MIME objects.

Similar Messages

  • BSP Exception: Das Objekt search.htm in der URL /sap/bc/bsp/sap/webserviceb

    Hi
    I am trying to open web service using outside in approach
    http://host:httpport/sap/bc/bsp/sap/webservicebrowser/search.html
    its giving exception sayin
    BSP Exception: Das Objekt search.htm in der URL /sap/bc/bsp/sap/webservicebrowser/search.htm ist nicht gültig
    any add ones to be applied?
    Regards
    shekar chandra

    Hi,
    Please add the follwing inthe hosts file which is located on ur local desktop
    C:\WINDOWS\system32\drivers\etc\hosts
    open it with notepad and add the following,
    <ip adress of the SAP server><tab><Host Name of SAP server>
    eg:
    192.168.1.1     sapproduction     
    Log off and login in windows.
    regards,
    Arun
    Ps:Reward points are welcome

  • Prevent changing mangle for BSP mimes within EP

    Hi,
    Since we implemented the portal, it occurred to us that the mangle for BSP application is extended. The backside of this that each image gets these mangles too and are also changing each time that you call the app. This has as result that the images/mimes never will be cached in browser and needs to be loaded from the server each time, which puts more/unneeded load on the server. Is there any way to prevent this?
    Eddy

    Hi,
    Since we implemented the portal, it occurred to us that the mangle for BSP application is extended. The backside of this that each image gets these mangles too and are also changing each time that you call the app. This has as result that the images/mimes never will be cached in browser and needs to be loaded from the server each time, which puts more/unneeded load on the server. Is there any way to prevent this?
    Eddy

  • URL of an BSP application

    Hi,
      I wanted to know is there any way to get the URL of an BSP page from any table or any function madule that can be used for this purpose.
    thanks,
    Ganesh

    i guess you want to get the url of the BSP application programatically, if yes you can follow the following method.
    data: url type string .
    DATA:  params TYPE tihttpnvp.
      CALL METHOD
          cl_http_ext_webapp=>create_url_for_bsp_application
          EXPORTING
            bsp_application      = '<BSP application name'
            bsp_start_page       = <start page e.g default.htm>
            bsp_start_parameters = params " any parameter you want to pass along with url
          IMPORTING
            local_url            = url.
    Regards
    Raja

  • BSP runtime node got deactivate automatically after changing Handler list

    Hi folks,
    We made a change in Handler list of BSP node ( Default_host/sap/bc/bsp) in SICF T code. So basically we added our own Z  BSP HTTP Request Handler class into the Handler List just before the standard class CL_HTTP_EXT_BSP.
    Everything worked fine in Developement, but after moving the change to Quality system, the BSP node automatically got deactivated and we had to activate it again manually.
    What we are wondering is that, why the node got deactivated? Dit it get deactivated  because of the change in Handler list or it might had happend because of some other reason?
    Please provide your openion on this issue.
    Thanks
    PG

    Hi Joaquin
    Thanks for your reply.
    So does it mean, when we will move this new TP request to Production system, there also BSP runtime node will be deactivated automatically?
    And does thtis issue occurs only when there is a transport touching the BSP runtime? Since it did not occur before with other Transports!
    Thanks
    PG

  • Disableing of FPM Button at runtime

    Hi All,
    I am having a requirement where i have to disable a FPM Button at runtime. I created a button through configuration & this button should be desabled at runtime.
    Thanks & Regards.
    Shafiq Ahmed Khan.

    Hello Shafiq Ahmed Khan,
    The below mentioned class will help you to set the visibility property of FPM button.
    Class: CL_FPM_CNR_OIF
    Method: IF_FPM_CNR_OIF~DEFINE_BUTTON
    Use exporting parameter: IV_VISIBILITY
    Set the visibiltity property to abap_false
    Please dont forget to give REWARD points..:-)
    Thanks,
    Bharath.K

  • Error in BSP runtime repository: "Not possible to lock runtime repository"

    Hi,
    When I tried to change runtime repository of a component BT120H_CPL, in BSP component workbench, I am getting the following error: (The component is already enhanced one only).
    Not possible to lock runtime repository
    Message no. BSP_WD_TOOLS216
    Diagnosis
    You can only lock and edit runtime repositories that are saved statically in a BSP page. This means that the page may not contain dynamic elements, such as ABAP source code or page includes. Dynamic BSP pages must be loaded via HTTP and cannot be locked or edited.
    It is also not possible to lock or edit runtime repositories that are only referenced as a URL or that are in the MIME repository.
    System Response
    Lock not possible. You remain in display mode.
    Could you please help me out for the same.
    Thanks,
    Sandeep

    Hi Sandeep,
                    There is another way of commenting the code as below:
    <!--  commented code -->
    This wouldn't cause any scripting comment. Generally we use <% %> type of comments if we want to comment more than 1 line at a time. But for repository we have to use code as I mentioned above for each line seperately.
    I hope that resolves your query
    Thanks,
    Rohit

  • How to change a Logical Port URL-Destination/Endpoint at Runtime

    Hi,
    i am looking for a way to change the endpoint for a webservice-call without redeploying my application. (I am using a standalone-proxy).
    In the SAP-Help from NetWeaver 2004s I found the following hint:
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/c487d701c7214db8ca7a741ba3c9d0/frameset.htm
    Configuring Logical Ports:
    Logical ports (LPs) contain the configuration of the client-side SOAP runtime, such as the access URL or security settings. These are required if Web service calls are executed using proxies.
    The Web service port is part of the WSDL description. This defines a URL where the service is to be called. As a rule, this URL is generated directly into the proxy object. However, this can cause problems whenever the proxy is transported into a system landscape (for example, from the test system into the productive system). In this case, the proxy would still attempt to call the Web service on the test server although the proxy should point to the productive system. The proxy could be re-generated or the coding could be changed manually. Due to the risk of errors with this method, the configuration data in the SAP Web Service Framework is separated from the implementation. After transport or re-deployment of the proxy, the URL and other important parameters can be adapted using a simple editor. 
    The LPs provided correspond to the Web service configurations created for the Web service.
    My Question:
    Where can I change the URL of the corresponding logical port at runtime?
    I don't want to redeploy my application !!!
    I want to change the endpoint-destination at runtime!!!
    In the Visual Administrator I can see the webservice in the "Web Services Container Service Administration". I also can see the different ports from the WebService-Configuration I made.
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/c487d701c7214db8ca7a741ba3c9d0/frameset.htm
    But it is not possible to change the "target adresses"!
    Can anybody help me finding a solution concerning my question?
    Regards
    Steffen

    You can include below method in your code and call it.
    private void UpdateConfig(string key, string value, string fileName)
    var cFile = ConfigurationManager.OpenExeConfiguration(fileName);
    cFile.AppSettings.Settings[key].Value = value;
    cFile.Save();
    Here fileName is the full path + application name (eg: c:\project\WinApp.exe)
    Adnan Amin MCT, SharePoint Architect | If you find this post useful kindly please mark it as an answer :)

  • How to set up use of relative URLs for a BSP application

    Dear all,
    I need to access a BSP application through our external portal.
    This is failing because generated URLs are absolute URLs (they mention physical server name, not known of course on the internet) where they should be relative URLs (they use external portal URL as prefix).
    How to set this up?
    I'm logged on http://myportal.com/irj/portal and want to call a BSP application. To build this page, my internet client (Internet Explorer) tries to get elements from the server. Looking at HTTP trace, I can see that my IE is trying to reach the physical server, not known on internet of course, then page loading fails.
    Ex absolute URL : http://myservername.domain.com/sap/bw/[...]/image1.gif
    This is the behavior I can see at the moment.
    Relative URL : http://myportal.com/sap/bw/[...]/image1.gif
    This is what I'd like to see.
    Many thanks in advance for your help.
    François

    Any idea ?

  • How to change the port in the URL of a BSP Iview

    Hello,
    we have several appraisal templates released in our R/3 system and we can access them by the portal.
    We are changing our systems and we are implementing a load balanced in order to improve the connections with the portal. So we need to know how can we change the port of the server that appears in the URL when we go to MSS ->teamviewer and select one appraisal to see the information of the template.
    We need to change it and indicate the port of the load balanced http://emsapl404pre.endesa.es:8000/sap/bc/bsp/sap/hap_document...) not the port of one of the WAS server as we have now http://emsapl404pre.endesa.es:8302/sap/bc/bsp/sap/hap_document...)
    Thanks in advanced.
    Best regards.
    Seshen

    Hi,
    Just view any BSP Application in SE80 and the click on Utilities(M)->Settings.
    This will fgive you option to change URL and port number of the URL..
    It will be under the Business server Pages tab in the settings window.
    Hope this helps.
    <b><i>Do reward each useful answer..!</i></b>
    Thanks,
    Tatvagna.

  • URL Link to BSP with MVC

    Hi,
    I have a BSP with MVC design.
    I assume that the URL link to the application is the URL I see when I go into the Controller page under the BSP in SE80.
    Is that correct?
    The problem is that when I take that URL and copy paste it into a web browser, I get the first view but when I click on any button, the controller class is not called.
    If I do a right click on the BSP and select the TEST option, all is working perfectly.
    Do you have any idea why this is happening or do I do something wrong?
    Thanks,
    Itay

    Hi Stefan,
    Same issue i have as well.
    My Understanding is, in NWBC desktop, if you open a non sap (eg: html) page, NWBC becomes an IE Browser.
    That means you are now out of SAP for that tab (with html page) and whenever you try to launch any SAP transaction (using the method from HTML) it will launch in a new window and ask for Login.
    May be Experts like Samuli Kaski & Melinda Ludanyi can put some light on it.
    But, I have one more solution for this which is partially working in my case. May be helpful in you case as well.
    Issue: From some SAP transaction in NWBC (say tab A), you are launching the html page (say tab B) and then want to launch another SAP transaction (Say tab C) from html.
    Solution: Embed the HTML in SAP using HTML Viewer class and launch SAP custom transaction using the interface IF_LSAPI. It will launch it in new tab as a sap transaction with your html page.
    Now if you want to launch the SAP transaction from your html page (Which is embedded in SAP custom transaction) you can use HTML Viewer class Events and you can pass parameters as well. Re use the same interface IF_LSAPI and launch it in new tab
    In my case i am facing problems as the web developer has so many things on java script and they are not working properly. He is working on it and i am hoping it will be fine.
    Regards,
    Nik

  • Update on question for parameters in URL opening a BSP iview

    Hi again gurus.
    I wanted to do an update on this thread: How do you create a URL with parameters for a BSP iview? but choose to do the update as this new question instead.
    Well, in order to open a BSP iview from an external page shown in an Application Integrator iview in our portal AND FILL IN A FIELD, a link of this type is used on the external page:
    http://<server:port>/sap/bc/bsp/sap/z_purchase_req/process.htm?System=ABG_R3_ARD&mnr%3D9780198603641
    If you read the other thread you will see that I couldn't use a link of the following type since it opened up something like the stuff found under "System Administration > Support > SAP Application" and there asked for BSP application and start page!
    http://<server:port>/irj/servlet/prt/portal/prtroot/com.sap.portal.appintegrator.sap.bwc.BSP?System=ABG_R3_ARD&SAP_TCode=Z_PURCHASE_REQ&STARTPAGE=process.htm
    But the first link works so far as it opens up the correct transaction BUT the parameter won't get into the field. Does anyone know how to "format" the parameter correctly? When you open an iview of Transactional type you can use a URL like this (and it works also with writing parameter into a field):
    http://<server:port>/irj/servlet/prt/portal/prtroot/com.sap.portal.appintegrator.sap.bwc.Transaction?System=ABG_R3_ARD&SAP_TCode=ZARTS2&SAP_Dynp_Params=S_MATNR-LOW%3D9789146212720
    It's the part ...&SAP_Dynp_Params=... that is of interest here. Should it also be used when working with URLs opening BSP iviews or not? Or should something similar be used instead? The name of the field "mnr" is correct in the BSP URL, at least I think so, I found it in the Web Application Builder under tab "Page Attributes". I have tried both "=" and "%3D" in the URL but neither works.
    Any suggestions about the parameter format for this link or another completely different but working URL format would be extremely appreciated!
    Best regards
    Benny Lange

    the Appintegrator Documentation says you can use something like <User.[AttributeName]>, so <User.email> and <User.company> (not sure about capital letters) should work.
    Hope that helps.
    PD

  • Calling a Dynamic URL in a BSP

    Hi all,
    We are calling a BW Web Report from a BSP application . Presently we have hardcoded the BW Web Report but when we move from Devlopement to Quality and subsequently to Production we would need to pass the respective URL’s.
    One way of achieving the above, is to write Case statements specific to Development, Quality and Production System -IDs, Is there any other way in which we pass the  URL’s dynamically to the BSP.
    Thanx in advance.

    to dynamically construct BW web report url you can do the following
    call the following FM
    CALL FUNCTION 'TH_GET_VIRT_HOST_DATA'
       EXPORTING
         protocol             = 1 " 1 for http 2 for https
         virt_idx             = 0
      LOCAL                = 1
      IMPORTING
        hostname             = server
        port                 = port
      EXCEPTIONS
        not_found            = 1
        internal_error       = 2
        OTHERS               = 3 .
    now you can use something like below.
    concatenate `http://` server `:` port
    `/sap/bw/BEx?sap-language=EN&bsplanguage=EN&CMD=LDOC&INFOCUBE=<cubename>&QUERY=<queryname>` into bwurl.
    Hope this is clear. If not do get back.
    please note that if you are using webdispatcher then you may have to follow a different approach.
    Regards
    Raja

  • Disable macros warning on Access Runtime 2003 via gpo

    Hi guys,
    My users are using Microsoft Access Runtime 2003 to access our database and I was wondering if there is a way to disable the warning message through a group policy?
    Thanks!
    Ro
    This topic first appeared in the Spiceworks Community

    You should be able to do this by a GPO by adding a new registry item as below.
    32-bit OS:
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access\Security]
    "Level"=dword:00000001
    64-bit OS:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\11.0\Access\Security
    "Level"=dword:00000001
    See https://technet.microsoft.com/en-gb/library/cc753092.aspx for info on how to this (if you require it)

  • Disabling URL Link to Marketing selectively

    Hello,
    I am using OBIEE10.1.3.3.
    I have been able to remove the Marketing link with help from Venkat's blog
    http://oraclebizint.wordpress.com/2008/03/04/oracle-bi-ee-101332-removing-url-links-to-marketing-disconnected-analytics-and-delivers/
    But, now my manager wants that the link be displayed but should be enabled only for users who belong to a particular group and be disabled for everyone else.
    How can I do this? Or is it possible to hide the link for everyone except users who belong to a particular group?
    Please advise,
    Thanks,
    Manju

    On Mon, 25 Sep 2006 15:39:29 +0000 (UTC), "djkha0s"
    <[email protected]> wrote:
    >I've got a question that I've been trying to figure out
    for some time. I'm
    >fairly well versed with dreamweaver, but some of the
    server stuff is a bit hazy
    >to me.
    >
    > Question:
    > Within dreamweaver, if I link to a subdirectory that has
    an index.htm page in
    >it, the url explicity shows the page name (i.e.
    >mysite.com/downloads/index.htm). I want to make the links
    look like this:
    >mysite.com/downloads/ Now, while I know that this kind of
    link works fine
    >once the site is on the server, when I navigate my local
    copy of the site, the
    >link simply opens the directory in an explorer window.
    >
    > So, without a solution, I either have to chose working
    on a broken site
    >locally that will work fine on the server, or just
    explicitly link to the htm
    >files in each directory - I've chosen the latter, but
    it's BUGGING me!
    >
    > Extra Info:
    > I currently edit all my websites locally with
    dreamweaver and then selectively
    >upload files with another ftp client. My reason is that
    many of these websites
    >that I work on are live and I don't want to be uploading
    files that I've just
    >modified, but have not tested, b/c I might have
    accidentally fudged something.
    >
    > So, how can I configure my environment such that all
    links to directories
    >containing index.htm file, open the file correctly both
    online and locally.
    >
    >
    As to why Explorer is opening, I haven't a clue, but I also
    oftenwant
    to link to /subfolder/index.htm. I point to the file in DW,
    then strip
    out the filename, leaving /subfolder/.

Maybe you are looking for

  • S8-50 Tablet connects only to 802.11g networks not 802.11n

    My S8-50 table will only connect at 802.11g speeds to any wi-fi network. I tested this with multiple routers and the tablet will not connect at all if the router is set to 802.11n only mode. The wi-fi networks were using WPA2 AES/CCMP at the authenti

  • Removing Shortcut Icons from Finder Window

    In the left side of the Finder Window, there are little shortcut icons like "Music" and "Applications" and the like. I dragged a folder into this window for easy access. I no longer have the folder on my Mac, but the shortcut icon is still there. How

  • How to divide values to several columns

    Hi I have a table including values that I want to display in 5 columns. Table structure is: Use_id number (primary key) target id number code number Values in a table are: 1 234 22 2 345 23 3 564 24 4 634 25 5 345 24 6 545 22 7 234 23 8 634 23 I want

  • PrintJob() not displaying dynamically loaded images

    Hi all, I have an image-loading function given to me by a coworker that I'm using to load and smooth external images. It works great. However, when I go to print the slideshow I've created, I cannot figure out how to get these images to display. I'll

  • Export 5.1 Surround sound and stereo workflow?

    I have a 60 minute movie with the audio in 5.1 surround - using FCPX surround panner. The audio is in roles of dialog (interviews and voice-over), music, effects and camera ambience. Four roles total for four different types of audio. I want to expor