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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
MitieFred
Helper V
Helper V

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
v-shex-msft
Community Support
Community Support

Hi @MitieFred,

 

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

 

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

View solution in original post

6 REPLIES 6
v-shex-msft
Community Support
Community Support

Hi @MitieFred,

 

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

 

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

Hi @v-shex-msft

 

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

@MitieFred,

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

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

Hi @SJim

 

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

 

Regards

Fred

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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