cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
SaWu
Level 8

ForAll around working Patch yields "The specified column is not accessible in this context"

Please be so kind as to read my full post before responding.
Thank you for your consideration.

In one recently created PowerApp, App ID e57978ec-0038-4ca2-8231-96b457dde8c5, Session ID: d2f15613-ee29-40c8-a90b-0decfd0717a4, PowerApps 3.19051.14
image.png

I am encountering a strange issue trying to user Patch in a ForAll loop.

I am storing records of a custom entity that have been added or modified in a Collection LocalToSubmit (so that creation and modification is possible offline) and only patch those to the server with an extra button (which is disabled if Connection.Connected is false).
The Patch formula by itself is accepted by the App Checker.
However, putting the ForAll loop around this Patch statement doesn't seem to work.
I have attached some screenshots for a minimal example (app and session ids also for this example):
image.pngimage.png
I've tried using the diambiguation operator, but I don't know how to use that with a name like 'PowerFair-Leads'
image.png

and also don't know if that would help.

I don't remember having encountered this issue in older versions of PowerApps before Column names, GUID type, and new CDs features.

Please help me to get this kind of loop working again.

1 ACCEPTED SOLUTION

Accepted Solutions
SaWu
Level 8

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

Played around with variations of placing the disambiguation operator @ in different places.
It appears, unless my memory is confusing me, as if disambiguation rules and name resolution have changed.
I don't remember having had to ever use disambiguation for global names before.
This works:
image.png

View solution in original post

6 REPLIES 6
Super User
Super User

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

@SaWu 

In your Patch function when you are patching a datasource, you need to supply the record you want to patch, or a default record (Defaults(dataSource)) to patch and create a new (there are some variations on this, but this is sanctioned and working).

 

Consider changing your ForAll formula to the following:

ForAll(LocalToSubmit,
           Patch('PowerFair-Leads',
                     If(IsBlank(Lookup('PowerFair-Leads', kk_messeapp_leadid=LocalToSubmit[@kk_messeapp_leadid).kk_messeapp_leadid), 
Defaults('PowerFair-Leads'),
Lookup('PowerFair-Leads', kk_messeapp_leadid=LocalToSubmit[@kk_messeapp_leadid)
), { kk_notes: "Test" } ) )

In this formula, the base record parameter is determined by an If statement.  If a lookup of the record with the kk_messeapp_leadid returns blank, then we assume there is no record to patch and thus will use the Defaults function to provide the default values in creating a record.  If the record does exist, then we will lookup that record and use it as our base record.

 

I hope this is clear and helpful for you.

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
SaWu
Level 8

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

Thanks for the response.
I just tried your suggestion and it doesn't work.

image.pngimage.pngimage.pngimage.png

Also, in my original post, I do supply a valid record to patch, and a default record can be replaced by 
As far as I know, it suffice to supply a partial record with just the guid.
This is also why in first the screenshot of my original post, you can clearly see that the App Checker accepts my first Patch statement that is using exactly this kind of patched record.
I only have a problem when the ForAll loop around it is added to the mix.

Super User
Super User

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

@SaWu 

Your patch statement outside of the ForAll works because of a slightly known fact that you can supply an id to the Patch statement and, as long as there are no other required constraints, patch will use that to identify the record.

This is not going to fly in the ForAll the way that you are using it.

 

However...the formula I supplied is absolutely functional - I use it often in the same way.

Those error you are getting are deeper than the formula syntax or function.  They almost seem like the datasource has some invalid properties.

Here's what I would do...

1) Leave the designer and then come back in to edit the app.  Many times the designer gets completely confused and the only recovery is exit and come back.

2) Throw a test button on the screen and in the OnSelect action, put this same formula, except a) remove the ForAll construct b) replace the LocalToSubmit[@kk_messeapp_leadid] with a known leadid value.

3) Create a new App and connect to the datasource and use the exact same button and test as #2 in the app. 

 

Hopefully one of those steps will resolve or provide a clue.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
SaWu
Level 8

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

Nope, fresh app, even default entity, no working
Session ID: 7438bf16-3857-4433-a2ca-2e91842441be
PowerApps 3.19051.14

ClearCollect(LocalConcats, Kontakte);

Patch(Kontakte,
    { contactid: First(LocalContacts).contactid },
    { fullname: "test" }
);

ForAll([1,2,3], Patch(Kontakte,
    { contactid: First(LocalContacts).contactid },
    { fullname: "test" }
));

ForAll(LocalContacts, Patch(Kontakte,
    { contactid: contactid },
    { fullname: "test" }
));

ForAll(LocalContacts, Patch(Kontakte,
    If(IsBlank(LookUp(Kontakte, contactid=LocalContacts[@contactid]).contactid),
        Defaults(Kontakte), 
        LookUp(Kontakte, contactid=LocalContacts[@contactid])
    ),
    { fullname: "test" }
))

image.pngimage.pngimage.pngimage.pngimage.png

 

Super User
Super User

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

@SaWu 

So, the key in this test was to remove the ForAll and use the formula I had mentioned.  

Here's what I would do...

1) Leave the designer and then come back in to edit the app.  Many times the designer gets completely confused and the only recovery is exit and come back. I assume you obviously did this.

2) Throw a test button on the screen and in the OnSelect action, put this same formula, except a) remove the ForAll construct b) replace the LocalToSubmit[@kk_messeapp_leadid] with a known leadid value. This step is key!

3) Create a new App and connect to the datasource and use the exact same button and test as #2 in the app.  I think you went to this step but not #2

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
SaWu
Level 8

Re: ForAll around working Patch yields "The specified column is not accessible in this context"

Played around with variations of placing the disambiguation operator @ in different places.
It appears, unless my memory is confusing me, as if disambiguation rules and name resolution have changed.
I don't remember having had to ever use disambiguation for global names before.
This works:
image.png

View solution in original post

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

Top Kudoed Authors
Users Online
Currently online: 316 members 5,682 guests
Please welcome our newest community members: