Oracle Transactional Business Intelligence

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

OTBI data model thought (BI Publisher) web service error

Accepted answer
713
Views
11
Comments

We are trying to fetch the data displayed in an OTBI data model through an web service for further integrations.

 We use BI Publisher web services -> ReportServicesSoapBinding -> GetReportSampleData ->Requests1.

But this gives us following error:

Receiving respons HTTP/1.1 Connected / tunnel to target created / Sending request POST / Receiving response HTTP : Internal Server error

PublicReportsServiceImpl::generateReportsSampleData for reportsAbsolutePath [] Failure: Due to oracle.xdo.servlet.CreateException: report definition not found

Any idea what could cause this ?

Thank you.

Welcome!

It looks like you're new here. Sign in or register to get started.

Best Answers

  • Rank 5 - Community Champion
    edited May 17, 2023 11:45AM Answer ✓

    Hi Maria,

    Can you walk me through what webservice you're using? (full URL without your pod name will suffice).

    The method you're calling I'm assuming takes the following parameters; reportAbsolutePath, userID, password. However, you're calling the getReportSampleData() method, which will only return the sample data that is stored on the data model post-parameters (i.e. you create a data model, view the data and click 'save sample data' on the BI Publisher Data Model editor). This is pretty useless unless you're looking to seed an external integration with metadata or programmatically retrieving sample XML to build templates.

    The method you want is runReport(). runReport() takes in three parameters: reportRequest, userID, password. You'll need to build the reportRequest definition yourself to pass into the method, the details of which can be found here:

    The easiest way to get the information you need dynamically is to first run the getReportDefinition() method, which takes in three parameters: reportAbsolutePath, userID, password. This will output the required data needed by the reportRequest definition which gets passed into the runReport() method. Now, it should also be noted that you can either return the raw template file with data (e.g. pdf, csv, excel etc.) and manipulate it downstream, or you can return the reportData, which is base64 encoded and will need to be decoded to use the data. Both options are explained in the link above, and if you scroll down slightly there will be another section for ReportResponse.

    Thanks

    Aaron

  • Rank 5 - Community Champion
    Answer ✓

    Hi Maria,

    Certainly - first of all, are you authenticated? On the request page for SoapUI, in the bottom left-hand corner, there will be a little padlock icon followed by the word 'Auth'. Click on that, then enter your credentials using the 'Basic' authentication method (username + password).

    Secondly, there's an issue with your absolute path; it's currently attempting to read the entire url for the report path vs the absolute.

    Absolute Path:

    /Custom/Human Capital Management/Integrations/PAY101/PAY101Report.xdo

    Notice we omit the URL, and instead just include the path on BI to the report itself (including the report format, which will most likely be .xdo).

    Hopefully you should be able to get a response from the server now.

    Thanks

    Aaron

  • Rank 5 - Community Champion
    Answer ✓

    @maria.stanciu - You probably already know this info....

    It might be related to this known issue with OTBI:

    https://docs.oracle.com/en/cloud/saas/otbi/otbi-known-issues/index.html#TBIKI-GUID-CA33B1C7-BECE-47F6-8675-6F06F9AC5A67

    Also, Oracle changed the WSDL version from 22A onward. If you haven't already done so, you'll probably want to update your SOAP code to use the v12 WSDL. We had lots of headaches and broken method calls after the 22A update until we started using v12. The official documentation for OBIEE 12.2.1.4 (upon which OTBI 22A+ is based) is still wrong and says to use v6 or v7...those versions no longer work (see Release Notes link below).

    NOTE: The methods in v12 are changed from v6 and v7. Pay close attention to the order of parameters in your method calls since Oracle has rearranged them slightly (and added new parameters).

    https://docs.oracle.com/middleware/bi12214/biee/BIERN/toc.htm#GUID-774B49C5-D311-4471-AB1B-90C6C93B8C69

«1

Answers

  • Rank 5 - Community Champion

    This error typically means that the user does not have permission to the report.

    Best way to check this is log in via the UI with the user and ensure that user can navigate down to the report as well as edit it.

  • Rank 3 - Community Apprentice

    Hi Noelle,


    Thank you.

    Yes, the user does have access to the report and can navigate to it and edit it even.

  • Rank 5 - Community Champion

    Hi Maria,

    Have you tried clearing the cache and retest?

    Administration-> Manage publisher -> Click "Clear Object Cache" and 'Clear Metadata Cache'.

    Regards,

    Raghavan P

  • Rank 3 - Community Apprentice

    Hi Raghavan,

    Thank you for your answer.

    I have just tried the action you suggested.

    We are not getting an error but the response file we get from the BI Publisher is empty (instead of containing the data from the data model).

    Any suggestions on what could be the possible causes ?

    Thank you.

    Best regards,

    Maria

  • Rank 3 - Community Apprentice

    Hi Aaron,

    Thank you for your reply, it gives us more insights on a possible solution.

    We have started to implement it and we got to the first step: call the getReportDefinition() method. We are using SoapUI to test this and we provided the absolutePath to the method (attached the print screen).

    The next step is to give the userid and password but for this we need the template of the SOAP message to know where to fill in this information.

    Is this something you can help us with please?

    Thank you.

    Regards,

    Maria

  • Rank 3 - Community Apprentice

    We have tried to add :

     <pub:userID>userid</pub:userID>

     <pub:password>******</pub:password>

    to the soap message but we are still getting the 401 Unauthorized error message

  • Rank 3 - Community Apprentice

    Hi @Aaron Leggett

    That worked like a charm, we are now getting the response from the server containing the report data.

    Thank you for your reply , it solved our issue.


    @Chris Pfeifer , I'll have a close look at your suggestions and keep them in mind.

    Thank you very much for the input !

Welcome!

It looks like you're new here. Sign in or register to get started.