web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Lookup() Not Working C...
Power Apps
Answered

Lookup() Not Working Correctly with Nested JSON

(0) ShareShare
ReportReport
Posted on by

Ok, I might be going insane here, but this Lookup() function is not functioning correctly. Its so complicated though, I don't know if it can be explained in a forum post, but here goes.

Schema of Collection colThings (an API Response):

{
 "level1": [
 {
 "level2_location": {
 "city": "SEATTLE ",
 "state": "WA"
 },
 "level2_thing": [
 {
 "level3_thingNumber": "11223344",
 "level3_thingList": [
 {
 "level4_thingID": {
 "thingInit": "ABC ",
 "thingNum": " 778899"
 },
 "level4_thingStatus": {
 "statusIndicator": "Y"
 }
 }
 ]
 }
 ]
 }
 ]
}

Gallery Items Property:

(Adding a column to measure the number of things with StatusIndicator "Y". Used elsewhere in the app)

AddColumns(
 First(
 First(
 colThings.level2_thing
 ).level2_thing.level3_thingList
 ).level3_thingList,
 "statusSum",
 If(
 level4_thingStatus.statusIndicator = "Y",
 1,0
 )
)

OnChange of a Toggle Control in each Gallery item:

(Big thanks to Kris Dai for assisting with the Remove() function here!)

If(
 ThisItem.level4_thingStatus.statusIndicator <> 
 If(
 toggle.Value = false,"Y",
 toggle.Value = true,"N"
 ),
 Collect(colPOSTstatuses,
 Table(
 {
 level3_thingList:
 Table(
 {
 level4_thingID: {
 thingInit: ThisItem.level4_thingID.thingInit,
 thingNum: ThisItem.level4_thingID.thingNum,
 thngPrefix: ThisItem.level4_thingID.thngPrefix
 },
 level4_thingStatus:{
 statusIndicator: 
 If(
 toggle.Value = false,"Y",
 toggle.Value = true,"N"
 )
 }
 }
 )
 }
 )
 ),
 Remove(colPOSTstatuses,
 LookUp(colPOSTstatuses,
 First(level3_thingList.level4_thingID).level4_thingID.thingNum= ThisItem.level4_thingID.thingNum
 )
 )
)

The Lookup() function that is not working:

If(
 IsBlank(
 LookUp(
 colPOSTstatuses.level3_thingList,
 level3_thingList.thingNum = ThisItem.level3_thingList.thingNum,
 level4_thingStatus.statusIndicator
 )
 ),
 "Blank",
 LookUp(
 colPOSTstatuses.level3_thingList,
 level3_thingList.thingNum = ThisItem.level3_thingList.thingNum,
 level4_thingStatus.statusIndicator
 )
)

Test:

  • I have 1 item in colPOSTstatuses and 3 items in the Gallery.
  • The Lookup() function above is in each Gallery item.
  • All 3 have a value (either "Y" or "N").
  • 2 of 3 SHOULD have a value of "Blank" (text, not Blank() ).

The issue?:

  • Can a Lookup() function handle equipmentNum and statusIndicator being in separate "subtables" of the nested JSON?
  • Where is the Lookup() getting 3 values ("Y", "Y", and "N") when only 1 record exists in the Collection!?!
Categories:
I have the same question (0)
  • Verified answer
    Community Power Platform Member Profile Picture
    on at

    Thanks @KickingApps !! 

    The problem:

    • Gallery reference collection (colThings) was different than the Lookup reference collection (colPOSTstatuses).
    • I needed to define the full "path" to the colPOSTstatuses field

    Was:

     

    If(
     IsBlank(
     LookUp(
     colPOSTstatuses.level3_thingList,
     level3_thingList.thingNum = ThisItem.level3_thingList.thingNum,
     level4_thingStatus.statusIndicator
     )
     ),
     "Blank",
     LookUp(
     colPOSTstatuses.level3_thingList,
     level3_thingList.thingNum = ThisItem.level3_thingList.thingNum,
     level4_thingStatus.statusIndicator
     )
    )

     

    Changed to:

     

    LookUp(
     colPOSTstatuses.level3_thingList,
     First(First(colPOSTstatuses.level3_thingList).level3_thingList.level4_thingID).level4_thingID.thingNum = ThisItem.level4_thingID.thingNum,
     First(First(colPOSTstatuses.level3_thingList).level3_thingList.level4_thingStatus).level4_thingStatus.statusIndicator
    )

     

     

     

     

     

  • Community Power Platform Member Profile Picture
    on at

    eh! This only returns the First value in colPOSTstatuses! Need a way to return the value for each item in the Gallery. 

  • Verified answer
    Community Power Platform Member Profile Picture
    on at

    ok @ericonline ... lets try this again 🙂 :
    This worked to bring results back for every Gallery item, not just the first value in the Collection:

    LookUp(
     colPOSTstatuses,
     First(level3_thingList.level4_thingID).level4_thingID.thingNum= ThisItem.level4_thingID.thingNum,
     First(level3_thingList.level4_thingStatus).level4_thingStatus.statusIndicator
    )

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 765 Most Valuable Professional

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 343 Super User 2025 Season 2

#3
Power Platform 1919 Profile Picture

Power Platform 1919 272

Last 30 days Overall leaderboard