Forum Discussion
salesforce object connector - Lookup relationship support ?
Does anyone know if lookup relationships are supported in the Salesforce Object Connector. For example, I'd like to query the object Account and pull in Name from a lookup object called Market. Typically within a normal SOQL query I would query as such:
SELECT Market__r.Name FROM Account
When I try and use the Advanced Editor to modify the Dax query to include this it errors out.
Thank you for the help.
Ivano
OK, after playing around with this some more I found a solution and it's actually quite simple and functional. I just couldn't find any documentation on the subject.
For reference here is how you can query on lookup relationship fields using the Salesforce Object connector:
1 - When picking Salesforce Object connector, on the screen where you select the object you just check the option at the bottom of the window entitled "Include Relationship Columns"
2 - Click on "Choose Columns" and scroll to the bottom where all of the lookup fields are located. They will end in __r, such as Market__r. Select the lookup relationship you'd like to use
3 - From the preview window, click on the hierarchy looking button on the column header for the lookup relationship. This will pop out a window where you can select the relationship fields in question, such as Market__r.Name
Here's a screenshot for reference and the Dax it generates for reference:
Dax from Advanced Editor:
let
Source = Salesforce.Data("https://login.salesforce.com/", [CreateNavigationProperties = true]),
Account1 = Source{[Name="Account"]}[Data],
#"Removed Other Columns" = Table.SelectColumns(Account1,{"Name", "RecordTypeId", "Market__r"}),
#"Expanded Market__r1" = Table.ExpandRecordColumn(#"Removed Other Columns", "Market__r", {"Name"}, {"Market__r.Name"}),
#"Expanded Market__r" = Table.ExpandRecordColumn(#"Expanded Market__r1", "Market__r", {"Id", "Name", "Parent_Market__c", "Geocode__c", "Geocode_Address__c", "Parent_Market__r"}, {"Market__r.Id", "Market__r.Name", "Market__r.Parent_Market__c", "Market__r.Geocode__c", "Market__r.Geocode_Address__c", "Market__r.Parent_Market__r"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded Market__r", each ([RecordTypeId] = "012130000018FFPAA2"))
in
#"Filtered Rows"
9 Replies
- AnonymousNot applicable
Hi ivanoharris,
What error message do you get when modifying the code in Advanced Editor? Please follow the instructions in this similar blog to define lookup relationships in Advanced Editor.
However, comparing to modifying code in Advanced Editor, it is easier to use the Merge Queries feature in Power BI Desktop. Merge lets you join two data queries and retrieve lookup object , for more details, please review this similar blog: https://businessintelligist.com/2015/09/15/power-bi-desktop-merge-query-options/ .
Thanks,
Lydia Zhang- ivanoharrisRegular Visitor
Lydia,
It's a lot more work to use merge queries on the PowerBI side than it is to leverage the inherent built-in SOQL query support for querying lookup relationships.
If the connector supports this, I'd love to know. If not, I'd think you'll want to look into it.
Ivano
- AnonymousNot applicable
Hi ivanoharris,
I am not able to found any official Power BI blog or salesforce blog stating that there is a limitation about lookup relationship. Lookup relationship should be supported in the connector, could you please post the error message you get?
Thanks,
Lydia Zhang
- metricaPost Prodigy
Hi ivanoharris,
The accepted solution is still valid. Enable Include relationship columns in the Salesforce Objects connector, select the required lookup relationship, and expand the related record in Power Query.
Power BI Connector for Salesforce also provides an ERD for exploring Salesforce objects, fields, and relationships before export.
AppExchange and 30-day trial:
https://appexchange.salesforce.com/appxListingDetail?listingId=31526f0e-abd8-4cb5-bd1a-3bd56b5c0577Docs:
https://metricasoftware.com/docs/salesforce/Cheers,
Metrica Team