cancel
Showing results for 
Search instead for 
Did you mean: 

Purging doesn't work always

Former Member
0 Kudos

Hi,

I am having a strange behavior where purging do not work correctly every time.

(1) PUT = http://<Servername>:6405/biprws/raylight/v1/documents/33280/dataproviders/DP0?purge=true

The above URL doesn't work, so i tried like below and it worked.

(2) PUT = http://<Servername>:6405/biprws/raylight/v1/documents/33280?purge=true

When i tried the same above URL (2) for another report it did not work. To make it work i have to first execute URL (1) and then URL (2).

Not clear what i should do? Do i have to execute both the URLs?

Appreciate your help.

Thanks,

Arun

Accepted Solutions (1)

Accepted Solutions (1)

eric_festinger
Contributor
0 Kudos

hello Arun

1. Can you please detail your "The above URL doesn't work" for "PUT .../dataproviders/{dpId}?purge=true" ?

2. "?purge" is not implemented for "PUT .../documents/{docId}", hence the result is exactly the same as if you didn't provide the extra URL parameter "?purge=true".

3. What version are you running? ("GET ../raylight/v1/about")

Regards,

eric

Former Member
0 Kudos

Hi Eric,

Thanks for the reply.

1) I am trying to purge the report using a JSP code. When i am using this PUT .../dataproviders/{dpId}?purge=true" ? the report doesn't get purged.

2) What do you suggest? Which one should i go for, first or second one - 

PUT = http://<Servername>:6405/biprws/raylight/v1/documents/33280/dataproviders/DP0?purge=true

PUT = http://<Servername>:6405/biprws/raylight/v1/documents/33280?purge=true

3) Will check and let you know.

Thanks,

Arun

daniel_paulsen
Active Contributor
0 Kudos

Hi Arun,

When you purge the dataprovider (PUT  ../documents/33280/dataproviders/DP0?purge=true ), How are you determining that it does not work?  Does the request fail with an error or are you opening the document from BI Launchpad to see if it worked?

I'm guessing that you are opening the report in BI Launchpad based on your description because the second method (PUT .../documents/33280 ) will save the changes back to the report.  As Eric mentioned, the "?purge=true" will simply be ignored on this call since it is not valid.

Any changes you make to a document using the REST APIs, will not be visible when opening the document in Launchpad until the changes are saved back to the CMS repository.  This would explain the scenario you described in your initial post.

PUT  /documents/33280/dataproviders/DP0?purge=true will purge the dataprovider, but this is a cached copy of the report, so the original document template remains unchanged until you save your changes back to the CMS with the second call.

Dan

Former Member
0 Kudos

Hi Dan,

You are right, that explains my scenario. I was opening in launchpad and see the report not getting purged.

For saving do i need to use another PUT statement? If so, could you tell what the URL would be?

Thanks,
Arun

daniel_paulsen
Active Contributor
0 Kudos

To save the document back to the CMS, the API is:

PUT .../documents/<docId>

If you do not put any body into the request, the document is saved and still remains open in the REST session.  If you have not made any changes to the document, then its state is still "Original" and nothing gets modified.  What the PUT method does depends on the state of the document.  You can retrieve its state with GET .../documents/<docId>.

A document can be in one of 3 states:  Unused: (it has not yet been opened from the server)

                                                          Original: (it has been opened but not modified)

                                                          Modified: (it has been opened and changed)

For a detailed explanation of managing the state of a document, see "Updating the State of a Document" in the documentation (section 8.1.6)

Dan

Former Member
0 Kudos

Hi Dan,

One question, for Multiple reports in a webi document the dataprovider id is DP1 and for single report in a document it is DP0? Is this a correct statement?

Thanks,

Arun

daniel_paulsen
Active Contributor
0 Kudos

Hi Arun,

No, that is not correct.  A document can have many reports with only a single dataprovider.  The Dataprovider is added at the document level.

DP0, DP1, DP2 etc are just identifiers of the dataprovider(s) in a webi document.  when you create a webi document, it adds DP0.  If you add a second dataprovider or change dataproviders, the new one will be DP1. 

Adding a dataprovider means the report will now return two dataproviders, DP0 and DP1.

In a document with only one dataprovider, DP0, the identifier will change to DP1 if you change dataproviders in the webi document and DP0 will no longer exist.

The DPid will continue to increment as dataproviders are added or changed, but it has nothing to do with the number of reports that exist in the document.

Dan

Former Member
0 Kudos

Thanks Dan.

Don't have much experience in RESTFUL, but going by what i have done restful seems much more complicated than JAVA SDK. There is no straight forward solution that can be implemented for business users. SAP should have some thing like the earlier document.purge() instead of going through DP0, DP1, <state> etc. Being complicated is the exact reason why Xcelsius dashboard is getting replaced by Tableau and Qlikview, soon some one will come up with an alternative for BO as well.

Answers (0)