cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

Save and continue form later?

Hello Everyone,

 

I am trying to build a form which will store data into sharepoint list. I have 8 fields that the user will enter. The complex part would be,

The user fills out 6 fields in the begining, the remaining 2 fields at a later part in the day. This form will be multi screen, Form 1(6 fields) submit and go to next screen. When that user open's the form again, The user will see the second screen if he/she has already filled out the first screen and continue updating the records.

 

From my understanding, you can set a flag in the list 0,1,2 0- form is new so new record, 1- form has been started but not yet completed, 2- form is finished and the record is complete and saved in list. Is the above possible in powerapps?

 

Please let me know if I was unclear in any way- I can provide more information, but I've been stuck at this for a while now.

 

Any help is appreciated. Thank-you

Vishal

10 REPLIES 10
Highlighted
Community Champion
Community Champion

Re: Save and continue form later?

Hi @Vishal2,

 

The direction you are moving is absolutely a good one. But along with the flag at the list level, ensure that you are validating the user ass soon as they open the App also. Because me as an end-user may come at any point of the day to resume my submission previous submission or I can submit a different entry. So at the time of App launch see that logged-in user has any of the pending submissions, having said that ask the user as "want to resume the previous submission?" or "Start a New Submission" that way you can take the user to the right screen.

 

I hope this resolved your issue if you see any challenge let me know I am always happy to help.

 

Regards,

Krishna
If this post helps give a 👍  and if it solved your issue consider Accept it as the solution to help the other members find it more.

Highlighted
Helper I
Helper I

Re: Save and continue form later?

 Yes, But the question still remains, how to do it. I am really lost on how to do what you've mentioned.

Highlighted
Community Champion
Community Champion

Re: Save and continue form later?

Hi @Vishal2,

 

Do this:

  1. Create a field in SharePoint list as "Submission Progress"
  2. Check the logged-in user has any pending submissions with the below, this will give you the ID of the old entry

 

Set(varInprogressID,Text(LookUp(SPListName,'Created By'.Email = User().Email).ID))​

 

  • if there any old entries take the user directly to that item by doing the following:

 

ClearCollect(colOldRecord,LookUp(SPListName,'Created By'.Email = User().Email))​​

 

This time we are getting the record to a collection and now you take the user to screen and show the old values on the screen

  • If the user doesn't have any old values!  On screen-1 as soon user click on next button add the row in SharePoint list with the flag as in-progress for column "Submission Progress"
    • if the user went ahead and submit on the same time, update the column "Submission Progress" with completed

 

Patch('Employee Details',Defaults('Employee Details'),{Column1:txtTeamID.Text,Column2:txtTeamID.Text,Column3:txtTeamID.Text,SubmissionProgress:"In-Progress"})​

 

I hope this resolved your issue if you see any challenge let me know I am always happy to help.

 

Regards,

Krishna
If this post helps give a 👍 and if it solved your issue consider Accept it as the solution to help the other members find it more.

Highlighted
Helper I
Helper I

Re: Save and continue form later?

Krishna,

 

Thanks for taking the time and coming up with a solution. Again, I am very new to powerapps and I am quite unsure how the ClearCollect feature would work and where to put it.

If you could provide a little more detail I'd be greatful.

 

I have attached what the app currently looks like, the issue I am facing is the functionality where you check if the user already has an "In-progress" record and if he does, call that record and update it. Again, I am using sharepoint lists as my data-source. Below is a screenshot. As, I mentioned earlier, The user will need to check all check-boxes before he/she proceeds to next page, so I donot think storing the responses of the user for check-box is necessary, as I can just put a controll on Next or Submit button if unchecked.

 

The problem is how to make sure that the user lands on second page if already in progress and then re-submit using complete -data i.e. first screen and second screen patched. Thank-you again.

Highlighted
Community Support
Community Support

Re: Save and continue form later?

Hi @Vishal2 ,

Do you set up a canvas app to achieve your needs?

How do you list these Checkboxes? One by One? or Using Gallery control?

 

Based on the needs that you mentioned, I agree with @KrishnaV 's thought almost. Just as you mentioned, you should set up a Flag column in your SP List to store the current Progress status -- 

0- form is new so new record
1- form has been started but not yet completed
2- form is finished and the record is complete and saved in list.

Note: I assume that the Flag column is Number type column in your SP List.

 

I have made a test on my side, please take a try with the following workaround:

Set the OnStart property of the App to following:

If(
   !IsBlank(LookUp('Your SP List', 'Created By'.Email = User().Email && Flag = 1)),
   EditForm(Form2);Navigate(Screen2, ScreenTransition.None, {ItemID: LookUp('Your SP List', 'Created By'.Email = User().Email && Flag = 1).ID})
)

Note: The Form2 represents the Edit form in your Screen2

 

Within your first Screen, set the OnSelect property of the "Next" button to following:

SubmitForm(Form1)

set the OnSuccess property of the Form1 to following:

Patch(
      'Your SP List',
      Form1.LastSubmit,
      {
        Flag: 1
      }
)

 

Within your Screen2, set the Item property of Form2 to following:

If(
   !IsBlank(ItemID),     // ItemID variable is passed from the OnStart property of App
   LookUp('Your SP List', ID = ItemID)
)

add a "Submit" button in Screen2, set the OnSelect property to following:

SubmitForm(Form2)

set the OnSuccess property of the Form2 to following:

Patch(
      'Your SP List',
      Form2.LastSubmit,
      {
        Flag: 2
      }
)

 

Please consider take a try with above solution, check if the issue is solved.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted
Helper I
Helper I

Re: Save and continue form later?

Hey Kris,

Thankyou for your help. I'll answer your below questions:

 

Do you set up a canvas app to achieve your needs?

Yes. Canvas app.

How do you list these Checkboxes? One by One? or Using Gallery control?

I am listing these checkboxes 1by1, not linked with any data-source. My plan is to do something like this onSelect Property of each button, 

If(Checkbox3_1.Value=false||Checkbox3_2.Value=false||Checkbox3_3.Value=false||Checkbox3_4.Value=false||Checkbox3_5.Value=false||Checkbox3_6.Value=false||Checkbox3_7.Value=false||Checkbox3_8.Value=false,Set(myVis,true)

 

myVis will create a screen in front which will prevent the user to submit the form, so I am not planning to store the values of each checkboxes in the database-sharepoint list. 

 

I tried your solution, worked like a charm, but In the second screen now I believe Powerapps Has a bug that is preventing. It just says, No item to display even though the form is linked to the data-source. This creates the users to see blank screen when they go back into the form. Believe it is a powerapps bug but looks like it is a known issue amongs this. Any suggestion or solution?

 

Thanks

Highlighted
Community Support
Community Support

Re: Save and continue form later?

Hi @Vishal2 ,

Is the solution I provided above helpful in your scenario?

 

If the solution I provided above is helpful in your scenario, please consider go ahead to click "Accept as Solution" to identify my reply as helpful.

 

For your issue on second screen, I think this issue is related to the Item property of the Edit form (Form2). Please try the following workaround:

Set the OnStart property of the App to following:

If(
   !IsBlank(LookUp('Your SP List', 'Created By'.Email = User().Email && Flag = 1)),
   Set(ProcessRecord, LookUp('Your SP List', 'Created By'.Email = User().Email && Flag = 1));EditForm(Form2);Navigate(Screen2)  // Modify here
)

Note: The Form2 represents the Edit form in your Screen2

 

Within your Screen2, set the Item property of Form2 to following:

If(
   !IsBlank(SubmittedRecord),
   SubmittedRecord,
   !IsBlank(ProcessRecord),
   ProcessRecord
)

Set the DefaultMode property of the Form2 to following:

FormMode.New

 

Within your first Screen, set the OnSelect property of the "Next" button to following:

SubmitForm(Form1);

set the OnSuccess property of the Form1 to following:

Set(                // Modify formula here
    SubmittedRecord,
    Patch(
         'Your SP List',
          Form1.LastSubmit,
         {
           Flag: 1
         }
    )
);
EditForm(Form2);    // Add formula here
Navigate(Screen2);  //  // Add formula here

Please try above solution, check if the issue is solved.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted
Community Champion
Community Champion

Re: Save and continue form later?

Hi @Vishal2,

 

Just as a followup were you able to make it or you need any help, I am always happy to help further in case you need help still.

 

Regards,

Krishna


If this post helps give a 👍 and if it solved your issue consider Accept it as the solution to help the other members find it more.

 

Highlighted
Helper I
Helper I

Re: Save and continue form later?

Hey @v-xida-msft @KrishnaV ,

 

Thanks for the help above. Your formula logic seems to be correct, I understand how it works. But unfortunately, Even when there is absolutely 0 records in the sharepoint list, it still transations's me to screen 2. Any suggestion? This is just 2 screens, I need to build a 3 screen solution.

Even tried adding an Or statement if the record returned Is blank, and it still goes straight to Screen2.

 

If(
   !IsBlank(LookUp('Mobile Worker-Covid19', 'Email Address' = User().Email && Status = 1)),
   Set(ProcessRecord, LookUp('Mobile Worker-Covid19', 'Created By'.Email = User().Email && Status = 1));EditForm(Form2);Navigate(Screen2)
)||If(
   IsBlank(LookUp('Mobile Worker-Covid19', 'Email Address' = User().Email && Status = 1)),
   Set(ProcessRecord, LookUp('Mobile Worker-Covid19', 'Created By'.Email = User().Email && Status = 1));EditForm(Form1);Navigate(Screen1) 
)

Again, Thanks for the awesome help.

 

Thanks,

Vishal Chauhan

Helpful resources

Announcements
Check this Out

Helpful information

Featuring samples like Return to the Workplace and Emergency Response Applications

August 2020 Community Challenge: Can You Solve These?

August 2020 Community Challenge: Can You Solve These?

We're excited to announce our first cross-community 'Can You Solve These?' challenge!

secondImage

Return to Workplace

Reopen responsibly, monitor intelligently, and protect continuously with solutions for a safer work environment.

secondImage

Super Users Coming in August

We are excited for the next Super User season.

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Top Kudoed Authors
Users online (9,679)