web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Save and continue form...
Power Apps
Unanswered

Save and continue form later?

(0) ShareShare
ReportReport
Posted on by 38

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

Categories:
I have the same question (0)
  • KrishnaV Profile Picture
    5,023 on at

    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.

  • Vishal2 Profile Picture
    38 on at

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

  • KrishnaV Profile Picture
    5,023 on at

    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.

  • Vishal2 Profile Picture
    38 on at

    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.

  • v-xida-msft Profile Picture
    on at

    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,

  • Vishal2 Profile Picture
    38 on at

    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

  • v-xida-msft Profile Picture
    on at

    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,

  • KrishnaV Profile Picture
    5,023 on at

    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.

     

  • Vishal2 Profile Picture
    38 on at

    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

  • Vishal2 Profile Picture
    38 on at

    Hi All,

     

    Again, When i click on the "Run on Start" option from the powerapps, it is functioning as expected. But when i click on Play from the power-apps desktop or my cellphone, it gives the incorrect response i.e. transations to screen 2 regardless of the result of lookup.

     

    Would this be a bug?

     

     

    Thanks,

    Vishal Chauhan

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 796 Most Valuable Professional

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 327 Super User 2025 Season 2

#3
Power Platform 1919 Profile Picture

Power Platform 1919 268

Last 30 days Overall leaderboard