cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
NitroPepsi
Helper IV
Helper IV

Patch Function on a popup not working - SQL Server

Spoiler

I am trying to have my gallery set up to where when they click on the little trash can, on the individual row, they are given a pop up. The pop up is "Yes, delete" or "No". I have it to where if they click yes, it uses a patch to update the context and the delete be a soft delete. However, it is not liking my patch function. In particular it is not liking my ID item, my data source is a table from SQL server. 

 

Patch('[incentive_test].[D_eTime]',
{ID: ThisItem.ID,
DELETE_IND: "Y",
MODIFY_USER: User().Email,
MODIFY_TIMESTAMP: Now()
}
)

UpdateContext({DeletePopup:false})

1 ACCEPTED SOLUTION

Accepted Solutions
RandyHayes
Super User
Super User

@NitroPepsi 

First, get rid of the UpdateContext you have in the OnVisible action of your screen.  You do not need it there.

 

Next, don't get fooled by "groups".  They are NOT controls themselves, nor are they containers of controls...they are just groups.  When you change a property on what you think is a group, you are really changing it on all controls in that group...this is very dangerous and can lead to lost formulas very quickly!!

 

You are best to make this into a component instead of a group of controls in your screen (much easier to handle and is reusable as well).

If not as a component, then the trick is this...set ONE of your controls Visible Property to the formula: !IsBlank(DeletePopup)  

For example, the lblConfirmDelete control.  Then, select the other controls and set their Visible Property to: lblConfirmDelete.Visible

This way, you have only one place for your formula (and don't get fooled by the grouping) and when it is Visible, all the other controls that reference that label will be visible as well.

 

Your problem is on the btnDontDelete OnSelect formula...you still have that setting to false  That will cause an error because in all other places you are using numeric and in this you are using boolean...that is not allowed.

Change your OnSelect action on that button to: UpdateContext({DeletePopup: Blank()})

 

As I mentioned before...Once you have change the variable from boolean to numeric consistently, then all the other error messages would go away...That should cause the other one you are showing to go away as well.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

9 REPLIES 9
RandyHayes
Super User
Super User

@NitroPepsi 

Yes...ThisItem is going to be out of context of either your form or gallery (depending on where you had it before).

 

You will need to get the ID to the patch function.

 

My suggestion is that you eliminate the DeletePopup variable be true or false and instead set it to a number.

 

So...in your gallery (assuming gallery at this point), set your variable as such:  UpdateContext({DeletePopup: ThisItem.ID})

Then, instead of your Visible properties for the Popup being just DeletePopup, set them to: !IsBlank(DeletePopup)

 

Now, change your Patch formula to:

Patch('[incentive_test].[D_eTime]',
    {ID: DeletePopup,
     DELETE_IND: "Y",
     MODIFY_USER: User().Email,
     MODIFY_TIMESTAMP: Now()
    }
);
UpdateContext({DeletePopup:Blank()})

 

NOTE: you will get errors in your app until all the above changes are made.  Once you tell the app you want to put a number into DeletePopup...it is going to complain because you are setting it to true/false in other places....once done, they should all be gone.

 

I hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Hi, thank you for your help, I am sorry, but I am a little confused and this is what I attempted but it didnt work out, could you please explain a little further. Now this is what I attempted. 

 

This is what I did on the visible section of the buttons, the icon and the screen for the popup I put down !IsBlank(DeletePopup). 

 

Now on the main screen I changed the update context to UpdateContext({DeletePopup: ThisItem.ID})

 

Now for the onselect I put in the patch statement 

Patch('[incentive_test].[D_eTime]',
{ID: DeletePopup,
DELETE_IND: "Y",
MODIFY_USER: User().Email,
MODIFY_TIMESTAMP: Now()
}
);
UpdateContext({DeletePopup:Blank()})

 

 

These are the steps I took and I know I am doing something wrong. 

 

 

 

  1. On the main screen (Table of sumissions_1)  onVisible I put this UpdateContext({DeletePopup:Thisitem.ID})

 

NitroPepsi_0-1663795258798.png

 

 

2 I grouped my delete btn, dont delete btn, lblconfirmdelete, and rctdeletescreen into one and 

when grouped together I went to visible and put in !IsBlank(DeletePopup)

 

 

NitroPepsi_1-1663795258799.png

 

 

3 Now on the little trash can I put in UpdateContext({DeletePopup: ThisItem.ID})

NitroPepsi_2-1663795258800.png

 

4 for the don’t delete button on the onselect I out down UpdateContext({DeletePopup:false})

NitroPepsi_4-1663795591627.png

5 For the yes delete button I am putting this down

  1. NitroPepsi_3-1663795258801.png

     

RandyHayes
Super User
Super User

@NitroPepsi 

First, get rid of the UpdateContext you have in the OnVisible action of your screen.  You do not need it there.

 

Next, don't get fooled by "groups".  They are NOT controls themselves, nor are they containers of controls...they are just groups.  When you change a property on what you think is a group, you are really changing it on all controls in that group...this is very dangerous and can lead to lost formulas very quickly!!

 

You are best to make this into a component instead of a group of controls in your screen (much easier to handle and is reusable as well).

If not as a component, then the trick is this...set ONE of your controls Visible Property to the formula: !IsBlank(DeletePopup)  

For example, the lblConfirmDelete control.  Then, select the other controls and set their Visible Property to: lblConfirmDelete.Visible

This way, you have only one place for your formula (and don't get fooled by the grouping) and when it is Visible, all the other controls that reference that label will be visible as well.

 

Your problem is on the btnDontDelete OnSelect formula...you still have that setting to false  That will cause an error because in all other places you are using numeric and in this you are using boolean...that is not allowed.

Change your OnSelect action on that button to: UpdateContext({DeletePopup: Blank()})

 

As I mentioned before...Once you have change the variable from boolean to numeric consistently, then all the other error messages would go away...That should cause the other one you are showing to go away as well.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Hi, thank you for your continued assistance! Now, the errors did go away, but when I click on the trash can, nothing pops up. I did change the on select to UpdateContext({DeletePopup:Blank()})

Again, thank you so much for your assistance in this.

 

These are the steps that I took for the popup and I am not getting errors but now when I click on the little trash can the popup does not come up. 

 

1. I removed the update context on the main table on the onvisible property.

2. On the btnDontDelete on the onSelect I changed it to UpdateContext({DeletePopup: Blank()}) and visible I changed it to  lblConfirmDelete.Visible

3. On the btnDelete on the onSelect I have down the  Patch statement and the update context and on the visible property I have  lblConfirmDelete.Visible

4. For the lblConfirmdelete I have !IsBlank(DeletePopup)

5. For the rctDeleteScreen I have  lblConfirmDelete.Visible

6. Now for the little trash can, I put down UpdateContext({DeletePopup:Blank()}) on the onselect property 

 

 

 

1

 I removed the update context on the main table on the onvisible property.

NitroPepsi_0-1663861334590.png

 

On the btnDontDelete on the onSelect I changed it to UpdateContext({DeletePopup: Blank()}) and visible I changed it to  lblConfirmDelete.Visible

NitroPepsi_1-1663861446852.png

 

NitroPepsi_2-1663861485592.png

3

On the btnDelete on the onSelect I have down the  Patch statement and the update context and on the visible property I have  lblConfirmDelete.Visible

NitroPepsi_3-1663861622284.png

 

NitroPepsi_4-1663861672102.png

 

4

For the lblConfirmdelete I have !IsBlank(DeletePopup)

NitroPepsi_5-1663861764651.png

 

5

 For the rctDeleteScreen I have  lblConfirmDelete.Visible

NitroPepsi_6-1663861868559.png

 

6

Now for the little trash can, I put down UpdateContext({DeletePopup:Blank()}) on the onselect property 

 

 

NitroPepsi_7-1663862067771.png

 

RandyHayes
Super User
Super User

@NitroPepsi 

The trash can Icon is the key to all of this...THAT is where you are in context of the Gallery (and have a ThisItem.ID), so that is where you need to capture it.

Your OnSelect action formula for the icon should be: UpdateContext({DeletePopup: ThisItem.ID}) 

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Thank you so much! May you be blessed 100X it worked! 

RandyHayes
Super User
Super User

🤗 Excellent!  Glad it works for you now!

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Top Solution Authors
Top Kudoed Authors
Users online (1,759)