cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to access personal docs via Raylight

Joe_Peters
Active Contributor
0 Kudos

While connected to REST as Administrator, I can get a successful result from:

/biprws/infostore/78602,

but attempting to open the report with the following call produces a 404:

/biprws/raylight/v1/documents/78602

I can open reports in Public Folders, as well as personal reports belonging to Administrator, but I can not open other users' reports.

This is the detail of the error:


<error>

  <error_code>WSR 00400</error_code>

  <message>The resource of type "Document" with identifier "78602" does not exist.</message>

  <stack_trace>com.sap.webi.raylight.RaylightException: The resource of type "Document" with identifier "78602" does not exist.&#13;

at com.sap.webi.raylight.context.Messenger.resourceNotFound(Messenger.java:122)&#13;

at com.sap.webi.raylight.actions.document.AbstractGetDocumentAction.getDocument(AbstractGetDocumentAction.java:36)&#13;

at com.sap.webi.raylight.actions.document.GetDocumentByIdAction.execute(GetDocumentByIdAction.java:60)&#13;

at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)&#13;

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&#13;

at java.lang.reflect.Method.invoke(Method.java:597)&#13;

at com.sap.webi.raylight.actions.ActionInvoker.invokeWith(ActionInvoker.java:123)&#13;

at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:105)&#13;

at com.sap.webi.raylight.RaylightServiceDocument.getDocument(RaylightServiceDocument.java:49)&#13;

at sun.reflect.GeneratedMethodAccessor299.invoke(Unknown Source)&#13;

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&#13;

at java.lang.reflect.Method.invoke(Method.java:597)&#13;

at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)&#13;

at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)&#13;

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:164)&#13;

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)&#13;

at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)&#13;

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)&#13;

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)&#13;

at java.util.concurrent.FutureTask.run(FutureTask.java:138)&#13;

at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)&#13;

at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)&#13;

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)&#13;

at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)&#13;

at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)&#13;

at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)&#13;

at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)&#13;

at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletController.java:93)&#13;

at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)&#13;

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)&#13;

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)&#13;

at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)&#13;

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)&#13;

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)&#13;

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#13;

at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)&#13;

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)&#13;

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#13;

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)&#13;

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)&#13;

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)&#13;

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)&#13;

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)&#13;

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)&#13;

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)&#13;

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)&#13;

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)&#13;

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)&#13;

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)&#13;

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)&#13;

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)&#13;

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&#13;

at java.lang.Thread.run(Thread.java:763)&#13;

</stack_trace>

</error>

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Joe,

I gave a quick try on the same description & found the same behaviour on BI 4.1 SP 5 patch.

By observing this behaviour, we can simply made a conclusion that Raylight REST SDKs is still not mature enough to access the object (in terms of Web intelligence kind of object) from the other users Personal Folders, though we are using Administrator account for login. However I believe the same is possible thorough REBEAN SDKs, as I am able to run the query using admin login & get all the Webi infoobject property  by the SI_ID  which is present other users personal folder through query builder.

REBEAN Java SDKs are still partially functional till the latest patch of the BI product version. Please check the Developer Guide, API Reference Guide & OMD of BI 4.x REBEAN SDKs.

I recommend you to raise this query at SAP's IDEAS portal, as Raylight Webi SDKs are still in developing phase & may be this enhancement will be come in future releases. It seems to me that this is not a product defect/bug because, we can only able to list the webi documents which is present in Public Folder through Webi REST SDKs (if you are using the Admin account). You can validate the behaviour in your environment by listing all the documents using Raylight REST SDKs & check whether are you able to see that Webi document in this list.

When I tried the same at my end, I am not able to pull the webi documents which is present in other users personal folders.

Can you please validate the results at your environment?

Thanks,

Shailendra

eric_festinger
Contributor
0 Kudos

hello Shailendra and Joe,

Can you open through the UI (BI Launch Pad) documents from other people's personal folders?

Regards,

eric festinger

Joe_Peters
Active Contributor
0 Kudos

I am trying to convert a working script from XI3.  It currently uses REBean, and I would love to just leave it as-is.  However, the DataSource interface in REBean no longer works in BI4, so I am forced to use REST.

So now it appears that there is no way for this to work in BI4.

Joe_Peters
Active Contributor
0 Kudos

From CMC, yes.  Not from Launchpad.

former_member197386
Active Contributor
0 Kudos

Hi Joe,

We're investigating this issue closely and will provide you some feedbacks asap.

Best regards,

Anthony

Joe_Peters
Active Contributor
0 Kudos

Thank you, Anthony.  Much appreciated.

former_member197386
Active Contributor
0 Kudos

Does this call works better for instance?

/biprws/raylight/v1/documents/78602/reports


Best regards,

Anthony

Joe_Peters
Active Contributor
0 Kudos

Yes, /reports, /dataproviders, and /properties work successfully.

Joe_Peters
Active Contributor
0 Kudos

Anthony, do you have any update for me?

former_member197386
Active Contributor
0 Kudos

Hi Joe,

Recently, Bogdan submitted an upgrade in this area and I think it will now allow Administrator to see documents from other users' inboxes.

Regards,

Anthony

Joe_Peters
Active Contributor
0 Kudos

Thank you, Anthony, but these reports are in Favorites, not Inboxes.

Assuming the fix resolves both, do you know which patch it's scheduled for?

former_member197386
Active Contributor
0 Kudos

I will check that

Anthony

former_member197386
Active Contributor
0 Kudos

hi again Joe,

I just checked with Favorites folders and it is OK too with last fix. It will be rolled out in the next 4.1 SP5 patch (probably version 5 or 6).

Thanks,

Anthony

Joe_Peters
Active Contributor
0 Kudos

Anthony, do you know if this has been fixed?

Also, is there any workaround for the problem?

daniel_paulsen
Active Contributor
0 Kudos

Hi Joe,

Yes this has been fixed in SP05 Patch 6 and SP06

I tested and validated it worked on SP06

Here's the Note for the fix: 

https://css.wdf.sap.corp/sap/support/notes/2159589

Dan

Joe_Peters
Active Contributor
0 Kudos

Thank you, Dan.

Joe_Peters
Active Contributor
0 Kudos

Dan, I installed SP05 Patch 7 last night.

This seems to fix the problem with opening other users' personal docs, but I am continuing to have the same problem when attempting to open report instances (even in public folders).  This works:

GET /biprws/raylight/v1/documents/1366291/reports

but this:

GET /biprws/raylight/v1/documents/1366291

produces a 404 with the following stack:

<error>

    <error_code>WSR 00400</error_code>

    <message>The resource of type "Document" with identifier "1366291" does not exist.</message>

    <stack_trace>com.sap.webi.raylight.RaylightException: The resource of type "Document" with identifier "1366291" does not exist.&#13;

    at com.sap.webi.raylight.context.Messenger.resourceNotFound(Messenger.java:122)&#13;

    at com.sap.webi.raylight.actions.document.AbstractGetDocumentAction.getDocument(AbstractGetDocumentAction.java:37)&#13;

    at com.sap.webi.raylight.actions.document.GetDocumentByIdAction.execute(GetDocumentByIdAction.java:60)&#13;

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#13;

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&#13;

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&#13;

    at java.lang.reflect.Method.invoke(Method.java:597)&#13;

    at com.sap.webi.raylight.actions.ActionInvoker.invokeWith(ActionInvoker.java:123)&#13;

    at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:105)&#13;

    at com.sap.webi.raylight.RaylightServiceDocument.getDocument(RaylightServiceDocument.java:49)&#13;

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#13;

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&#13;

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&#13;

    at java.lang.reflect.Method.invoke(Method.java:597)&#13;

    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)&#13;

    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:164)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)&#13;

    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)&#13;

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)&#13;

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)&#13;

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)&#13;

    at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)&#13;

    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)&#13;

    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)&#13;

    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)&#13;

    at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)&#13;

    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)&#13;

    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)&#13;

    at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletController.java:93)&#13;

    at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)&#13;

    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)&#13;

    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)&#13;

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)&#13;

    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#13;

    at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#13;

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)&#13;

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)&#13;

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)&#13;

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)&#13;

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)&#13;

    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)&#13;

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)&#13;

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)&#13;

    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)&#13;

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)&#13;

    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)&#13;

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)&#13;

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)&#13;

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&#13;

    at java.lang.Thread.run(Thread.java:763)&#13;

</stack_trace>

</error>

daniel_paulsen
Active Contributor
0 Kudos

Hi Joe,

I'm glad it worked for you.  as for returning the Instance details, that has been corrected with the following note:

https://support.wdf.sap.corp/sap/support/notes/0002189141

Unfortunately, you'll have to wait for SP07 to get the ability to return the instance details.

Timelines are posted here:

Dan

Joe_Peters
Active Contributor
0 Kudos

Thanks for the quick reply, but that's really going to be a problem for me.  Is there any workaround?

eric_festinger
Contributor
0 Kudos

hi Joe

Dan's link to the SAP note is OK, but this issue has been fixed down to the SP5 Patch branch too.

Hence it should be included in SP5 patch 8.

eric

Joe_Peters
Active Contributor
0 Kudos

Thank you, that's good news.  But I have an immediate need -- is there any workaround in the meantime?

eric_festinger
Contributor
0 Kudos

I didn't check if it works or not, but as a temporary solution, can you try copying the instance, then work on the copy?

eric

Joe_Peters
Active Contributor
0 Kudos

That just might work.  I'll try it.

Joe_Peters
Active Contributor
0 Kudos

I've found that although I can access other users' personal documents, I can't access any that are in the ~WebIntelligence folder.  Is this intentional?

daniel_paulsen
Active Contributor
0 Kudos

Hi Joe,

I'm not sure if its intentional as far as not being able to open/access a report from another user's temp folder with the raylight APIs, but you can at least list the contents of the folder if you know the folderID. 

GET  /biprws/infostore/<folderID>/children

Dan

eric_festinger
Contributor
0 Kudos

hi Joe,

As this thread has been started a long time ago, could you please tell which version you are using now, and if you can access that ~WebIntelligence folder through BILP (or /biprws/infostore as suggested Dan) with the same user?

Thanks,

eric

Joe_Peters
Active Contributor
0 Kudos

Whoops - sorry for the late reply.

Yes, I can see the document list via /biprws/infostore/<parentid>, and I can see the document properties via /biprws/infostore/<doc id>, but I get the error if I try to open it via /biprws/raylight/v1/documents/<doc id>

daniel_paulsen
Active Contributor
0 Kudos

Hi Joe,

I believe it is intentional that raylight does not return the temp documents, otherwise they would all show up in the   /raylight/v1/documents  call which would result in confusing results as you would not know which document was a temp document and which was the true template document. 

You wouldn't want to return a document which was a backup of a doc being edited and make changes to it.

Dan

Answers (1)

Answers (1)

Former Member
0 Kudos

Hello Joe

Which Webi REST SDK version are running ?

Best Regards,

Bogdan

Joe_Peters
Active Contributor
0 Kudos

It's BI4.1 SP05.