Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
I amd building a custom PBI Desktop connector with the sdk:
I have these 2 files:
*.pq
section MyConnector;
// Define the data source function
MyConnectorImpl = (Url as text, Token as text) as table =>
let
actualUrl = Url,
record = [
token = Token,
content = "record",
format = "csv"
],
body = Text.ToBinary(Uri.BuildQueryString(record)),
options = [
Headers = [#"Content-type" = "application/x-www-form-urlencoded"],
Content = body
],
result = Web.Contents(actualUrl, options),
#"Imported CSV" = Csv.Document(result, [Delimiter = ",", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]),
#"Promoted Headers" = Table.PromoteHeaders(#"Imported CSV", [PromoteAllScalars = true])
in
#"Promoted Headers";
// Define the type for the data source function
MyConnectorType = type function (
Url as text,
Token as text
) as table;
*.query.pq
[DataSource.Kind="MyConnector", Publish="MyConnector.Publish"]
shared MyConnector.Contents = Value.ReplaceType(MyConnectorImpl, MyConnectorType);
// Data Source UI publishing description
MyConnector.Publish = [
Beta = true,
Category = "Other",
ButtonText = { "My Connector", "My Connector" },
LearnMoreUrl = "https://example.com"
];
My Error:
Afer I build, then evaluate the query file, I see the following:
[1:48:56 PM] [Info] Detected a newer mez file, about to infer its latest info. 1720763336064, 1536065
[1:48:56 PM] [Info] [Task found] c:\Users\xxxx\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.4.0-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.127.3\tools\PQTest.exe info
--extension "d:\repos\Power Query Extensions\MyConnector\bin\AnyCPU\Debug\MyConnector.mez"
--prettyPrint
[1:48:57 PM] [Debug] onModuleLibraryUpdated: []
[1:48:57 PM] [Info] Update last ctime of an inferred mez file to 1720763336064
[1:48:57 PM] [Info] DisplayExtensionInfo result MyConnector
[1:48:57 PM] [Info] [Task found] c:\Users\xxxxxA\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.4.0-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.127.3\tools\PQTest.exe run-test
--extension "d:\repos\Power Query Extensions\MyConnector\bin\AnyCPU\Debug\MyConnector.mez"
--queryFile "d:\repos\Power Query Extensions\MyConnector\MyConnector.query.pq"
--prettyPrint
[1:48:58 PM] [Info] RunTestBattery result [
{
"ActivityId": "094ca3e3-75c4-4112-b34a-1d4075ca94b3",
"DataSourceAnalysis": [],
"Details": "Token ';' expected. Start position: (3, 1). End position (3, 7).",
"EndTime": "2024-07-12T05:48:58.4633242+00:00",
"Method": "PQTest.RunTest",
"Name": "MyConnector.query.pq",
"StartTime": "2024-07-12T05:48:58.4429286+00:00",
"DiagnosticEvents": {},
"RowCount": 0,
"Status": "Failed",
"Type": "PQTest.Expression",
"Error": {
"Message": "Token ';' expected. Start position: (3, 1). End position (3, 7)."
}
}
]
Any incites appreciated
- my thoughts are it's something to do with having 2 input parameters - perhaps not being initialsed correctly when this line is called:
shared MyConnector.Contents = Value.ReplaceType(MyConnectorImpl, MyConnectorType);
Hi @274188A ,
You didn't give the complete code, I'm not sure if the content in your brackets is correct, could you provide the complete code?
Value.ReplaceType - PowerQuery M | Microsoft Learn
Best Regards,
Dino Tao
The Power BI Data Visualization World Championships is back! It's time to submit your entry.
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 16 | |
| 14 | |
| 9 | |
| 8 | |
| 7 |