cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Harshavardhan22
Frequent Visitor

Update a SharePoint Choice column from power apps based on Approve/Reject Button in OnSuccess property of the Form

Hello Everyone!!!

 

I am stuck with the below question to bring in the feature, which is to update a SharePoint choice column from power apps based on the Approve/Reject button clicked by the user to submit a form. Well let me explain you the Scenario....

 

I have created a power app from a share point list with multiple columns. Now let say List name is 'Expenses' and columns are Title, Place, Amount and Status. Here Status column is choice column that has L1Approved, L1Rejected, L2Approved & L2Rejected as choices. Now when the L1 Manager opens the app, it will have 2 buttons Approve and Reject. When the Manager click the Approve/Reject button, It should submit the form and OnSuccess it should update the SharePoint column named Status as L1Approved/L1Rejected based on the button selected. 

Request to please help me in solving this. I am able to do this by writing this function: Patch('Expenses', LookUp('Expenses', ID = varRecord.ID),{'Status': {Value: "L1Approved"/"L1Rejected"}}) individually on both Approve/Reject Button. But the problem is, with OnSelect property on the each button is changing the status even if the Form is not submitted successfully. So I have thought of using this OnSuccess property of the form, which might solve my issue of updating the column only when the form is successfully submitted.


Need your help in solving this issue. Thanks very everyone in advance!!!

 

Tagging: @timl@WarrenBelz@Drrickryp@Pstork1@BCBuizer@RandyHayes 

1 ACCEPTED SOLUTION

Accepted Solutions
BCBuizer
Super User
Super User

Hi @Harshavardhan22 ,

 

You can use a variable for that. Use the below code in the OnSucces property of the form:

 

Patch('Expenses', LookUp('Expenses', ID = varRecord.ID),{'Status': {Value: varApproval}})

 

Now all you need to do is to customize the Onselect property of the Approve and Reject buttons to set varApproval to the right value.

View solution in original post

6 REPLIES 6
BCBuizer
Super User
Super User

Hi @Harshavardhan22 ,

 

You can use a variable for that. Use the below code in the OnSucces property of the form:

 

Patch('Expenses', LookUp('Expenses', ID = varRecord.ID),{'Status': {Value: varApproval}})

 

Now all you need to do is to customize the Onselect property of the Approve and Reject buttons to set varApproval to the right value.

Thanks very much @BCBuizer , 
1. Can you please help me on how to set VarApproval on approve/reject buttons.
2. Also, Should i follow the same procedure for Level 2 Approval? Setting VarApproval2 on Approve/Reject Buttons?

BCBuizer
Super User
Super User

HI @Harshavardhan22 ,

 

Do L1 and L2 use the same buttons? If yes, how does the app know if the uses is L1 or L2?

 

If you use separate buttons, you can use the below:

 

L1Approval: UpdateContext({varApproval:"L1Approved"})
L1Rejection: UpdateContext({varApproval:"L1Rejected"})
L2Approval: UpdateContext({varApproval:"L2Approved"})
L2Rejection: UpdateContext({varApproval:"L2Rejected"})
AmDev
Super User
Super User

Hi @Harshavardhan22 

 

Just chipping in also, to answer your question on the timing of the update - you could use the following expression in the OnSuccess property of the form...

 

Patch('Expenses', LookUp('Expenses', ID = YourForm.LastSubmit.ID),{'Status': {Value: varApproval}})

 

Though, a cleaner way would be to bring your Status datacard into the form, add {Value: varApproval} to the DefaultSelectedItems property of the Status combobox and then just hide the Status datacard. This way, the Status field will be updated with the submission of the form and you don't need to do any separate patching.

 

Hope this helps

Gerard

@BCBuizer ,

Thanks very much, I tried this and its working..... Yes I am using different buttons for different users....
Can you also, please help me on sending the email OnSuccess the same way we are updating the status?
I mean, If the the Level 1 Manager Approvers OnScuccess of the form I have to send L1 Approval email and if Level 1 Manager Rejects them I have to send rejection email. Currently i am sending emails from OnSelect property of the buttons.

@AmDev , 

 

Thanks very much for your quick support on the query. 

Helpful resources

Announcements
Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on June 15, 2022 at 8am PDT.

PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

PA.JPG

New Release Planning Portal (Preview)

Check out our new release planning portal, an interactive way to plan and prepare for upcoming features in Power Platform.

Top Solution Authors
Top Kudoed Authors
Users online (3,073)