abilian / olapy

OlaPy, an experimental OLAP engine based on Pandas
GNU Lesser General Public License v2.1
103 stars 19 forks source link

Error when trying to connect Microsoft Excel 365 #41

Open mirkomes opened 1 year ago

mirkomes commented 1 year ago

When I try to connect Excel 365 to the "sales" cube, I'm getting the following error:

image

Excel is sending two requests. The first one is the following:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
  <Header>
    <Version Sequence="921" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine/2" />
  </Header>
  <Body>
    <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
      <RequestType>DISCOVER_PROPERTIES</RequestType>
      <Restrictions />
      <Properties>
        <PropertyList>
          <DbpropMsmdSubqueries>2</DbpropMsmdSubqueries>
          <LocaleIdentifier>1040</LocaleIdentifier>
        </PropertyList>
      </Properties>
    </Discover>
  </Body>
</Envelope>

And Olapy is answering with this response:

<?xml version='1.0' encoding='UTF-8'?>
<soap11env:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap11env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:schemas-microsoft-com:xml-analysis"><soap11env:Header><tns:Session SessionId="75adc536-4ee6-11ed-b314-3c77e6f0e4f4"/></soap11env:Header><soap11env:Body><tns:DiscoverResponse><return>
  <root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset">
<xs:schema xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified" targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence maxOccurs="unbounded" minOccurs="0">
        <xs:element name="row" type="row"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="uuid">
    <xs:restriction base="string">
      <xs:pattern value="[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="xmlDocument">
    <xs:sequence>
      <xs:any/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="row">
    <xs:sequence>
      <xs:element name="PropertyName" sql:field="PropertyName" type="string"/>
      <xs:element minOccurs="0" name="PropertyDescription" sql:field="PropertyDescription" type="string"/>
      <xs:element minOccurs="0" name="PropertyType" sql:field="PropertyType" type="string"/>
      <xs:element name="PropertyAccessType" sql:field="PropertyAccessType" type="string"/>
      <xs:element minOccurs="0" name="IsRequired" sql:field="IsRequired" type="boolean"/>
      <xs:element minOccurs="0" name="Value" sql:field="Value" type="string"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

    <row>
      <PropertyName>ServerName</PropertyName>
      <PropertyDescription>ServerName</PropertyDescription>
      <PropertyType>string</PropertyType>
      <PropertyAccessType>Read</PropertyAccessType>
      <IsRequired>false</IsRequired>
      <Value>Mirko</Value>
    </row>
    <row>
      <PropertyName>ProviderVersion</PropertyName>
      <PropertyDescription>ProviderVersion</PropertyDescription>
      <PropertyType>string</PropertyType>
      <PropertyAccessType>Read</PropertyAccessType>
      <IsRequired>false</IsRequired>
      <Value>0.0.3  25-Nov-2016 07:20:28 GMT</Value>
    </row>
    <row>
      <PropertyName>MdpropMdxSubqueries</PropertyName>
      <PropertyDescription>MdpropMdxSubqueries</PropertyDescription>
      <PropertyType>int</PropertyType>
      <PropertyAccessType>Read</PropertyAccessType>
      <IsRequired>false</IsRequired>
      <Value>15</Value>
    </row>
    <row>
      <PropertyName>MdpropMdxDrillFunctions</PropertyName>
      <PropertyDescription>MdpropMdxDrillFunctions</PropertyDescription>
      <PropertyType>int</PropertyType>
      <PropertyAccessType>Read</PropertyAccessType>
      <IsRequired>false</IsRequired>
      <Value>3</Value>
    </row>
    <row>
      <PropertyName>MdpropMdxNamedSets</PropertyName>
      <PropertyDescription>MdpropMdxNamedSets</PropertyDescription>
      <PropertyType>int</PropertyType>
      <PropertyAccessType>Read</PropertyAccessType>
      <IsRequired>false</IsRequired>
      <Value>15</Value>
    </row>
  </root>
</return></tns:DiscoverResponse></soap11env:Body></soap11env:Envelope>

The second Excel's request is the following:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
  <Header>
    <Version Sequence="921" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine/2" />
  </Header>
  <Body>
    <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
      <RequestType>DISCOVER_DATASOURCES</RequestType>
      <Restrictions />
      <Properties>
        <PropertyList>
          <DbpropMsmdSubqueries>2</DbpropMsmdSubqueries>
          <LocaleIdentifier>1040</LocaleIdentifier>
          <Content>SchemaData</Content>
          <Format>Tabular</Format>
        </PropertyList>
      </Properties>
    </Discover>
  </Body>
</Envelope>

And Olapy is answering with this response:

<?xml version='1.0' encoding='UTF-8'?>
<soap11env:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap11env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:schemas-microsoft-com:xml-analysis"><soap11env:Header><tns:Session SessionId="75adc536-4ee6-11ed-b314-3c77e6f0e4f4"/></soap11env:Header><soap11env:Body><tns:DiscoverResponse><return>
  <root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset">
<xs:schema xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified" targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="0" name="row" type="row"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="uuid">
    <xs:restriction base="xsd:string">
      <xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="row">
    <xs:sequence>
      <xs:element name="DataSourceName" sql:field="DataSourceName" type="xs:string"/>
      <xs:element minOccurs="0" name="DataSourceDescription" sql:field="DataSourceDescription" type="string"/>
      <xs:element minOccurs="0" name="URL" sql:field="URL" type="string"/>
      <xs:element minOccurs="0" name="DataSourceInfo" sql:field="DataSourceInfo" type="string"/>
      <xs:element minOccurs="0" name="ProviderName" sql:field="ProviderName" type="string"/>
      <xs:element maxOccurs="unbounded" name="ProviderType" sql:field="ProviderType" type="string"/>
      <xs:element name="AuthenticationMode" sql:field="AuthenticationMode" type="string"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

    <row>
      <DataSourceName>sales</DataSourceName>
      <DataSourceDescription>sales Sample Data</DataSourceDescription>
      <URL>http://127.0.0.1:8000/xmla</URL>
      <DataSourceInfo>-</DataSourceInfo>
      <ProviderName>olapy</ProviderName>
      <ProviderType>MDP</ProviderType>
      <AuthenticationMode>Unauthenticated</AuthenticationMode>
    </row>
  </root>
</return></tns:DiscoverResponse></soap11env:Body></soap11env:Envelope>

Any idea about that?

Thanks in advance.