Not able to refresh the report with Parameters.
PDF output with text cut horizontally
Hi,
I have a 12 page webi report with CLOB objects and the text in report get cut when exported to PDF. For example, if the text flows from one page to second page it get cut. This was not an issue in the earlier version 6.5. SAP confirmed this as a bug.
Using restful webservices i was able to export it into PDF (no text getting cut) with out the pages option (all data showing up in one page). But the issue when printed, only one page of data get printed not all 12 pages. If i export using pages option in Restful (/reportid/pages) the result will be with text getting cut.
Wondering any way i can export to one page and take printout or may be convert the one page to many pages of PDF without text get cut.
Any ideas or suggestion for a work around is appreciated.
Thanks,
Arun
RESTful Webservice "Operation Timed Out."
Version BI4.1 SP4 Patch 4
Clustered Windows Environment
One WACS Service (default settings)
Using C# HTTPWebRequest and HTTPWebResponse for all the steps
Workflow
1. POST Login (using Enterprise)
2. PUT Refresh document no parameters (using docid)
3. GET Refreshed document - This Step Fails (Operation timed out)
4. POST Logoff - This step fails (Operation timed out)
The workflow fails about 90% of the tries. We also noticed that some of the steps take a long time to process. For example refreshing the document in Launchpad takes about 13 seconds, but using REST calls it varies from 30 to 120 seconds
When we do the same steps using a REST Client (in browser) we are able to process all the steps without failures. We did notice the same processing time as mentioned above.
Report in BI Launchpad works without any issues.
Please advise.
Running query against universe and return results
Hi,
I have a custom sql that is used in a report. Can i run the same custom sql against a universe and get the results? I was searching the WS document and found this -
- Runs the query using GET <slURL>/queries/{queryId}/data.svc
- Returns the query results using GET <slURL>/queries/{queryId}/data.svc/{flowName}ArunI am not clear on this part "queries/{queryId}/data.svc/{flowName}". Are "queries" the actual custom sql? What is queryId? Also how to find the flowName?Any help appreciated.Thanks,
Can I name an emailed attachment?
I've developed a Java program to schedule and re-schedule reports. Some of these use Business Objects to email files to recipients. There doesn't seem to be the ability to name the attached file, which tends to get named the same as the Instance with a random numeric string concatenated to the name. The XSD schema in note 1899352 seems to confirm this, or am I missing something?
Is it possible to name the attached file with a chosen name (mimicking the "Use Specific File Name" box in regular BOXI scheduling) or does is these currently not possible?
I want the file name to be of the form - reportnameYYYY-MM-dd-HH-mm.ss.pdf
Can I name emailed file attachments?
I've developed a Java program which schedules and re-schedules reports and many of these are sent as attachments. I don't seem to have any control over the name of the attachment which defaults to the instance name with a concatenated numeric string appended.
Are there tags to name the attachment? Sap note 1899352 giving the XSD schema doesn't seem to show them.
I'd like to name my attachments with the date and time appended in the form
Report Name YYYY-MM-dd-HH-mm-ss
The xml template file I'm using is attached
Incorrect session found in HTTP header X-SAP-LogonToken (too many values)
Hi,
When I try to retrieve a list of infostore objects using the Rest API (http://localhost:6405/biprws/infostore) everything works fine.
But when I try to retrieve a list of universes (http://localhost:6405/biprws/sl/v1/universes) using the same code I get the following error:
ERROR: 401 - Unauthorized - WSR 00002 - Incorrect session found in HTTP header X-SAP-LogonToken (too many values) error
In my code the X-SAP-LogonToken has been surrounded by double-quotes:
xhrObj.setRequestHeader("X-SAP-LogonToken",sessionToken);
Does anyone know what I'm doing wrong?
Here is the full code:
<!DOCTYPE html><html><head> <script src="scripts/jquery-1.11.3.js"></script> <script src="scripts/jquery.json2html.js" type="text/javascript"></script> <script> var nextRequestAttemptDelay=700; //set this value for longer time if many of requests fail-milliseconds var sessionToken; var boServer; function login() { console.log("logOn"); boServer="http://localhost:6405"; //new logon object var logonInfo = new Object(); //for BO login there are 3 attributes essential for logging: userName,password and auth. logonInfo.userName="enter user"; logonInfo.password="enter password"; logonInfo.auth="secEnterprise"; //#biprws/logon/long var logonUrl="http://localhost:6405/biprws/logon/long"; console.log("URL: " + logonUrl); //#for log var inputData = JSON.stringify(logonInfo,null,'\t'); // call request to BO to perform query and log inging we will use JSON. Simply because it is clearer than XML // convert JS objects to JSON string with input data... var queryResult=performQuery(inputData,'POST',logonUrl); // if query was successfull if (queryResult.errText==null){ //set global session token sessionToken=queryResult.data.logonToken; console.log("You are now logged in! ","success"); setTimeout( function(){ loadMainInfostoreView(); } ,500 ); } else{ //there was an erro while processing request console.log("Logging to BOBJ server has failed - "+queryResult.errText ,"error"); } } function loadMainInfostoreView() { setTimeout( function(){ //var infostoreUrl="http://localhost:6405/biprws/infostore"; var infostoreUrl="http://localhost:6405/biprws/sl/v1/universes" //no input data required // call request to BO to perform query for getting infostore data var queryResult=performQuery(null ,'GET',infostoreUrl); // if query was successfull if (queryResult.errText==null){ //show results showResults('INFOSTORE_LIST',queryResult.data.entries) } else{ //there was an erro while processing request //inform user about error during logg-in process.. console.log("ERROR: Loading main infostore view has failed - "+queryResult.errText ,"error"); } } ,300 ); } function performQuery(inputData,requestType,requestUrl){ // result object var result = new Object(); result.data=null; //for result data result.errText=null; //for result error message //console.log("performing query"); $.ajax({ beforeSend: function(xhrObj){ //xhrObj.setRequestHeader("Content-Type","application/json"); xhrObj.setRequestHeader("Accept","application/json"); //if session exists it is neccessary to add it into any request if (sessionToken != null){ xhrObj.setRequestHeader("X-SAP-LogonToken",sessionToken); } }, //if input data exists we want to add it async: false, //otherwise function would be always null crossDomain:true, data: inputData, type: requestType, url: requestUrl, dataType: 'json', contentType:'application/json', error: function(xhrObj, textStatus, errorThrown) { // sometimes we get only HTTP OK 200 status without {} and jquery incorrectly ¨ //interpretes that as an error state so we want // check for client 4xx and server 5XX error codes if (xhrObj.status>=400){ //if there is no response at all.. if (textStatus=="error" && errorThrown==""){ errorThrown="No response from server"; } var d=" - "; var errObj = new Object(); // try enhanced error description try { errObj=JSON.parse(xhrObj.responseText.replace(/\n/g,"")); // remove new lines from response string result.errText=xhrObj.status+d+errorThrown +d+errObj.error_code+d+errObj.message; //otherwise at least some description } catch (err) { result.errText=xhrObj.status+d+errorThrown; } } }, success: function(xhrObj, textStatus, errorThrown) { //manage non error but still unsuccessful requests result.data=xhrObj; }, }); return result } function showResults(actionType,actionData){ switch(actionType){ case "INFOSTORE_LIST": // for infostore base view we create menu items // create menu $.each(actionData,function(key,value){ //create menu button and its label console.log("data: " + key + " - " + value.name) }); } } </script></head><body><button onclick="loadMainInfostoreView()">Click me</button></body><script> $( document ).ready(function() { console.log( "ready!" ); login(); });</script></html>
Exporting a Webi report as PDF
Hi,
I'm having a hard time getting a PDF to export properly. I can get the report to export, but the report header and footer are missing.
In a nutshell, here's what I'm doing:
* GET request to http://server:6405/biprws/raylight/v1/document/1234/parameters/?lovInfo=false to get the list of parameters my report needs
* PUT request to http://server:6405/biprws/raylight/v1/document/1234/parameters, with the following XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><parameters> <parameter optional="false" type="prompt" dpId="DP0"> <id>0</id> <technicalName>Please Enter Date</technicalName> <name>Please Enter Date</name> <answer constrained="true" type="Text"> <info cardinality="Single" keepLastValues="true"> <lov hierarchical="false" refreshable="true"> <id>UNIVERSELOV_DS0.DO2e</id> </lov> <previous> <value id="0">02/28/2016</value> </previous> </info> <values> <value id="0">02/28/2016</value> </values> </answer> </parameter> <parameter optional="false" type="prompt" dpId="DP0"> <id>1</id> <technicalName>Please Enter Agency Identifier:</technicalName> <name>Please Enter Agency Identifier:</name> <answer constrained="false" type="Text"> <info cardinality="Single" keepLastValues="true"> <lov hierarchical="false" refreshable="true"> <id>UNIVERSELOV_DS0.DO21</id> </lov> <previous> <value>100049</value> </previous> </info> <values> <value>100052</value> </values> </answer> </parameter></parameters>
* GET request to http://server:6405/biprws/raylight/v1/document/1234, with Accept header set to "application/pdf"
While I do get my PDF, I'm only getting the main body, not the page header/footer.
Any suggestions?
Purging after modifying the report
Hi,
After purging a document, i opened it modified by adding couple of columns, refreshed and saved it.
Now i run the purge again, it displays the old purged document instead of new modified one. So for state (Original, Unused and Modified) i defined the URL like this -
PUT = ../raylight/v1/documents/docid/dataproviders?purge = true&state=Modified
and for saving the document back to CMS, my URL is /raylight/v1/documents/docid?state=Modified.
This doesn't gives the desired result. I have gone through the document, but it do not mention an example with a URL.
Any help appreciated.
Thanks,
Arun
Error: RWI 00014
I am trying to execute a WebI report using java apis.Am able to create a reportEngine instance bit when I try to setup a
DocumentInstance using - reportEngine.openDocument(1234)
I get the error - RWI 00014
which (from SAP documentaion) relates to
You cannot retrieve more than one report part in DHTML output format simultaneously.
Enter a single report part reference.
The report I am trying to open is a simple report so not sure what the above error means and how to get around that
Thanks.
Error while refreshing report through parameter
Hi ,
I am getting below error while refreshing report through parameter, using BO 4.1 SP5
1. Created new document
Request:http://xyz:6405/biprws/raylight/v1/documents
Method: POST
Body:
<document>
<name>sample</name>
<folderId>12644</folderId>
</document>
Accept: application/xml
Content-Type: application/xml
2. Added data providera
Request:
http://xyz:6405/biprws/raylight/v1/documents/2374/dataproviders
Method:POST
<dataprovider>
<name>"XYZ"</name>
<dataSourceId>3345</dataSourceId>
</dataprovider>
Accept: application/xml
Content-Type: application/xml
3. Saved document
Request:
http://xyz:6405/biprws/raylight/v1/documents/2374
Method:PUT
Accept: application/xml
Content-Type: application/xml
4. added query specification
Request:
http://xyz:6405/biprws/raylight/v1/documents/2374/DP0/specification
Method:PUT
Accept: application/xml
Content-Type: text/xml
<?xml version="1.0" encoding="UTF-8"?>
<queryspec:QuerySpec xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:queryspec="http://com.sap.sl.queryspec" version="17" dataProviderId="DP0">
<queryParameters>
<duplicatedRowsProperty activated="true" value="true"/>
<maxRetrievalTimeInSecondsProperty value="0"/>
<maxRowsRetrievedProperty value="0"/>
<removeEmptyRowsProperty activated="true" value="true"/>
<allowOtherUserToEditQueryProperty activated="true" value="true"/>
<resetContextOnRefreshProperty activated="true" value="true"/>
<stripQueryProperty/>
<useBexQueryDefaultValue activated="true" value="true"/>
</queryParameters>
<queriesTree xsi:type="queryspec:QueryDataNode">
<bOQuery name="Query">
<resultObjects name="State"/>
<resultObjects name="Sales revenue"/>
<conditionPart/>
</bOQuery>
</queriesTree>
</queryspec:QuerySpec>
5. saved document again
saved successfully
6. Refreshing report
Request:
http://xyz:6405/biprws/raylight/v1/documents/2374/parameters
Method: GET
Accept: application/xml
Content-Type: application/xml
Getting below error at this stage
- <error>
- <error_code>999</error_code>
- <message>Internal error (RaylightAction)</message>
- <stack_trace>com.sap.webi.raylight.RaylightException: Internal error (RaylightAction)
- at com.sap.webi.raylight.context.Messenger.internalError(Messenger.java:83)
- at com.sap.webi.raylight.actions.ActionDispatcher.handleUnexpectedError(ActionDispatcher.java:131)
- at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:117)
- at com.sap.webi.raylight.RaylightServiceParameters.getParameters(RaylightServiceParameters.java:94)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)
- at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)
- at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:164)
- at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
- at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
- at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
- at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)
- at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
- at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
- at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
- at java.util.concurrent.FutureTask.run(FutureTask.java:138)
- at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
- at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
- at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
- at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
- at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)
- at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)
- at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
- at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletController.java:93)
- at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)
- at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
- at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
- at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
- at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
- at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
- at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
- at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
- at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
- at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
- at java.lang.Thread.run(Thread.java:743)
- Caused by: java.lang.reflect.InvocationTargetException
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at com.sap.webi.raylight.actions.ActionInvoker.invokeWith(ActionInvoker.java:123)
- at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:105)
- ... 48 more
- Caused by: com.businessobjects.sdk.core.server.CommunicationException$UnexpectedServerException: You do not have sufficient rights to refresh the query. Some objects are not available to your user profile. Contact your administrator to request the necessary rights. (IES 00002)
- at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:152)
- at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:109)
- at com.businessobjects.sdk.core.server.common.CommonRequestHandler.afterProcessing(CommonRequestHandler.java:127)
- at com.businessobjects.sdk.core.server.internal.AbstractServer.processIt(AbstractServer.java:178)
- at com.businessobjects.sdk.core.server.internal.AbstractServer.process(AbstractServer.java:133)
- at com.businessobjects.sdk.core.server.internal.InstanceServer.process(InstanceServer.java:94)
- at com.sap.sl.sdk.services.util.ServerRequestProcessor.processServerRequest(ServerRequestProcessor.java:49)
- at com.sap.sl.sdk.dataprovider.service.DataProviderServiceImpl.processDataProviderCommand(DataProviderServiceImpl.java:589)
- at com.sap.sl.sdk.dataprovider.service.DataProviderServiceImpl.prepare(DataProviderServiceImpl.java:367)
- at com.sap.sl.sdk.workspace.service.WorkspaceServiceImpl.prepare(WorkspaceServiceImpl.java:308)
- at com.sap.sl.sdk.workspace.service.WorkspaceServiceImpl.prepare(WorkspaceServiceImpl.java:296)
- at com.sap.webi.raylight.business.ParameterHelper.<init>(ParameterHelper.java:156)
- at com.sap.webi.raylight.actions.parameter.GetParametersAction.execute(GetParametersAction.java:26)
- ... 54 more
- Caused by: com.businessobjects.sdk.core.server.ServerException: You do not have sufficient rights to refresh the query. Some objects are not available to your user profile. Contact your administrator to request the necessary rights. (IES 00002)
- at com.businessobjects.sdk.core.server.common.CommonRequestHandler.newServerException(CommonRequestHandler.java:260)
- at com.businessobjects.sdk.core.server.common.CommonRequestHandler.createAllServerExceptions(CommonRequestHandler.java:238)
- at com.businessobjects.sdk.core.server.common.CommonRequestHandler.afterProcessing(CommonRequestHandler.java:121)
- ... 64 more
- </stack_trace>
- </error>
How to Display Webi Report using Restful SDK
Hi,
I am trying to find a way to display the webi report without saving using Restful SDK. I am able to refresh the report successfully and able to save it and use OpenDocument method to display the report. But I would like to display the refreshed report without saving using Restful SDK. is it possible?
Thanks,
Madhu V
Export only Report Table data into Excel without Heading of the report.
Not able to add query Specification to the Data Provider
1. Create Document
String Create= "<document><name>Doc</name><folderId>4825</folderId></document>"
2. Added Data Provider
String Create = <dataprovider><name>eFashion</name><dataSourceId>4835</dataSourceId></dataprovider>"
3.After Dataprovider creation I am using the below code to add queryspecification
4. Getting the below error. Please help
Report using restful API is not fetching the data
Hi ,
The Report downloaded using the RestFul API(in C#) is not fetching the data,i.e, only fetching the schema of the report.we have fallowed below code to fetch the report Please find the code below
string userName = "XXXXXXX";
string password = "***************";
string auth = "secEnterprise";
string baseURL = "*********************:6405/biprws/";
string LogonURI = baseURL + "logon/long";
string InfoStoreURI = baseURL + "raylight/v1/documents/56547"; //5385 is the document id
string rwsLogonToken;
try
{
//Making GET Request to /logon/long to receive XML template.
WebRequest myWebRequest = WebRequest.Create(LogonURI);
myWebRequest.ContentType = "application/xml";
myWebRequest.Method = "GET";
//Returns the response to the request made
WebResponse myWebResponse = myWebRequest.GetResponse();
//Creating an instance of StreamReader to read the data stream from the resource
StreamReader sr = new StreamReader(myWebResponse.GetResponseStream());
//Reads all the characters from the current position to the end of the stream and store it as string
string output = sr.ReadToEnd();
//Initialize a new instance of the XmlDocument class
XmlDocument doc = new XmlDocument();
//Loads the document from the specified URI
doc.LoadXml(output);
//Returns an XmlNodeList containing a list of all descendant elements
//that match the specified name i.e. attr
XmlNodeList nodelist = doc.GetElementsByTagName("attr");
// Add the logon parameters to the attribute nodes of the document
foreach (XmlNode node in nodelist)
{
if (node.Attributes["name"].Value == "userName")
node.InnerText = userName;
if (node.Attributes["name"].Value == "password")
node.InnerText = password;
if (node.Attributes["name"].Value == "auth")
node.InnerText = auth;
}
//Making POST request to /logon/long to receive a logon token
WebRequest myWebRequest1 = WebRequest.Create(LogonURI);
myWebRequest1.ContentType = "application/xml";
myWebRequest1.Method = "POST";
byte[] reqBodyBytes = System.Text.Encoding.Default.GetBytes(doc.OuterXml);
Stream reqStream = myWebRequest1.GetRequestStream();
reqStream.Write(reqBodyBytes, 0, reqBodyBytes.Length);
reqStream.Close();
try
{
WebResponse myWebResponse1 = myWebRequest1.GetResponse();
//Finding the value of the X-SAP-LogonToken
rwsLogonToken = myWebResponse1.Headers["X-SAP-LogonToken"].ToString();
//Making GET request to /infostore to retrieve the contents of top level of BI Platform repository.
HttpWebRequest myWebRequest2 = (HttpWebRequest)WebRequest.Create(InfoStoreURI);
myWebRequest2.Accept = "application/pdf";
myWebRequest2.Headers.Add("X-SAP-LogonToken", rwsLogonToken);
myWebRequest2.Method = "GET";
WebResponse myWebResponse2 = myWebRequest2.GetResponse();
///WebResponse myWebResponse2 = myWebRequest2.GetResponse();
// FileStream stream = new FileStream(Request.PhysicalApplicationPath + "output.pdf", FileMode.Create);
FileStream writeStream = new FileStream(@"D:\" + "output1.pdf", FileMode.Create, FileAccess.Write);
// myWebResponse2.GetResponseStream().CopyTo(stream);
//stream.Close();
string result;
if (ReadWriteStream(myWebResponse2.GetResponseStream(), writeStream))
{
//Code to insert data in to database goes here
// bool rptArchived = rptSubscrition.AddArchivedReport(userName, reportID, reportName, archivedDate, reportDescription, archivedReportPath);
result = "Report has been archived.";
}
else
{
result = "Unable to archive the report. Please contact administrator.";
}
}
catch (WebException ex)
{
//error while accessing the network through a pluggable protocol
// Response.Write("<b>" + ex.Message + "</b>");
}
catch (Exception ex)
{
//generic error
// Response.Write("<b>" + ex.Message + "</b>");
}
}
catch (WebException ex)
{
//error while accessing the network through a pluggable protocol
// Response.Write("<b>" + ex.Message + "</b>");
}
catch (Exception ex)
{
//generic error
// Response.Write("<b>" + ex.Message + "</b>");
}
}
private static bool ReadWriteStream(Stream readStream, Stream writeStream)
{
int Length = 256;
Byte[] buffer = new Byte[Length];
try
{
int bytesRead = readStream.Read(buffer, 0, Length);
// write the required bytes
while (bytesRead > 0)
{
writeStream.Write(buffer, 0, bytesRead);
bytesRead = readStream.Read(buffer, 0, Length);
}
readStream.Close();
writeStream.Close();
return true;
}
catch (Exception)
{
return false;
}
}
we also made change in server by referring to the discussion link "http://scn.sap.com/docs/DOC-46367" made the fallowing changes in the BO server
- Copy XercesImpl.jar from C:\Program Files (x86)\SAP BusinessObjects\tomcat\webapps\BOE\WEB-INF\eclipse\plugins\webpath.PlatformServices\web\WEB-INF\lib to C:\Program Files (x86)\SAP BusinessObjects\tomcat\webapps\AdminTools\WEB-INF\lib
- We found that “XercesImpl.jar” is not present in the path “C:\Program Files (x86)\SAP BusinessObjects\tomcat\webapps\AdminTools\WEB-INF\lib”
The report still downloading without data.
We are using BO 4.1 and service pack 5
Any help in this will appreciated
Thanks,
Sabir
SecWinAD authentication using the REST SDK...
Hi,
Trying out the REST sdk (with 4.1) and have hit a problem from the start. I guess i'm missing some config somewhere but here's the issue...
I create an enterprise user in the CMC in the everyone group...
Using POSTMAN in Chrome I hit the logon service with...
http://server:6405/biprws/logon/long
POST
Accept application/json
Content-Type application/json
{
"userName": "testREST",
"password": "testREST",
"auth": "SecEnterprise"
}
if works and returns "logonToken"...
I then try as an Active Diretcory user (the one I used to create the test enterprise account who is a member of administrators..me.) CMC logon is fine using AD and the standard /BI logon is configured for SSO and also logs in fine.
so I go with...
{
"userName": "JBRAKER"
"password": "myADpassword"
"auth": "SecWinAD"
}
It returns error "FWM 00006" with Active Diretcory Authentication failed to log you on.
I've tried using @domain and changing server url to FQDN but no joy.
Any ideas what i'm missing? As mentioned the server is setup for AD SSO but i see nothing to configure for the REST services apart from the URL in the CMC.
Thanks!
Jeremy
How to move document to another folder using Rest API?
How to move document to another folder using Restful API?
BO XI 4.1 adsso logon without passing credentials
Calling a webi report chart into other applications
Hello,
Is it possible to call a webi report chart (not the whole report) from a external application. I know we can call a webi report from other applications but our requirement is to call only specific report parts like line graph or charts from a webi report. Is this possible using Java SDk or RESTful SDK? If so can you please let me know how to achieve this? Thanks!
RESTful Web Services SDK - Published Resources (June 2013)
Purpose
The RESTful Web Services SDK SCN Space launched on June 24, 2013. This Document, provides a simple look up of all resources available to developers at this time.
Overview
Searching the SCN for resources should always be the 1st step in getting help on any product. The following should be of help with the how to / when to / why to search:
My tips on searching knowledge content the SCN
Please note that content on SCN is freely available. Knowledge Base Articles (KBAs) for RESTful Web Services SDK are only available through the SAP Service Market Place (SMP) and an S user ID is required.
Listing of Available Resources (June 2013)
Pleae note that this document has been created to list available content at launch of the RESTful Web Services SDK SCN Space. The document will not be updated, nor is a new document planned as using the seach capabilities of the SCN should suffice.
Jive Documents |
---|
RESTful Web Services FAQ |
Programming RESTful SDK in Java with Eclipse – Getting Started |
SAP BusinessObjects BI SDK |
Related Content