cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Cómo conectar Power BI a un origen de datos en un servicio web

Estoy comenzando con Power BI y ahora me enfrento al desafío de conectarme a un origen de datos desde un webService realizado en asmx, la dirección de WebService es:

http://www.testws.com:65/com_InfoListAll.asmx

Al introducir la dirección anterior desde el explorador, la información que contiene mi servicio web es la siguiente:

Com_InfoLestAll

El se admiten las siguientes operaciones. Para una defenición paramal, por favor revese el Servicio Descripción. - InfoViajes
 - Lesta de espectáculos

Éste Servicio Telaraña es utilizando HTTP:tempuri.org/ como su espacio de nombres predetermenado.
Recomendación: Cambio el predeterminado espacio de nombres antes del XML Telaraña servicio es hecho público.Cada XML Telaraña El servicio necesita un espacio de nombres único en orden para aplicaciones cliente para distinguirlo de otros servicios en el Telaraña. HTTP:tempuri.org/ está disponible para los servicios Telaraña XML que están en desarrollo, pero los servicios Telaraña XML públicoados deben usar un espacio de nombres más permanente.

Usted XML Telaraña el servicio debe identificarse mediante un espacio de nombres que usted controle. Para por ejemplo, puede utilizar el Internet nombre de dominio como parte del espacio de nombres. Aunque mucho XML Telaraña Los espacios de nombres de servicio tienen un aspecto similar al de Direcciones URL, no es necesario que apunte a los recursos reales en el Telaraña. (XML Telaraña Los espacios de nombres de servicio son Uris.)Para XML Telaraña servicios crear usando ÁSPID.REDel predeterminado el espacio de nombres se puede cambiar mediante el Servicio Web atributos Namespace propiedad. El Servicio Web atributo es un atributo aplicado a la clase ese Contiene el XML Telaraña servicio métodos. Abajo es a código ejemplo ese Establece el espacio de nombres Para "HTTP://Microsoft.con/servicios web/":C#[Servicio Web(Namespace="HTTP://Microsoft.con/servicios web/")]público clase MyServicio Web {    implementación}Visual Básico

<Servicio Web(Espacio de nombres:="http://microsoft.com/webservices/")> Público Clase MyWebService' implementaciónFin Clase
C++

[Servicio Web(Namespace="http://microsoft.com/webservices/")]público Ref clase MyWebService {    implementación};Para más detalles sobre XML espacios de nombres, consulte el W3C recomendación sobre Espacios de nombres en XML.Para más detalles sobre WSDL, véase el WSDL Especificación.Para más detalles sobre Urisver RFC 2396.

Es claramente evidente que utilizo dos métodos, que son InfoTravel y ShowList

La dirección del método InfoTravel es:

http://www.testws.com:65/com_InfoListAll.asmx?op=InfoTravel

La dirección del método ShowListes:

http://www.testws.com:65/com_InfoListAll.asmx?op=ShowList

El contenido del método InfoTravel y ShowList es el mismo, solo cambia los parámetros, por eso agrego solo lo que se muestra en el método ShowList.

Com_InfoListAll

Haga clic aquí para obtener una lista completa de las operaciones.

Lista de espectáculos

Prueba
Para probar la operación utilizando el protocolo HTTP POST, haga clic en el botón 'Invocar'.

Valor del parámetro
nombre de usuario:   
contraseña:
    
JABÓN 1.1
A continuación se muestra un ejemplo de solicitud y respuesta de SOAP 1.1. Los marcadores de posición mostrados deben reemplazarse con valores reales.

POST /com_InfoListAll.asmx HTTP/1.1
Anfitrión: www.testws.com
Tipo de contenido: texto/xml; charset=utf-8
Content-Length: longitud
SOAPAction: "http://tempuri.org/Lista de espectáculos"<?xml version="1.0" encoding="utf-8"?>
<jabón: Sobre XMLNS:xsi="http://www.w3.org/2001/XMLSchema-instance" XMLNS:xsd="http://www.w3.org/2001/XMLSchema" XMLNS:jabón="http://schemas.xmlsoap.org/soap/envelope/">
  <jabón:Cuerpo>
    <Lista de espectáculos XMLNS="http://tempuri.org/">
      <nombre de usuario>string</nombre de usuario>
      <contraseña>string</contraseña>
    </Lista de espectáculos>
  </jabón:Cuerpo>
</jabón: Sobre>HTTP/1.1 200 Aceptar
Tipo de contenido: texto/xml; charset=utf-8
Content-Length: longitud<?xml version="1.0" encoding="utf-8"?>
<jabón: Sobre XMLNS:xsi="http://www.w3.org/2001/XMLSchema-instance" XMLNS:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jabón="http://schemas.xmlsoap.org/soap/envelope/">
  <jabón:Cuerpo>
    <Lista de espectáculosResponse xmlns="http://tempuri.org/">
      <ShowListResult />
    > </ShowListResponse
  </jabón:Cuerpo>
</jabón: Sobre>JABÓN 1.2
A continuación se muestra un ejemplo de solicitud y respuesta soap 1.2. Los marcadores de posición mostrados deben reemplazarse con valores reales.

POST /com_InfoListAll.asmx HTTP/1.1
Anfitrión: www.testws.com
Tipo de contenido: aplicación/soap+xml; charset=utf-8
Content-Length: longitud<?xml version="1.0" encoding="utf-8"?>
<soap12:Sobre xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <jabón12:Cuerpo>
    <ShowList xmlns=> "http://tempuri.org/"
      <nombre de usuario>string</nombre de usuario>
      <contraseña>string</contraseña>
    > </ShowList
  </jabón12:Cuerpo>
</soap12:Sobre>HTTP/1.1 200 Aceptar
Tipo de contenido: aplicación/soap+xml; charset=utf-8
Content-Length: longitud<?xml version="1.0" encoding="utf-8"?>
<soap12:Sobre xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <jabón12:Cuerpo>
    <ShowListResponse xmlns=> "http://tempuri.org/"
      <ShowListResult />
    > </ShowListResponse
  </jabón12:Cuerpo>
</soap12:Sobre>HTTP OBTENER
A continuación se muestra una solicitud y respuesta HTTP GET de ejemplo. Los marcadores de posición mostrados deben reemplazarse con valores reales.

GET /com_InfoListAll.asmx/ShowList?username=string&password=string HTTP/1.1
Anfitrión: www.testws.com
HTTP/1.1 200 Aceptar
Tipo de contenido: texto/xml; charset=utf-8
Content-Length: longitud<?xml version="1.0" encoding="utf-8"?>
<anyType xmlns="http://tempuri.org/" />PUBLICACIÓN HTTP
A continuación se muestra una solicitud y respuesta HTTP POST de ejemplo. Los marcadores de posición mostrados deben reemplazarse con valores reales.

POST /com_InfoListAll.asmx/ShowList HTTP/1.1
Anfitrión: www.testws.com
Tipo de contenido: application/x-www-form-urlencoded
Content-Length: longitud

nombredeusuario=cadena&contraseña=cadena
HTTP/1.1 200 Aceptar
Tipo de contenido: texto/xml; charset=utf-8
Content-Length: longitud<?xml version="1.0" encoding="utf-8"?>
<anyType xmlns="http://tempuri.org/" />

Cómo se puede visualizar cada método Solicita algunos parámetros

sebastianslz_1-1632431803079.png

sebastianslz_2-1632431831693.png

El origen de datos de Power BI al que me estoy conectando es Web y lo hago de la siguiente manera agregando la dirección URL principal de mi servicio web en la sección básica:

sebastianslz_3-1632431931860.png

Al intentar conectarme de esta manera, recibo el siguiente mensaje de error:

sebastianslz_4-1632431964429.png

También intente desde la sección avanzada agregar la URL en partes con cada uno de los métodos de la siguiente manera:

sebastianslz_6-1632432010407.png

Aquí con esta opción si la conexión se realiza pero los datos obtenidos son los mismos parámetros y lo que hay en el HTML.

sebastianslz_7-1632432043194.pngsebastianslz_8-1632432054266.png

No sé si tengo que hacer alguna configuración previa en la sección avanzada con respecto a los parámetros, espero que alguien pueda darme alguna orientación sobre cómo hacerlo.

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

ACTUALIZACIÓN 1:

He intentado conectarme a través de una fuente de datos de consulta en blanco de la siguiente manera:

sebastianslz_0-1632514413723.png

Y he añadido la siguiente consulta:

let
    Source = Web.Contents(
        "http://www.testws.com:84/com_InfoListAll.asmx",
        [
            RelativePath = "InfoTravel",
            Query= [ username =
                "username",
                password = "password",
                Type = "99",
                ID = "1001"
            ]
        ]) en
    Source

Al conectarme a esta fuente de datos, obtengo el archivo binario de la siguiente manera:

sebastianslz_1-1632514457286.png

Luego hago clic en él y carga toda la información en un solo campo de la tabla de la siguiente manera:

sebastianslz_2-1632514482254.png

Me gustaría saber si hay un paso antes de cargar los datos o si los estoy cargando incorrectamente.

Allí, @sebastianslz

Por favor, compruebe si estas publicaciones similares podrían ayudar.

https://www.kizan.com/blog/consuming-xml-web-service-data-in-power-bi

https://datachant.com/2017/03/30/web-scraping-power-bi-excel-power-query/

Saludos
Equipo de soporte de la comunidad _ Eason

Helpful resources

Announcements
PBI_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Power BI October Update 2021.jpg

Power BI Release

Click here to read more about the October 2021 Release!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Teds Dev Camp Oct. 2021 768x460.jpg

Power BI Dev Camp - October 28th, 2021

Mark your calendars and join us for our next Power BI Dev Camp!