cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
darchale
Regular Visitor

Power Query/M interop with C#

Hi, I am currently in the testing/investigation stages of using Power BI at my company.

Almost all of our data sources are hidden behind http or grpc services. These services can return multiple data formats, for example: Apache Arrow, Apache Parquet, KDB/Kx, json and proprietory formats. Recently we have built an excel add-in for these services in C# using Excel DNA as the interop layer between both workbook and vba, and the add-in has a significant amount of code to do this. Ideally we would like to not repeat this work and simply call C# function within a power query/m custom connector.

 

The only thing that I can find is this quick reference to ADO.NET in a conference about building custom connectors, https://youtu.be/srQ-DLqhoxM?t=2815, however, I cannot find any further information on this or how to go about starting.

 

Please let me know if this is possible, and if it's not possible, if you can think of any other approaches to solving this. From what I can see M does not currently have the capability of deserialising arbitrary arrow, parquet or grpc data.

2 REPLIES 2
darchale
Regular Visitor

Hey @v-jingzhang, sorry, maybe I should have been more clear. My questions is actually kind of two questions in one:
1. Can M interop with C#?
For example, can I do something like either of the following:

 

MyCustomFunction = CSharp.Interop.GetFunction("MyCustomFunction")
Source = MyCustomFunction(...)  // Calls C# code under the hood

 

 or 

 

using MyCustomCSharpFunctions;   // Some external library e.g. a nuget package
shared CSharp.DataSource1 = () => MyCustomCSharpFunctions.GetDataSource1();   // Calls C# code under the hood

 

 

2. If this is not possible, does M have the ability to deserialise custom data types?

From your answer above it seems like the answer to this is no. Formats like arrow cannot be parsed in M yet?

v-jingzhang
Community Support
Community Support

Hi @darchale 

 

You can find the most common data types used in Power Query in the following article: Data types in Power Query - Power Query | Microsoft Learn

 

And you can find the complete list of data types in the Power Query M formula language from article M Language types - PowerQuery M | Microsoft Learn

 

I'm afraid some data formats you mentioned are not supported in Power Query. 

 

Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.

Helpful resources

Announcements
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

BizApps LATAM 2023

Business Application LATAM Summit 2023

Join the biggest FREE Business Applications Event in LATAM this February.

Power Platform Bootcamp

Global Power Platform Bootcamp

In this bootcamp we will deep-dive into Microsoft’s Power Platform stack with hands-on sessions and labs, delivered to you by experts and community leaders.

Top Solution Authors
Top Kudoed Authors