Here’s one for all you M geeks out there. If you look at the example code for custom data connectors on the Power BI custom data connectors GitHub repo it’s clear that there are several M functions that are available in custom data connectors that aren’t available in Power BI Desktop. But what are they? As I’m sure you know, you can get a list of all the functions, types and enums available in M using the #shared keyword. Well, I created a simple custom data connector that calls #shared and returned a table of all the functions, types and enums available to a custom data connector, and then compared that table with what #shared returns when you run it in Power BI Desktop. This made it easy to find a list of M functions, types and enums that are only available in custom data connectors, and here are all 34:
- CryptoAlgorithm.Type
- CryptoAlgorithm.SHA1
- CryptoAlgorithm.SHA256
- Crypto.CreateHmac
- Crypto.CreateHash
- Web.SignForOAuth1
- OAuth1.Type
- OAuth1.HMACSHA1
- OAuth1.RSASHA1
- Extension.Module
- Extension.CurrentCredential
- Extension.CurrentApplication
- Extension.CredentialError
- Extension.LoadString
- Extension.Contents
- Credential.AccessDenied
- Credential.AccessForbidden
- Credential.EncryptionNotSupported
- Credential.NativeQueryPermission
- Error.Unexpected
- Uri.Type
- Binary.End
- Action.Type
- Action.Sequence
- Action.Return
- Action.Try
- Action.DoNothing
- ValueAction.Replace
- ValueAction.NativeStatement
- TableAction.InsertRows
- TableAction.UpdateRows
- TableAction.DeleteRows
- WebAction.Request
- Delta.Since
Some of these, like the Action functions, are documented in the Power Query function reference, and as I said others are mentioned in the Power BI custom data connectors GitHub repo, but there’s definitely some detective work to do here…
It reminds me of an issue on the DataConnectors repository.
https://github.com/Microsoft/DataConnectors/issues/8
Matt was mentioning not to pay attention to the Action and Delta functions, but that was half a year ago 🙂
It looks like you had the same idea as me back in May!
I’m actually quite keen on hunting different versions of PowerQuery from all over. For example Azure Analysis Services has a couple more functions exposed through their #shared construct, although not sure if we can use them. DataConnectors SDK also has some functions that don’t make it through.
Any idea what the “Crypto” functions perform? Any working examples?
Not really – I have an idea, but I need to do a lot more research.
Curt has some examples on S3 data connector https://github.com/CurtHagenlocher/AmazonS3/blob/master/AmazonS3.pq