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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
MarkusEng1998
Resolver II
Resolver II

API loop with List.Empty - access column from previous step

Thanks to @lbendlin, I found a tip to terminate an API loop with List.Empty.

 

However my reference to the projNo column in the List.Generate() is erroring when I expand the table list.api 2024-05-03_08-41-37.jpg

 

#"02ListGenerate = Table.AddColumn(#"01filterProject", "dRofusRecord", each List.Generate(() =>
		[proj = [projNo], skip = 0,  top = 50, recordList = getURI(proj, top, skip)],

		each not List.IsEmpty([recordList]),
	
		each [proj=[projNo],
			skip = [skip] + [top], 
			top = [top],
			recordList = getURI(proj, top, skip)]
))

Thank you for any guidance.

1 ACCEPTED SOLUTION

In the List.Generate() I changed proj=[projNo] to projNo = [projNo].

This now works!

 

= Table.AddColumn(#"01filterProject", "dRofusRecord", each List.Generate(() =>
[projNo = [projNo], skip = 0,  top = 50, recordList = getURI(projNo, top, skip)],

each not List.IsEmpty([recordList]),

each [projNo = [projNo],
      skip = [skip] + [top], 
      top = [top],
       recordList = getURI(projNo, top, skip)]
))

 

Thank you again @lbendlin for prompting the question. I appreciate this forum because submitting the question forces me to better understand the "problem statement."

 

View solution in original post

3 REPLIES 3
lbendlin
Super User
Super User

What's the error message?

Expression.Error: The field 'projNo' of the record wasn't found.

api 2024-05-03_09-20-24.jpg

 

getURI()

(projNo as text, topVal as number, skipVal as number)=>
let
    #"FilterColumnTable" = Table.SelectRows(#"102APImapRooms100", each ([ObjectType] = "rooms")),
    GetWebContents =
        Web.Contents(
            "https://api-us.drofus.com/api/company/",
            [
                RelativePath= projNo
                & "/rooms" 
                & "?$select=" & Text.Combine(#"FilterColumnTable"[dRofus.ID], ",")
                & "&$top=" & Number.ToText(topVal)
                & "&$skip=" & Number.ToText(skipVal) 
            ]
        ),
    convertedJson = Json.Document(GetWebContents,65001),     
        in
            convertedJson

In the List.Generate() I changed proj=[projNo] to projNo = [projNo].

This now works!

 

= Table.AddColumn(#"01filterProject", "dRofusRecord", each List.Generate(() =>
[projNo = [projNo], skip = 0,  top = 50, recordList = getURI(projNo, top, skip)],

each not List.IsEmpty([recordList]),

each [projNo = [projNo],
      skip = [skip] + [top], 
      top = [top],
       recordList = getURI(projNo, top, skip)]
))

 

Thank you again @lbendlin for prompting the question. I appreciate this forum because submitting the question forces me to better understand the "problem statement."

 

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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