cancel
Showing results for 
Search instead for 
Did you mean: 

BI Data Widget connection problem

Former Member
0 Kudos

Hello,

I've been playing around with this widget for a little while now and haven't been able to make it work, I need some help connecting to the BI Server and consuming the Web Service QUERY_VIEW_DATA.

The status is that the Web Service is working correctly when I test it on the Web Service administrator, I'm getting the data from the query correctly, but the Widget is always showing the offline icon and is not retrieving any data.

Here's what I've done so far:

- Read and follow the steps on the guide plubished by Prakash Darji on his BI Data Widget Weblog. (https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f07909b9-f397-2910-f1bf-f4a6ca2e017c)

- I already have the webservice configured and published. I can run it on the Web Service administrator of the BI Server. I test the web service and query it succesfully sending the Infopriver and Query parameters.

- I had to assign SAP_ALL role to the user I was testing with because I was getting permission error from the web service. I could execute it though.

- I downloaded the SOAPUI application and tried to connect to the web service. I'm able to execute it but cannot find a way to send the Infoprovider and Query parameters. I'm using the url: "http://"+preferences.Host.value +"/sap/bc/srt/rfc/sap/QUERY_VIEW_DATA?sap-client=" preferences.Client.value"%26wsdl=1.1""%26sap-user="preferences.User.value"%26sap-password="preferences.Passwd.value;

- I downloaded and installed the SAP Widget Foundation. It's running in the background.

- I'm setting the parameters on the Widget like this:

  • General tab:

+User ID: <my BI user name>

+Password: <my BI user password>

  • Updating tab:

+Enable automatic updates (checked)

+Update Interval: 30

+offline Demo Mode (Unchecked)

+Demo data set: 01

*Reporting tab:

+Protocol: http

+ABAP Host: server.mycompany.com.co: 8000

+JAVA Host: server.mycompany.com.co: 50000

+Language: ES

+ABAP client: 040

+Infocube: <cube>

+Query: <query>

+View Only (Unchecked)

+view: <empty>

+Suppress Repeated Values (Unchecked)

+Secure Mode (Unchecked)

+Max. Height: 300

Thank you very much for all your help.

Regards,

Juan D. Gutierrez

Edited by: Juan David Gutierrez on Feb 27, 2009 2:34 PM

Accepted Solutions (0)

Answers (7)

Answers (7)

Former Member
0 Kudos

I am having a similiar problem, however I am getting the following errors when I execute my widget. When i execute the below WSDL it works fine through the portal. When I execute the soap string through an external source it returns the data.

I feel like I'm very close to getting it working, but i'm struggling to understand the particular error and next steps.

Request status:500

Request statusText:Internal Server Error.

http://mybiserver:port/sap/bc/srt/rfc/sap/QUERY_VIEW_DATA?sap-client=050&wsdl=1.1

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">

<soapenv:Header/>

<soapenv:Body>

<urn:GetQueryViewData>

<!Optional:>

<Infoprovider>XBI_C001</Infoprovider>

<!Optional:>

<Parameter>

<!Zero or more repetitions:>

<item>

<Name></Name>

<Value></Value>

</item>

</Parameter>

<!Optional:>

<Query>XBI_C001_Q001</Query>

<!Optional:>

<ViewId></ViewId>

</urn:GetQueryViewData>

</soapenv:Body>

</soapenv:Envelope>

Former Member
0 Kudos

Thanks Prakash. I was able to manage with the Server settings and Proxy. Now i am able to load the widget but it returns a error message Query with mandatory values is not supported by widgets. Is there a way to avoid this error ? Or its only for queries where we dont have mandatory values.

Thanks

Durai Ram

Former Member
0 Kudos

Hi Prakash,

I have gone thorugh the document and tried to utilise widget Mean while i have some doubts could you clarify the same.

1. Can we download the latest version 2.8 and when we change the preferences will it pull the data from the BI server

2. Could you please update the relevant files used in the latest version similar to the version 1.1 which will help us in analysing and if there is a specific requirement from customer we can go ahead and make neccesary changes.

3.I have completed to configuration in the BI part and when i try to test the web service from WSADMIN i am getting a error message as Page cannot be displayed.

Could you please help me in understanding.

Thanks.

Former Member
0 Kudos

1. Can we download the latest version 2.8 and when we change the preferences will it pull the data from the BI server

[prakash]: Yes.

2. Could you please update the relevant files used in the latest version similar to the version 1.1 which will help us in analysing and if there is a specific requirement from customer we can go ahead and make neccesary changes.

[prakash]: widget is open source. read yahoo's page on this for information on decompiling the widget to its source code.

3.I have completed to configuration in the BI part and when i try to test the web service from WSADMIN i am getting a error message as Page cannot be displayed.

[prakash]: this is most likely incorrect BI configuration.

Former Member
0 Kudos

VERY IMPORTANT

Do NOT mess with the soapRouter variable, it works just fine as it is!

I just solved my problem... I guess... (at least I got some data on my BI Widget!!!)

I set the Yahoo Widget so it wouldn't use any proxy, that way I don't get the error I was getting, and set the soapRouter variable to work just as it was before I Played around with it.

I still have some Qs and suggestions:

1. Why does the variable action have a SAP URL?

2. Why is the variable operation never used in the global_include.js script?

3. I think the error handling is missing some statement were every other case (that's not already checked) is reported to the user on an alert window. It would have saved me about 6 hours of fooling around if the request error message would've been displayed easily. I don't complain too much though, because I learned a LOT .

4. I hope this experience helps some others!!

5. Shouldn't I be able to award some points to myself??? I just think that a look in the mirror and a "Well done" doesn't cut it!

Ok, take good care you all!

JD

Former Member
0 Kudos

Hey Juan,

Sorry I didn't see this thread earlier. Been quite busy as of late.

1. Why does the variable action have a SAP URL?

[PRAKASH]: Make sure you user the latest version 2.80. The how-to guide was an old scenario. The newest version has better error handling. The variable action is an SAP URL because this is a generic SAP web service that allows you to access any BI query.

2. Why is the variable operation never used in the global_include.js script?

[PRAKASH]: I depracated it as it is unneeded in the latest version. I used to use it way back when.

3. I think the error handling is missing some statement were every other case (that's not already checked) is reported to the user on an alert window. It would have saved me about 6 hours of fooling around if the request error message would've been displayed easily. I don't complain too much though, because I learned a LOT .

[PRAKASH]: If you send me your code, I can enhance the error handling even more.

5. Shouldn't I be able to award some points to myself??? I just think that a look in the mirror and a "Well done" doesn't cut it!

[PRAKASH]: Agreed, you should be able to get points for this.... Good work...

Former Member
0 Kudos

Thank you very much for your comments Prakash!!

I'll take a good look at the javascript code and post any suggestions so you can use them.

Regards,

JD

Former Member
0 Kudos

Hey everyone! I did the modification of the URL as I mentioned before and I got to debug mode in the Widget in order to try and find out what's happening, and here's what I found:


function getXML() {
...
request = callWebService();		
print("Request Status = " + request.status);
//added by JDG
print("Request Message = "+ request.statusText);
...
}

and here's what the debug windows shows:

Request Status = 502

Request Message = Proxy Error ( The ISA Server denied the specified Uniform Resource Locator (URL). )

So I'm guessing the error has something to do with my network configuration and not the widget itself. I'll try to digg a little more...

Update:

Tried with the original soapRouter variable and I get the same error.

Edited by: Juan David Gutierrez on Feb 27, 2009 12:06 PM

Former Member
0 Kudos

Ok... I think I'm getting somewhere now... the problem is that I'm so noob with webservices that I really don't know if what I just found is helpful or not.

I unziped the source code for the Widget, and started digging around the javascript code it has. I found a line (#25 to me precise) that says:


soapRouter = preferences.protocol.value + "://" + 
preferences.ABAP_host.value + 
"/sap/bc/soap/rfc";
soapRouter = soapRouter + 
"?sap-client=" + preferences.client.value+ 
"&sap-language="+ preferences.language.value;

Which results on a URL like http://server.mycompany.com.co:8000/sap/bc/soap/rfc?sap-client=040&sap-language=ES

But on the test I did with soapUI I used a different URL:

http://server.mycompany.com.co:8000/sap/bc/srt/rfc/sap/QUERY_VIEW_DATA?sap-client=040

I can see a HUGE difference in the two URLs but I'm not sure that the js is wrong. Can anyone give a hint?

Other line that really confussed me was #19:


var action = "http://www.sap.com/RRW3_GET_QUERY_VIEW_DATA";
var operation = "RRW3_GET_QUERY_VIEW_DATA";

This action variable is then used in line #46:


request.setRequestHeader( "SOAPAction", action );

I guess since we are only setting some parameter in the request header it should me ok... but I still have my doubts... and even more strange, the operation variable is never used in the js code.

I'll try to modify the js and repackage the widget so I can test my theories... I'll post any updates soon.

Former Member
0 Kudos

One short update.

I created a WSDL connection to the server using soapUI and I'm able to connect to the webservice and retrieve the query I want... I still get the offline icon on the widget thought...

Here's the configuration I used on soapUI:

WSDL URL: http://server.mycompany.com.co:8000/sap/bc/srt/rfc/sap/QUERY_VIEW_DATA?sap-client=040&wsdl=1.1

Binding: query_view_dataSoapBinding

Operations: GetQueryViewData

Service End Point: http://server.mycompany.com.co:8000/sap/bc/srt/rfc/sap/QUERY_VIEW_DATA?sap-client=040

User: <my BI username>

Pasword: <my BI user's pasword>

XML:


<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:GetQueryViewData>
         <!--Optional:-->
         <Infoprovider>ZPS_CM01</Infoprovider>
         <!--Optional:-->
         <Query>Z70PSCM01_QJDG</Query>
      </urn:GetQueryViewData>
   </soapenv:Body>
</soapenv:Envelope>