cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
MarkTurner
Regular Visitor

Issues with Setting SharePoint field values with a button click and then getting that value on subsequent loads of the form - SharePoint Form

Not sure i have titled this right.

 

I have a sharepoint form for a list that i am customizing.   As such i have a "SharePointForm" Group along with data cards for each of the fields.   One field i have is "Status"   On load of the form i am wanting it to say "new"   Which i can do successfully.   However when a user selects "Save as draft"  If the form is in Draft or New status already,  i want it to set the "Status" field to "Draft"    if the user clicks "Submit"  and the form is in New/Draft status,  i want the status to move to "Submitted".   There are other points throughout the processs where users will need to open and update the form.   and other statuses.    So,  what i have is the following:

 

on the "Save as Draft" field,  i am using the following:

 

If(DataCardValue5.Text = "", UpdateContext({Var_Status: "Draft"}), UpdateContext({Var_Status: DataCardValue5.Text}));
SubmitForm(SharePointForm1)

  

On the DataCard i have the default value set to "Var_Status"   and this successfully sets the value and saves the form.  The issue i am having, is that every time the form Loads,   Status is blank instead of pulling through the current status value.   This makes sense to me as the "Var_Status" variable would be blank at this point.   I have attempted to set this variable on form load (OnEdit, OnView events) however because at that point SharePointForm1.Selected is blank,  i am unable to determine which "Status" value to get.

 

Any suggestions on how i can accomplish this would be greatly appreciated.

1 ACCEPTED SOLUTION

Accepted Solutions
MarkTurner
Regular Visitor

I managed to solve it.   

 

For those who may come here in future looking for a solution it is below.

 

Instead of using a global variable,  i used only code on the button.

 

If(IsBlank(DataCardValue5.Text) Or IsEmpty(DataCardValue5.Text), Patch(MyList, SharePointIntegration.Selected, {FormStatus: "Draft"}), Patch(MyList, SharePointIntegration.Selected, {FormStatus: DataCardValue5.Text}));
SubmitForm(SharePointForm1)

I had Tried patch Previously,  however instead of using "SharePointIntegration.Selected"   i tried to use "ThisItem"   once i started using SharePointIntegration.Selected it worked without issue.   This allowed me to set the value as expected without using any variables/other "funky" ways of doing things that i had found in other posts.

View solution in original post

1 REPLY 1
MarkTurner
Regular Visitor

I managed to solve it.   

 

For those who may come here in future looking for a solution it is below.

 

Instead of using a global variable,  i used only code on the button.

 

If(IsBlank(DataCardValue5.Text) Or IsEmpty(DataCardValue5.Text), Patch(MyList, SharePointIntegration.Selected, {FormStatus: "Draft"}), Patch(MyList, SharePointIntegration.Selected, {FormStatus: DataCardValue5.Text}));
SubmitForm(SharePointForm1)

I had Tried patch Previously,  however instead of using "SharePointIntegration.Selected"   i tried to use "ThisItem"   once i started using SharePointIntegration.Selected it worked without issue.   This allowed me to set the value as expected without using any variables/other "funky" ways of doing things that i had found in other posts.

View solution in original post

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Top Kudoed Authors
Users online (2,503)