Forum Discussion

vinhng_96559's avatar
vinhng_96559
Icon for Nimbostratus rankNimbostratus
Dec 18, 2012

SAP Business Object Opendocument irule rewrite

Hi F5 DevCentral experts,

 

We have a F5 virtual server that front-end 3 SAP Business Objects (BO) server.

 

One of the issues we face is each BO server has different web/app folder structure. As a result, once a user login and save some Opendocument URL to their browser favorites, the URL has specifc BO server path in it and this link won't work with F5 frontend virtual server. The link that works is the one that is general apply to the VS, without any server specifc info.

 

For example:

 

a general link that works for a docID=XYZABCXXX is:

 

http://bo.company.com/BOE/OpenDocum...XYZABCXXXX

 

userA after launch it and save it in their IE url becomes: http://bo.company.com/BOE/OpenDocum...enDocument

 

 

userB fav URL would be:

 

http://bo.company.com/BOE/OpenDocum...enDocument

 

 

userC fav URL would be:

 

http://bo.company.com/BOE/OpenDocum...enDocument

 

 

All these fav URLs link don't work next time users click on it. Only the general link will work.

 

I'm hoping that I can use some irules that strip out any server specifc info when users new requests coming, and to rewrite it with generic link works.

 

Any suggestion would be greatly appreciated.

 

Thank you.

 

 

 

10 Replies

  • Is the iDocID always the same length? Regardless, I think this is possible with findstr. I'll post back a first attempt shortly.
  • OK, try this;

    
    when HTTP_REQUEST {
     Check for a 'bad' URI
     if { [[HTTP:uri]] contains "=OpenDocument" } {
      Find the iDocID and save it in variable newpath
      set docid [findstr [HTTP::uri] "iDocID" 1 "&"]
      Log what we saved so we can check it's working, using  to comment this out later
      log local0. "iDocID is: $docid"
      Redirect using the 'good' URL and the requested iDocID
      HTTP::redirect "http://[[HTTP::host]]/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=$docid"
      log local0. "Redirected for iDocID: docid"
      Exit
      return
      }
    }
    
  • Hi Steve,

     

    We tried the irule and it seemed like there're multiple transactions back and forth and the end result of the docID went through many round of accumulation so it's not a valid docID string at the end.

     

    We found a workaround by setup a proxy on each app server so that url from another server also works locally so we're good for now. Really apreciate your help though.

     

     

    Thanks Steve

     

  • Hi Steve,

     

    We tried the irule and it seemed like there're multiple transactions back and forth and the end result of the docID went through many round of accumulation so it's not a valid docID string at the end.

     

    We found a workaround by setup a proxy on each app server so that url from another server also works locally so we're good for now. Really apreciate your help though.

     

     

    Thanks Steve

     

  • Hi Steve,

     

    We tried the irule and it seemed like there're multiple transactions back and forth and the end result of the docID went through many round of accumulation so it's not a valid docID string at the end.

     

    We found a workaround by setup a proxy on each app server so that url from another server also works locally so we're good for now. Really apreciate your help though.

     

     

    Thanks Steve

     

  • Hi Steve,

     

    We tried the irule and it seemed like there're multiple transactions back and forth and the end result of the docID went through many round of accumulation so it's not a valid docID string at the end.

     

    We found a workaround by setup a proxy on each app server so that url from another server also works locally so we're good for now. Really apreciate your help though.

     

    Thanks Steve