Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
Anonymous
Not applicable

Cyclic reference error

I found, so I though, a solution to a timesheet problem (to display timesheets with no data), but it uses "M code", something I'm totally unfamiliar with.  I duly imported the code and, after several attempts, managed to get it syntax error free . . . . but, when I tried to save it I received the cyclic reference error message.

 

The code is as follows :

let

   Source = OData.Feed("https://mitiegrp.sharepoint.com/sites/pwa/_api/ProjectData/", null, [Implementation="2.0"]),

   Resources_table = Source{[Name="Resources",Signature="table"]}[Data] ,

   Filter_for_Work_Resources_who_are_Users = Table.SelectRows(Resources_table, each ([ResourceType] = 2) and ([ResourceIsActive] = 1) and ([ResourceNTAccount] <> null) and ([ResourceEmailAddress] <> null)),

   Get_core_fields = Table.SelectColumns(Filter_for_Work_Resources_who_are_Users,({Resources[ResourceId], Resources[ResourceCreatedDate], Resources[ResourceEmailAddress], Resources[ResourceName], Resources[TeamName], Resources[ResourceDepartments]}))

in

Get_core_fields

 

Please can someone point out the error of my ways, and, if you have time, explain the how, what and why it's doing what it's doing.  Also, is there some good reference material out there that will help me better understand how it works ?

 

Thanks in advance

Fred

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @Anonymous,

 

AFAIK, the second parameter of 'Table.SelectColumns' function is a list of string values.  But the parameter which you provide seems like inputted a list with multiple list values in it.

 

Maybe you can try to use following formula to replace original one or add list index to return specific row from that list.

Get_core_fields = Table.SelectColumns(Filter_for_Work_Resources_who_are_Users,{"ResourceId", "ResourceCreatedDate", "ResourceEmailAddress", "ResourceName", "TeamName", "ResourceDepartments"})
Get_core_fields = Table.SelectColumns(Filter_for_Work_Resources_who_are_Users,{Resources[ResourceId]{0}, Resources[ResourceCreatedDate]{0}, Resources[ResourceEmailAddress]{0}, Resources[ResourceName]{0}, Resources[TeamName]{0}, Resources[ResourceDepartments]{0}})

BTW, can you please provide more info about 'resource'? I'm not so clear for it.


If it is reference from current query table, you will faced cycle reference issue when you use the reference query table to calculate with current query table.

 

Regards,

Xiaoxin Sheng

 

View solution in original post

6 REPLIES 6
Anonymous
Not applicable

Hi @Anonymous,

 

AFAIK, the second parameter of 'Table.SelectColumns' function is a list of string values.  But the parameter which you provide seems like inputted a list with multiple list values in it.

 

Maybe you can try to use following formula to replace original one or add list index to return specific row from that list.

Get_core_fields = Table.SelectColumns(Filter_for_Work_Resources_who_are_Users,{"ResourceId", "ResourceCreatedDate", "ResourceEmailAddress", "ResourceName", "TeamName", "ResourceDepartments"})
Get_core_fields = Table.SelectColumns(Filter_for_Work_Resources_who_are_Users,{Resources[ResourceId]{0}, Resources[ResourceCreatedDate]{0}, Resources[ResourceEmailAddress]{0}, Resources[ResourceName]{0}, Resources[TeamName]{0}, Resources[ResourceDepartments]{0}})

BTW, can you please provide more info about 'resource'? I'm not so clear for it.


If it is reference from current query table, you will faced cycle reference issue when you use the reference query table to calculate with current query table.

 

Regards,

Xiaoxin Sheng

 

Anonymous
Not applicable

Hi @Anonymous

 

Thankyou, the first option worked and gave me a tabe with the named columns in it.  I also tried the second option, but that returned the cyclic reference error.

 

As to Resources, it is a table in MS Project, containing rows for each resource name in the enterprise resource table.

 

Thanks again for your help.

 

One final (for now) question, is there any good reference material that will assist my coding ?

 

Rgds

Fred

Anonymous
Not applicable

@Anonymous,

Have you tried to clear your cache in Options? Also, do you know at which step the error was produced?

Anonymous
Not applicable

Hi @Anonymous,

 

Ummmm, I've been using Power BI for a whole 2 months, starting from nothing with no training apart from what I can find on message boards and the Community site.

 

How would I clear the cache ?

 

As to where, the error occurs, I've entered the formula, it says there are no syntax errors, so I click Done and it then tells me that there's a cyclic reference error, and displays the following code

 

= Table.SelectColumns(Filter_for_Work_Resources_who_are_Users,({Resources[ResourceId], Resources[ResourceCreatedDate], Resources[ResourceEmailAddress], Resources[ResourceName], Resources[TeamName], Resources[ResourceDepartments]}))

 

Thanks though for the cache hint, and, if I can find what to do, I'll try it.

 

Rgds

Fred

To clear the cache in Power BI Desktop:  File > Options and Settings > Options > Data Load > Clear Cache

 

Regards, 

Jim

Anonymous
Not applicable

Hi @SJim

 

Thanks for that, got it and done it.  Useful for future reference

 

Regards

Fred

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.