Skip to Content

At the risk of demonstrating my intelligence or rather lack thereof, I’d like to document my experience while training on the BusinessObjects Enterprise XI R2  Web Services (WS) SDK. I found the errors typically thrown by the SDKs to be quite difficult to decipher. Perhaps this blog will save others from hours of slogging through these error messages.In a nut shell, my experience is that many of the errors I encountered were a result of incorrect or malformed URLs for the services I was trying to connect to.  In order to eliminate or reduce the possibility of incorrect or malformed URLs it would probably be a ‘best practice’ to return a URL from a service once the Session service object is created. I.e. to get the biplatform service use:session.GetAssociatedServiceURL(“BIPlatform”) which should return:  [http://<computer_name>:8080/dswsbobje/services/BIPlatform | http://<computer_name>:8080/dswsbobje/services/BIPlatform] This should prevent typographical errors and make it easier to move the application from development to test to production since you only have to change the url to the session service. Following is a number of error descriptions, where the error occurs, why it occurs and troubleshooting tips. Setting incorrect connection to the BOE web service at this line of code:
boConnection = New BusinessObjects.DSWS.Connection(“http://lm-20-devbase:8080/dswsbobje/services/Session1“)

Results in error on this line:
boSessionInfo = boSession.Login(boEnterpriseCredential)

The error is:
BusinessObjects.DSWS.DSWSException was unhandled by user code
CallStackTrace=”   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)    at
*  .
  .
  .
*  CauseException=”SoapException”
  CauseMessage=”The http://scn.sap.com/people/ludek.uher/blog/2009/03/30/errors-with-businessobjects-enterprise-xi-r2-web-services-ws-sdk/action cannot be processed at the receiver.”
  ID=”S2″
  Message=”Login exception (Error: WSE 99999)”
  Operation=”[http://session.dsws.businessobjects.com/2007/06/01/Login | http://session.dsws.businessobjects.com/2007/06/01/Login]”
  Source=”DSWS Web Service Consumer”
  WebServiceID=””

Resolution:
The connection object is incorrect and / or uses a malformed URL.  To test that the URL is valid, paste the URL into a browser and add “?wsdl”.

For example to testhttp://lm-20-devbase:8080/dswsbobje/services/Session1paste the URL into the browser ashttp://lm-20-devbase:8080/dswsbobje/services/Session1?wsdl. You should now be able to view the WSDL in the browser.

///////////////////////////////////////////////////////////////////////////////////////////

Setting incorrect BOE logon credentials:<br />boEnterpriseCredential = New BusinessObjects.DSWS.Session.EnterpriseCredential
boEnterpriseCredential.Login = “Administrator”
boEnterpriseCredential.Password = “Password123”
boEnterpriseCredential.Domain = “something”

Results in error on this line:
boSessionInfo = boSession.Login(boEnterpriseCredential)

The error is:<br />BusinessObjects.DSWS.DSWSException was unhandled by user code CallStackTrace=”com.crystaldecisions.sdk.exception.SDKServerException: Enterprise authentication could not log you on. Please make sure your logon information is correct. (FWB 00008)  cause:com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2 detail:Enterprise authentication could not log you on. Please make sure your logon information is correct. (FWB 00008)  The server supplied the following details: OCA_Abuse exception 10499 at http://scn.sap.com/people/ludek.uher/blog/2009/03/30/errors-with-businessobjects-enterprise-xi-r2-web-services-ws-sdk/.\exceptionmapper.cpp : 67  42040 {}  …Enterprise authentication could not log you on. Please make sure your logon information is correct.

*Resolution:                                                                                To resolve this error, ensure that your logon credentials are correct. Recommend hard coding the values and try to use the same values when logging on to the CMC.</p><p> /////////////////////////////////////////////////////////////////////////////////////////// </p><p>Setting incorrect connection to the BOE web service BI Platform at this line of code:<br />boConnection = New BusinessObjects.DSWS.Connection(“http://lm-20-devbase:8080/dswsbobje/services/BIPlatform1“)</p><p>Results in error on this line:<br />boResponseHolder = boBIPlatform.Get(myQuery, Nothing)</p><p>The error is:<br />BusinessObjects.DSWS.DSWSException was unhandled by user code<br />CallStackTrace=”   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)    at <br />  .
  .
  .
*  CauseException=”SoapException”
  CauseMessage=”The http://scn.sap.com/people/ludek.uher/blog/2009/03/30/errors-with-businessobjects-enterprise-xi-r2-web-services-ws-sdk/action cannot be processed at the receiver.”
  ID=”[http://biplatform.dsws.businessobjects.com/2007/06/01/Get | http://biplatform.dsws.businessobjects.com/2007/06/01/Get]”
  Message=”Get exception (Error: WBP 99999)”
  Operation=”[http://biplatform.dsws.businessobjects.com/2007/06/01/Get | http://biplatform.dsws.businessobjects.com/2007/06/01/Get]”
  Source=”DSWS Web Service Consumer”
  WebServiceID=””

*Resolution:                                                                                Test the URL in a browser, and the url should be to the correct Web service that your are creating your Object instance for.  The error was on the line pointed out because the boBIPlatform object was not created properly.</p><p>  ///////////////////////////////////////////////////////////////////////////////////////////</p><p>Creating incorrect query as in the below query for the documents in a selected folder:<br />myQuery = “query://{Select SI_NAME From CI_INFOOBJECTS Where SI_Parent_CUIDx = ‘” + myFolderCUID + “‘ And SI_KIND In (‘CrystalReport’,’FullClient’,’Webi’)}”</p><p>Results in error in the code where you loop through the documents as on this line:
For myIndex = 0 To boInfoObjects.InfoObject.Length – 1</p><p>The error is:<br />System.NullReferenceException was unhandled by user code<br />Message=”Object reference not set to an instance of an object.”<br />Source=”App_Web_u1oln9du”<br />StackTrace:<br />at WSSDK.ListDocuments_WS() in C:\SDKStudent\WS2WebSite\WSSDK.aspx.vb:line 150    at WSSDK.Button4_Click(Object sender, EventArgs e) in C:\SDKStudent\WS2WebSite\WSSDK.aspx.vb:line 529    at <br />  .
  .
  .</p><p>Resolution:                                                                                Use the QueryBuilder making sure it returns valid objects with no errors. The NullReference is due to the fact that the InfoObjects collection is empty, and thus it is not possible to iterate through it.</p><p>  ///////////////////////////////////////////////////////////////////////////////////////////</p><p>Setting incorrect connection to the BOE DSWS Connection as in this code:
boEngineConnection = New BusinessObjects.DSWS.Connection(“http://lm-20-devbase:8080/dswsbobje/services/ReportEngine“)</p><p><br />Results in error on this line:<br />boReportEngine = New BusinessObjects.DSWS.ReportEngine.ReportEngine(boEngineConnection, boSession.ConnectionState)</p><p>The error is:<br />BusinessObjects.DSWS.DSWSException was unhandled by user code<br />CallStackTrace=”   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)    at System.Uri..ctor(String uriString)    at Microsoft.Web.Services3.WebServicesClientProtocol.set_Url(String value)    at <br />  .
  .
  .
CauseException=”UriFormatException”<br />CauseMessage=”Invalid URI: A port was expected because of there is a colon (‘:’) present but the port could not be parsed.”<br />ID=”[http://reportengine.dsws.businessobjects.com/2005/constructor | http://reportengine.dsws.businessobjects.com/2005/constructor]”<br />Message=”constructor exception (Error: WRE 99999)”<br />Operation=”[http://reportengine.dsws.businessobjects.com/2005/constructor | http://reportengine.dsws.businessobjects.com/2005/constructor]”<br />Source=”DSWS Web Service Consumer”<br />WebServiceID=””</p><p>Resolution:                                                                                Test the URL in a browser, and the url should be to the correct Web service.<br /><br /> ///////////////////////////////////////////////////////////////////////////////////////////</p><p>An attempt to view an unscheduled report instance results in error on this line:
myReportCUID = boInfoObjects.InfoObject(0).CUID</p><p>The error is:
System.NullReferenceException was unhandled by user code<br />Message=”Object reference not set to an instance of an object.”<br />Source=”App_Web_khollmby”<br />StackTrace:<br />at WSSDK.ViewDocumentInstance_WS(String myDocument) in C:\SDKStudent\WS2WebSite\WSSDK.aspx.vb:line 205    at <br />  .
  .
  .
Resolution:*
The actual cause here is the query did not return any infoobjects, so the collection is empty.  The best solution would be to test the query using QueryBuilder on the Enterprise system to verify that the query actually returns results.

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

  1. Thierry Reignier

    Developing with Visual Studio 2010 add reference to the dlls in dswsDotNetApi rather than the ones from the dswsDotNet2Api folder under \Program Files\Business Objects\BusinessObjects Enterprise 12.0\web services\en\dsws_consumer\data\

    (0) 

Leave a Reply