The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hello,
I have an application with a SOAP wb and I want to create Dashboards using Power BI Desktop.
How do I get data using the SOAP wb ?
I know that Power BI has a REST API and it says that it helps you push data into power bi resource but in my case I have an external resource I have to connect to.
Thank you for your help.
Best regards.
Manal
I am not using #022 in soap UI and also I made this by review previous posts and they are not using this.
As @Anonymous mentions, you need to replace the quote marks " from the SOAP UI envelope to #(0022) like so:
<?xml version="1.0"?>
-<soapenv:Envelope xmlns:soap=#(0022)http://soap.severa.com/#(0022) xmlns:ns1=#(0022)http://soap.severa.com/#(0022) xmlns:soapenv=#(0022)http://schemas.xmlsoap.org/soap/envelope/#(0022)>-<soapenv:Header>
<ns1:WebServicePassword>Api Token Key</ns1:WebServicePassword>
</soapenv:Header>-
<soapenv:Body>-
<soap:GetHourEntriesByDate>
<soap:startdate>2020-04-12T09:00:00</soap:startdate>
<!--Optional:--></soap:GetHourEntriesByDate>
</soapenv:Body>
</soapenv:Envelope>
If you can connect via SOAP UI and not Power BI, you're doing something wrong in the PQ (advanced editor)
Like a few of the others, I am also having an issue where I just end up with this
and I'm not sure how to troubleshoot. Can anyone assist?
let
SourceURL = "http://soap.proofhq.com/19_2_6/soap.wsdl",
options = [ #"Accept-Encoding"= "gzip,deflate",
// SOAPAction="",
#"Content-Type"="text/xml;charset=UTF-8",
#"Connection"="Keep-Alive"
],
WebContent = Web.Contents(SourceURL,
// Content options in Web.Contents() requires you to authenticate anonymously !
[Content=Text.ToBinary("
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv=#(0022)http://schemas.xmlsoap.org/soap/envelope/#(0022) xmlns:soap=#(0022)https://soap.proofhq.com/#(0022)>
<soapenv:Header/>
<soapenv:Body>
<soap:doLogin>
<Login>me@mydomain.com</Login>
<Password>jy@%MZdI#O7gikwl23dKI@IG9!5W</Password>
<Subdomain>mysubdomain</Subdomain>
</soap:doLogin>
</soapenv:Body>
</soapenv:Envelope>
"),
Headers=options]) ,
XmlContent = Xml.Tables(WebContent)
in
XmlContent
Hi
I'm facing the same issue. Could you please share the solution?
Hi
I'm facing the same issue. Could you please share the solution?
Good Morning.
What should your output be?
In the ones I did in the past, I always used XML.Tables ....
let
Source = Xml.Tables(Web.Contents("https://advertising.criteo.com/API/v201305/AdvertiserService.asmx?WSDL"
,[Content=Text.ToBinary("<soapenv:Envelope xmlns="&Character.FromNumber(34)&"https://advertising.criteo.com/API/v201305"&Character.FromNumber(34)&" xmlns:soapenv="&Character.FromNumber(34)&"http://schemas.xmlsoap.org/soap/envelope/"&Character.FromNumber(34)&">
<soapenv:Body>
<clientLogin>
<username>aaaaa@aaaa.com</username>
<password>aaaaaaaa</password>
</clientLogin>
</soapenv:Body>
</soapenv:Envelope>"),Headers=[#"Accept-Encoding"="gzip,deflate", #"Content-Type"="text/xml;charset=UTF-8"]]))
in
Source
Hi,
I am new to Power BI and also looking for how to get data from SOAP based WCF services in PowerBI. I am able to get the data using ZappySys xml driver. Can you please provide me screenshots how to achieve without using xml driver?
Hi Eric, I think you need to expand the "table" in the results in order to see the results you are expecting.
I use this query:
let
Source = Xml.Tables(Web.Contents("xxxxxxxxxxxx"
,[Content=File.Contents("xxxxxxx\post.xml"),Headers=[Authorization="Basic xxxxxxxxxxx" ,#"Accept-Encoding"="gzip,deflate", #"Content-Type"="text/xml;charset=UTF-8"]]))
in
Source
The Authorization is OK. My post.xml is:
<soap:Envelope xmlns:urn="urn:sap-com:document:xxxxxxxx" xmlns:soap-envelope="http://www.w3.org/2003/05/soap-envelope" >
<soap:Header/>
<soap:Body>
<urn:ZimStockProl>
<IAlmacen>xx</IAlmacen>
<ICentro>xx</ICentro>
</urn:ZimStockProl>
</soap:Body>
</soap:Envelope>
I try it in SOAPUI and is OK, but the result in Power BI is different:
I think It must be the dirección "urn"
I use this query:
let
Source = Xml.Tables(Web.Contents("xxxxxxxxxxxx"
,[Content=File.Contents("xxxxxxx\post.xml"),Headers=[Authorization="Basic xxxxxxxxxxx" ,#"Accept-Encoding"="gzip,deflate", #"Content-Type"="text/xml;charset=UTF-8"]]))
in
Source
The Authorization is OK. My post.xml is:
<soap:Envelope xmlns:urn="urn:sap-com:document:xxxxxxxx" xmlns:soap-envelope="http://www.w3.org/2003/05/soap-envelope" >
<soap:Header/>
<soap:Body>
<urn:ZimStockProl>
<IAlmacen>xx</IAlmacen>
<ICentro>xx</ICentro>
</urn:ZimStockProl>
</soap:Body>
</soap:Envelope>
I try it in SOAPUI and is OK, but the result in Power BI is different:
I think It must be the dirección "urn"
I use this query:
let
Source = Xml.Tables(Web.Contents("xxxxxxxxxxxx"
,[Content=File.Contents("xxxxxxx\post.xml"),Headers=[Authorization="Basic xxxxxxxxxxx" ,#"Accept-Encoding"="gzip,deflate", #"Content-Type"="text/xml;charset=UTF-8"]]))
in
Source
The Authorization is OK. My post.xml is:
<soap:Envelope xmlns:urn="urn:sap-com:document:xxxxxxxx" xmlns:soap-envelope="http://www.w3.org/2003/05/soap-envelope" >
<soap:Header/>
<soap:Body>
<urn:ZimStockProl>
<IAlmacen>xx</IAlmacen>
<ICentro>xx</ICentro>
</urn:ZimStockProl>
</soap:Body>
</soap:Envelope>
I try it in SOAPUI and is OK, but the result in Power BI is different:
I think It must be the dirección "urn"
Hi,
I think we found somehting :
we created an XML file (poste.xml) with the info for the SOAP web service :
then in the advanced editor of the query editor we add the path to the file :
let
Source = Xml.Tables(Web.Contents("URLofthewebservice",[Content=File.Contents("C:\Users\username\Desktop\XX\post.xml"),Headers=[#"Accept-Encoding"="gzip,deflate", SOAPAction="", #"Content-Type"="text/xml;charset=UTF-8"]])),
previously we used "get data" --"web"---- URLofthewebservice. you drill down untill you get a table, you can either load or modify the query.
Hi all,
I am getting the following error.
DataFormat.Error: Xml processing failed. Either the input is invalid or it isn't supported. (Internal error: The 'link' start tag on line 31 position 6 does not match the end tag of 'head'. Line 80, position 3.)
Details:
Binary
Here is my Advanced Editor code:
let Source = Xml.Tables(Web.Contents("https://sandbox......./", [Content=File.Contents("C:\Users\....\get_default.xml"),Headers=[Authorization="Bearer 34653fdsgfdsffd", #"Content-Type"="text/xml", SOAPAction="http://....../get.........Details"]])) in Source
Here is my Xml code:
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ins='http://beans....._v3'> <soapenv:Header/> <soapenv:Body> <ins:removedforprivacy> <startDate>2012-10-17</startDate> <endDate>2012-10-22</endDate> <pagingInfo> <pageNumber>0</pageNumber> <pageSize>5</pageSize> </pagingInfo> </ins:removedforprivacy>
</soapenv:Body>
</soapenv:Envelope>
This code works in R using RCurl, I have also tried it with the addition of <?xml version="1.0"?> at the start. I also tried it using the Content=Text.ToBinary(".....").
Could the issue be with the file being returned?
Thank you
🙂
Edit 1: grammar etc.
Edit 2: The issue was the the main url - the inititial url used to set up the web access and a secondary used in the advanced editor. This was followed up by another issue where the data would not be loaded out of the query editor... This was solved by making sure the page size fit the data limit.
Apparently it's a problem with the return, even by the mention of lines 31 and 80, and your call does not have that size.
thank you for responding, I have figured out the problem.. I will edit my post to relect it.
Were you able to make this approach work? We are also trying to call and load the a SOAP response from PowerBI without sucess. I read through the other messages stating that SOAP is a dying technology - however we do not have control over the software providing the data.
Hello dataloreous,
Yes we got it to work. Yes soapy SOAP is old and we are also stuck in the past... the joys of working for the governement...
This being said :
let
Source = Xml.Tables(Web.Contents("URLofTheWebService",[Content=File.Contents("D:\download\post.xml"),Headers=[#"Accept-Encoding"="gzip,deflate", SOAPAction="", #"Content-Type"="text/xml;charset=UTF-8"]])),
Hope this help!
Jason
I Try.
https://advertising.criteo.com/API/v201305/AdvertiserService.asmx?WSDL
XML saved in c:\a
<soapenv:Envelope xmlns:v20="https://advertising.criteo.com/API/v201305" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<v20:clientLogin>
<!--Optional:-->
<v20:username>XXXXXX</v20:username>
<!--Optional:-->
<v20:password>XXXXX</v20:password>
<!--Optional:-->
</v20:clientLogin>
</soapenv:Body>
</soapenv:Envelope>
Advanced Editor
let
Source = Xml.Tables(Web.Contents("https://advertising.criteo.com/API/v201305/AdvertiserService.asmx?WSDL"
,[Content=File.Contents("C:\a\a.xml"),Headers=[#"Accept-Encoding"="gzip,deflate", SOAPAction="", #"Content-Type"="text/xml;charset=UTF-8"]]))
in
Source
Return this error..
DataSource.Error: Web.Contents failed to get contents from 'https://advertising.criteo.com/API/v201305/AdvertiserService.asmx?WSDL' (500): Internal Server Error
Details:
DataSourceKind=Web
DataSourcePath=https://advertising.criteo.com/API/v201305/AdvertiserService.asmx
Url=https://advertising.criteo.com/API/v201305/AdvertiserService.asmx?WSDL
Can you help me?
Tanks
Your M code seems ok, the only difference I see with me is in your XML
you use <v20:clientLogin>
were i use </web:returnData>
I've removed the "SOAPAction =" "and now it's working.
Thank you
It seems that making SOAP more user firendly for PowerBI is because of lack of Xml create functions.
Has anyone tried to build an populate an Xml.Document type as per the MSDN document? https://msdn.microsoft.com/en-us/library/mt260907.aspx
Maybe if you start from there you can resolve a lot of SOAP comunication issues.
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.
User | Count |
---|---|
111 | |
80 | |
71 | |
51 | |
50 |
User | Count |
---|---|
129 | |
123 | |
78 | |
64 | |
60 |